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 represent the brands you track in Topify.ai. Each project has prompts, competitors, sources, and analytics data.
List projects
Returns all projects your API key has access to, ordered by creation date (oldest first).
Request
No query parameters.
curl "https://topify-customer-api-production.up.railway.app/api/public/v1/projects" \
-H "X-API-Key: tk_live_..."
resp = client.get("/projects")
const resp = await fetch(`${BASE}/projects`, { headers });
Response
{
"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 |
curl "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}" \
-H "X-API-Key: tk_live_..."
resp = client.get(f"/projects/{project_id}")
const resp = await fetch(`${BASE}/projects/${projectId}`, { headers });
Response
{
"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 |