> ## 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="Node.js (server-side)">
    ```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="Node.js (server-side)">
    ```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 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.