> ## Documentation Index
> Fetch the complete documentation index at: https://docs.askgrapple.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get project

> Get a project and its fields

Returns metadata and field definitions for a single project.

## Request

<ParamField header="Authorization" type="string" required>
  Bearer token for a workspace API key scoped to this workspace.
</ParamField>

<ParamField path="workspace" type="string" required>
  Workspace slug.
</ParamField>

<ParamField path="project" type="integer" required>
  Project ID.
</ParamField>

```bash theme={null}
curl "https://app.askgrapple.com/api/v1/workspaces/acme-corp/projects/42" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Response

<ResponseField name="data" type="object">
  Project details.

  <Expandable title="properties">
    <ResponseField name="id" type="integer">
      Project ID.
    </ResponseField>

    <ResponseField name="name" type="string">
      Project name.
    </ResponseField>

    <ResponseField name="record_count" type="integer | null">
      Number of materialized rows in the project.
    </ResponseField>

    <ResponseField name="materialization_status" type="string | null">
      Materialization state: `up_to_date`, `updating`, or `error`.
    </ResponseField>

    <ResponseField name="fields" type="array">
      Fields defined on the project.

      <Expandable title="field object">
        <ResponseField name="id" type="integer">
          Field ID.
        </ResponseField>

        <ResponseField name="name" type="string">
          Field display name.
        </ResponseField>

        <ResponseField name="type" type="string">
          Presentation type for the field.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 timestamp when the project was created.
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO 8601 timestamp when the project was last updated.
    </ResponseField>
  </Expandable>
</ResponseField>

```json theme={null}
{
  "data": {
    "id": 42,
    "name": "Q1 Pipeline",
    "record_count": 1280,
    "materialization_status": "up_to_date",
    "fields": [
      {
        "id": 101,
        "name": "Deal Name",
        "type": "string"
      }
    ],
    "created_at": "2026-01-15T10:30:00.000000Z",
    "updated_at": "2026-03-01T14:22:00.000000Z"
  }
}
```

## Errors

| Status | Reason                                    |
| ------ | ----------------------------------------- |
| `401`  | Missing or invalid API key                |
| `403`  | API key does not belong to this workspace |
| `404`  | Project not found in this workspace       |
