Manage your projects through the API
Everything you can do in the dashboard, a program or an AI agent can do too: create a project, edit it, add documents and metrics, send it for review. All it needs is an access token you create on the site.
01Create a token
Create a token on the settings page and name it after where you will use it. The value is shown once: only its hash is stored, so a lost token cannot be recovered — you issue a new one.
Go to settings →02Authentication
Send the token as a header on every request.
Authorization: Bearer traip_xxxxxxxxxxxxxxxxxxxxWhat a token reaches
- A token acts with its owner's permissions and reaches only their projects.
- Anything belonging to someone else answers 404, not 403 — the existence of another account's work is never disclosed.
- You can revoke a token from the settings page; it stops working immediately.
03Endpoints
Basehttps://traip.org/api/v1
| GET | /me | Who the token belongs to |
| GET | /projects | List your projects |
| POST | /projects | Create a draft |
| GET | /projects/{id} | One project in full |
| PATCH | /projects/{id} | Change only the fields you send |
| POST | /projects/{id}/submit | Send for review |
| POST | /projects/{id}/unpublish | Withdraw from the catalogue |
| GET POST | /projects/{id}/docs | Documentation links |
| GET POST | /projects/{id}/metrics | Metrics |
| GET POST | /projects/{id}/releases | Release history |
| GET POST | /projects/{id}/members | Team credits |
| DELETE | /projects/{id}/{koleksiyon}/{itemId} | Remove one item |
| PUT DELETE | /projects/{id}/logo | Project logo (multipart, field file) |
| PUT DELETE | /projects/{id}/cover | Cover image (multipart, field file) |
| GET | /projects/{id}/messages | Messages from visitors |
04Example: creating a project
Optional fields may be omitted entirely. The project is created as a draft.
curl -X POST https://traip.org/api/v1/projects \
-H "Authorization: Bearer $TRAIP_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Ses Ayrıştırıcı",
"tagline": "Toplantı kayıtlarını konuşmacılara ayırır",
"overview": "## Ne yapar\n\nÇok kişili ses kayıtlarını...",
"field": "SPEECH",
"stage": "BETA",
"demoKind": "CODE",
"repoUrl": "https://github.com/ornek/ses-ayristirici"
}'05Errors
A failed request returns:
{
"error": "validation_failed",
"message": "Girdiler geçerli değil.",
"details": { "tagline": "En az 20 karakter yazın." }
}06MCP server
If your assistant speaks the Model Context Protocol (Claude Desktop, for instance), the same API is available as tools — no HTTP by hand. The server is mcp/server.ts in the repository; run the command from the repository root. Add this to your configuration:
{
"mcpServers": {
"traip": {
"command": "npx",
"args": ["-y", "tsx", "mcp/server.ts"],
"env": {
"TRAIP_TOKEN": "traip_xxxxxxxxxxxxxxxxxxxx",
"TRAIP_URL": "https://traip.org/"
}
}
}
}The server is a thin wrapper: every rule lives in the API, so a tool cannot do anything the API would refuse.