> ## 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.

# List projects

> List all projects in a workspace

Returns all projects in the workspace, ordered by name.

## 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>

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

## Response

<ResponseField name="data" type="array">
  List of projects in the workspace.

  <Expandable title="project object">
    <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="field_count" type="integer">
      Number of fields defined on the project.
    </ResponseField>

    <ResponseField name="materialization_status" type="string | null">
      Materialization state: `up_to_date`, `updating`, or `error`.
    </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,
      "field_count": 12,
      "materialization_status": "up_to_date",
      "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 |
