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

# GET /projects/{project}/table/{table_id_or_name}

> Returns one table and its columns.

Returns one table and its columns.

## Endpoint details

<ParamField header="Authorization" type="string" required>
  Bearer `pat_...` (Project API Token). Keep this token on your backend/server.
</ParamField>

<ParamField path="project" type="string" required>
  Project slug. This acts as the Project ID in API paths.
</ParamField>

<ParamField path="table_id_or_name" type="string" required>
  Table numeric id or table name.
</ParamField>

<ResponseField name="ok" type="boolean" required>
  `true` for a successful response and `false` for an error response.
</ResponseField>

<ResponseField name="data" type="object | null">
  Endpoint-specific response data when `ok` is `true`; `null` on errors.
</ResponseField>

<ResponseField name="error" type="object | null">
  Error code and message when `ok` is `false`; `null` on success.
</ResponseField>

<ResponseField name="request_id" type="string" required>
  Request identifier you can use when troubleshooting a specific API call.
</ResponseField>

## Authentication

Project API Token.

## Parameters

Path: `table_id_or_name` table numeric ID or table name.

## Request examples

Basic request:

```bash theme={null}
curl -X GET "$BASE_URL/projects/{project}/table/{table_id_or_name}" \
  -H 'Authorization: Bearer pat_PROJECT_TOKEN'
```

Full request:

```bash theme={null}
curl -X GET "$BASE_URL/projects/{project}/table/{table_id_or_name}" \
  -H 'Authorization: Bearer pat_PROJECT_TOKEN' \
  -H 'X-Operation-Key: edit-profile-email' \
  -H 'X-Operation-Run-Id: oprun_client_20260602_001'
```

## Response examples

Success:

```json theme={null}
{
  "ok": true,
  "data": {
    "table": {
      "id": 1,
      "table_name": "contacts",
      "display_name": "Contacts",
      "created_at": "2026-06-02T01:00:00Z",
      "updated_at": "2026-06-02T01:00:00Z"
    },
    "columns": [
      {
        "id": 1,
        "table_name": "contacts",
        "column_name": "id",
        "column_type": "INTEGER",
        "is_nullable": 0,
        "default_value": null,
        "is_primary": 1,
        "is_unique": 1,
        "created_at": "2026-06-02T01:00:00Z",
        "updated_at": "2026-06-02T01:00:00Z"
      },
      {
        "id": 2,
        "table_name": "contacts",
        "column_name": "email",
        "column_type": "TEXT",
        "is_nullable": 0,
        "default_value": null,
        "is_primary": 0,
        "is_unique": 1,
        "created_at": "2026-06-02T01:00:00Z",
        "updated_at": "2026-06-02T01:00:00Z"
      }
    ]
  },
  "error": null,
  "request_id": "req_20260602T012345_123456Z_abc123def456",
  "operation_key": "edit-profile-email",
  "operation_run_id": "oprun_20260602T012300_000000Z_a1b2c3d4e5f6",
  "operation_grouping_status": "accepted_provided_run",
  "meta": {
    "generated_at": "2026-06-02T01:23:45Z"
  }
}
```

Error or alternate response:

```json theme={null}
{
  "ok": false,
  "data": null,
  "error": {
    "code": "table_not_found",
    "message": "Table was not found in the project."
  },
  "request_id": "req_20260602T012345_123456Z_abc123def456",
  "meta": {
    "generated_at": "2026-06-02T01:23:45Z"
  }
}
```
