Thrive API

Projects

Read the key owner's Agent Projects.

List projects

GET /v1/projects

The key owner's Agent Projects, most recently updated first (up to 100).

Authentication: API key · Required scope: projects:read

curl "https://jointhrive.org/api/public/v1/projects" \
  -H "Authorization: Bearer $THRIVE_API_KEY"
Response · 200
{
  "object": "list",
  "data": [
    {
      "id": "3f1e…",
      "title": "My First Car",
      "goal": "Buy a reliable car under $15,000",
      "template": "car",
      "status": "active"
    }
  ]
}

Errors: invalid_api_key, missing_scope

Try it

Sign in to test this endpoint with one of your keys.

Retrieve a project

GET /v1/projects/{id}

One project with its saved items (simulations, lessons, conversations, notes). Only the key owner's projects are reachable.

Authentication: API key · Required scope: projects:read

Parameters · Retrieve a project

iduuidrequired

Project id (path parameter).

curl "https://jointhrive.org/api/public/v1/projects/PROJECT_ID" \
  -H "Authorization: Bearer $THRIVE_API_KEY"
Response · 200
{
  "object": "project",
  "id": "3f1e…",
  "title": "My First Car",
  "items": [ … ]
}

Errors: resource_missing, missing_scope

Try it

Sign in to test this endpoint with one of your keys.

Create a project

POST /v1/projects

Creates an Agent Project owned by the key owner. Retrying with the same Idempotency-Key returns the first result.

Authentication: API key · Required scope: projects:write · Supports Idempotency-Key

Parameters · Create a project

titlestringrequired

1–120 characters.

goalstring

Up to 500 characters.

curl -X POST "https://jointhrive.org/api/public/v1/projects" \
  -H "Authorization: Bearer $THRIVE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"title":"Emergency fund","goal":"Save $3,000"}'
Response · 200
{
  "object": "project",
  "id": "3f1e…",
  "title": "Emergency fund",
  "status": "active"
}

Errors: missing_scope, parameter_invalid, project_limit, idempotency_conflict