TRAIP
Sign inSign up
Developers

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_xxxxxxxxxxxxxxxxxxxx

What 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/meWho the token belongs to
GET/projectsList your projects
POST/projectsCreate a draft
GET/projects/{id}One project in full
PATCH/projects/{id}Change only the fields you send
POST/projects/{id}/submitSend for review
POST/projects/{id}/unpublishWithdraw from the catalogue
GET POST/projects/{id}/docsDocumentation links
GET POST/projects/{id}/metricsMetrics
GET POST/projects/{id}/releasesRelease history
GET POST/projects/{id}/membersTeam credits
DELETE/projects/{id}/{koleksiyon}/{itemId}Remove one item
PUT DELETE/projects/{id}/logoProject logo (multipart, field file)
PUT DELETE/projects/{id}/coverCover image (multipart, field file)
GET/projects/{id}/messagesMessages 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/"
      }
    }
  }
}
Tools
whoamilist_projectsget_projectcreate_projectupdate_projectsubmit_projectunpublish_projectadd_documentadd_metricadd_releaseadd_team_memberremove_itemlist_messages

The server is a thin wrapper: every rule lives in the API, so a tool cannot do anything the API would refuse.