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

# Projects

> List and retrieve your brand tracking projects.

Projects represent the brands you track in Topify.ai. Each project has prompts, competitors, sources, and analytics data.

## List projects

```
GET /projects
```

Returns all projects your API key has access to, ordered by creation date (oldest first).

### Request

No query parameters.

<Tabs>
  <Tab title="cURL">
    ```bash theme={null}
    curl "https://topify-customer-api-production.up.railway.app/api/public/v1/projects" \
      -H "X-API-Key: tk_live_..."
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    resp = client.get("/projects")
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    const resp = await fetch(`${BASE}/projects`, { headers });
    ```
  </Tab>
</Tabs>

### Response

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "name": "My Brand Project",
      "brand_name": "Acme Corp",
      "website_url": "https://acme.com",
      "location": "US",
      "language": "en",
      "brand_aliases": [],
      "created_at": "2026-01-15T10:30:00+00:00"
    }
  ]
}
```

### Response fields

| Field           | Type              | Nullable | Description                                                |
| --------------- | ----------------- | -------- | ---------------------------------------------------------- |
| `id`            | string (UUID)     | No       | Project ID                                                 |
| `name`          | string            | No       | Project display name                                       |
| `brand_name`    | string            | Yes      | Primary brand name being tracked                           |
| `website_url`   | string            | Yes      | Brand website URL                                          |
| `location`      | string            | Yes      | Target market country code                                 |
| `language`      | string            | Yes      | Target language code                                       |
| `brand_aliases` | string\[]         | No       | Always `[]` in list view. Use the get endpoint for aliases |
| `created_at`    | string (ISO 8601) | No       | Creation timestamp                                         |

***

## Get project

```
GET /projects/{project_id}
```

Returns details for a single project, including brand aliases.

### Path parameters

| Param        | Type          | Description    |
| ------------ | ------------- | -------------- |
| `project_id` | string (UUID) | The project ID |

<Tabs>
  <Tab title="cURL">
    ```bash theme={null}
    curl "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}" \
      -H "X-API-Key: tk_live_..."
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    resp = client.get(f"/projects/{project_id}")
    ```
  </Tab>

  <Tab title="JavaScript">
    ```javascript theme={null}
    const resp = await fetch(`${BASE}/projects/${projectId}`, { headers });
    ```
  </Tab>
</Tabs>

### Response

```json theme={null}
{
  "success": true,
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "My Brand Project",
    "brand_name": "Acme Corp",
    "website_url": "https://acme.com",
    "location": "US",
    "language": "en",
    "brand_aliases": ["ACME", "Acme Corporation", "acme.com"],
    "created_at": "2026-01-15T10:30:00+00:00"
  }
}
```

### Response fields

Same as list projects, except `brand_aliases` contains the actual aliases:

| Field           | Type      | Nullable | Description                                               |
| --------------- | --------- | -------- | --------------------------------------------------------- |
| `brand_aliases` | string\[] | No       | Alternative brand names used for matching in AI responses |

### Errors

| Status | Detail                                 | Cause                                   |
| ------ | -------------------------------------- | --------------------------------------- |
| `403`  | `Project does not belong to your team` | API key's team doesn't own this project |
| `404`  | `Project not found`                    | No project with this ID exists          |
