Skip to content

Projects ​

List the projects you belong to, or create one. Ids are UUIDs. See Concepts for roles and scope.

List Projects ​

GET /api/v1/projects

Scope: intangia:read.

Returns { "projects": [] } when you have none. Each project includes id, name, created_at, role, and the latest brief (null when there is none). role is owner, editor, or viewer.

bash
curl "https://app.intangia.co/api/v1/projects" \
  -H "Authorization: Bearer $TOKEN"
json
{
  "projects": [
    {
      "id": "2c0b1a44-7e1d-4f0a-9c3b-6d5e4f3a2b10",
      "name": "Kinase landscape",
      "created_at": "2026-10-01T09:00:00.000Z",
      "role": "owner",
      "brief": null
    }
  ]
}

Create a Project ​

POST /api/v1/projects

Scope: projects:write. Status 201.

FieldRequiredNotes
nameyesTrimmed. Missing or blank returns 400 and { "error": "Missing name" }.
briefnoStored on the project. This route does not extract scope from it.
watchlist_itemsnoScope items: entity_id, entity_type, optional entity_name and data.
operandno$and or $or. Any other value is ignored.
goalsnoArray of target, indication, modality. Other values are dropped.
primary_filter_typenoDefaults to keyword.
bash
curl -X POST "https://app.intangia.co/api/v1/projects" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"Kinase landscape"}'
json
{
  "id": "2c0b1a44-7e1d-4f0a-9c3b-6d5e4f3a2b10",
  "name": "Kinase landscape",
  "role": "owner",
  "setup_url": "https://app.intangia.co/projects/2c0b1a44-7e1d-4f0a-9c3b-6d5e4f3a2b10/overview?setup=1"
}

setup_url is where scoring setup is finished in the app. Scoring cannot start until that setup exists. If the initial scan fails to start, the response also includes scan_error. The project is still created.

To create a project from a brief and have scope matched for you, use the MCP tool create_project. This route stores the items you send.

Actionable insights for better R&D and strategy decisions.