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

# Unpublish Content Type

> Unpublish a content type without creating a new version

Changes a published content type's status to unpublished without creating a new version. This makes the content type unavailable for new content creation while preserving the version history.

## Path Parameters

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

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

<ParamField path="id" type="string" required>
  Content Type ID
</ParamField>

## Response

Returns the unpublished ContentType object.

```json theme={null}
{
  "id": "ct123",
  "name": "Article",
  "status": "unpublished",
  "version": 3,
  "lastPublishedVersion": 3,
  "layoutComponentId": "c123",
  "componentIdsAllowList": ["c124", "c125"],
  "packageVersion": "1.0.0",
  "schema": { ... },
  "templateContentIds": ["cont123"],
  "permissions": { ... },
  "metadata": { ... },
  "createdAt": "2024-03-20T10:00:00Z",
  "updatedAt": "2024-03-22T10:00:00Z"
}
```

<Note>
  Unpublishing does not increment the version number. The `lastPublishedVersion` remains unchanged, allowing you to re-publish at the same version or make modifications first.
</Note>

## Error Responses

### Not Published

```json theme={null}
{
  "error": {
    "code": "INVALID_STATUS",
    "message": "Cannot unpublish: content type is not currently published"
  }
}
```

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.metabind.ai/app/v1/organizations/org123/projects/proj456/content-types/ct123/unpublish" \
    -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/ct123/unpublish',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_JWT'
      }
    }
  );

  const contentType = await response.json();
  console.log(`Content type ${contentType.name} is now ${contentType.status}`);
  ```
</CodeGroup>
