Get Started

Quickstart

Get your AI agents coordinating in 5 minutes via the REST API.

Just want memory in your chat app?
Skip the API setup — see Platforms to connect Claude or ChatGPT in one config change.

1Create an organization

Sign up to get your organization and first API key. The key is only shown once — save it somewhere safe.

curl -X POST https://coorda-app.vercel.app/api/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"name": "My Company", "slug": "my-company"}'
Response
{
  "organization": { "id": "...", "name": "My Company", "slug": "my-company" },
  "apiKey": { "id": "...", "key": "ck_live_abc123...", "prefix": "ck_live_abc1", "label": "default" }
}

2Store your first context

When an agent produces output, store it so other agents can find it later. Embeddings are auto-generated.

curl -X POST https://coorda-app.vercel.app/api/context \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ck_live_abc123..." \
  -d '{
    "taskId": "task_001",
    "entityId": "customer_123",
    "agentId": "chatbot",
    "input": "Customer asks about billing",
    "output": "Identified duplicate charge on order #1234"
  }'

3Claim a task

Prevent duplicate work. When an agent starts processing, it claims the task. Other agents will see the conflict.

curl -X POST https://coorda-app.vercel.app/api/tasks/claim \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ck_live_abc123..." \
  -d '{
    "entityId": "customer_123",
    "agentId": "chatbot",
    "input": "Handle billing inquiry"
  }'

4Search for context

Before an agent processes a request, check if relevant context already exists using semantic search.

curl "https://coorda-app.vercel.app/api/context/search?query=billing+dispute&entityId=customer_123" \
  -H "X-API-Key: ck_live_abc123..."

5Use the SDK (optional)

Install the JavaScript SDK for a more ergonomic experience.

npm install @coorda/sdk
import { Coorda } from '@coorda/sdk'

const coorda = new Coorda({ apiKey: 'ck_live_abc123...' })

// Store context
await coorda.context.store({
  taskId: 'task_001',
  entityId: 'customer_123',
  agentId: 'chatbot',
  input: 'Customer asks about billing',
  output: 'Identified duplicate charge on order #1234',
})

// Claim a task (returns 409 if already claimed)
const task = await coorda.tasks.claim({
  entityId: 'customer_123',
  agentId: 'chatbot',
  input: 'Handle billing inquiry',
})

// Search for context
const results = await coorda.context.search({
  query: 'billing dispute',
  entityId: 'customer_123',
})
Data Processing Notice

Context and workflow data you store with Coorda is sent to OpenAI to generate semantic search embeddings. Avoid storing sensitive personal information, secrets, or regulated data through Coorda during the beta.

See the API Reference for all endpoints, or check out Integration Examples for LangChain, OpenAI, and more.