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

# List Content Types

> Retrieve a list of all content types for a project

## Path Parameters

<ParamField path="organizationId" type="string" required>
  Organization ID
</ParamField>

<ParamField path="projectId" type="string" required>
  Project ID
</ParamField>

## Query Parameters

<ParamField query="limit" type="number" default="20">
  Items per page
</ParamField>

<ParamField query="lastKey" type="string">
  Cursor for pagination (from previous response)
</ParamField>

<ParamField query="status" type="string">
  Filter by status: `draft`, `modified`, `published`, `unpublished`, or `deleted`
</ParamField>

<ParamField query="search" type="string">
  Search term to filter by name or description
</ParamField>

<ParamField query="query" type="string">
  Natural language query for semantic search
</ParamField>

<ParamField query="tags" type="string[]">
  Filter by tags
</ParamField>

## Response

<ResponseField name="data" type="ContentType[]">
  Array of content type objects
</ResponseField>

<ResponseField name="pagination" type="object">
  Pagination information

  <Expandable title="properties">
    <ResponseField name="lastKey" type="string">Cursor for next page (omitted if no more results)</ResponseField>
  </Expandable>
</ResponseField>

### Example Response

```json theme={null}
{
  "data": [
    {
      "id": "ct123",
      "name": "Article",
      "description": "Standard article content type...",
      "status": "published",
      "version": 3,
      "lastPublishedVersion": 3,
      "layoutComponentId": "c123",
      "componentIdsAllowList": ["c124", "c125"],
      "packageVersion": "1.0.0",
      "templateContentIds": ["cont123"],
      "permissions": {
        "roles": ["editor"],
        "users": []
      },
      "metadata": {
        "author": "admin@metabind.ai",
        "tags": ["article"]
      },
      "createdAt": "2024-03-20T10:00:00Z",
      "updatedAt": "2024-03-20T15:00:00Z"
    },
    {
      "id": "ct124",
      "name": "BlogPost",
      "description": "Blog post content type...",
      "status": "draft",
      "version": null,
      "lastPublishedVersion": null,
      "layoutComponentId": "c130",
      "componentIdsAllowList": ["c131", "c132"],
      "packageVersion": "1.0.0",
      "templateContentIds": [],
      "permissions": {
        "roles": ["blogger"],
        "users": []
      },
      "metadata": {
        "author": "admin@metabind.ai",
        "tags": ["blog"]
      },
      "createdAt": "2024-03-21T10:00:00Z",
      "updatedAt": "2024-03-21T10:00:00Z"
    }
  ],
  "pagination": {
    "lastKey": "eyJwayI6Ik9SR..."
  }
}
```

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content-types?status=published" \
    -H "Authorization: Bearer YOUR_JWT"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content-types?status=published',
    {
      headers: {
        'Authorization': 'Bearer YOUR_JWT'
      }
    }
  );

  const { data: contentTypes, pagination } = await response.json();
  console.log(`Found ${contentTypes.length} content types`);
  ```
</CodeGroup>
