Agent Platform

Developing with Agent Platform

Research Preview

Agent Platform is in research preview. APIs and behavior may change without notice. We don't recommend production use yet.

SDKs coming soon

We're working on SDKs for TypeScript, Python, and Go. For now, the API is plain HTTP. Thanks for your patience! :)

To keep it super simple: when agents use integrations, they usually keep secrets and other sensitive data in their context window. In the future, agents will manage more and more user data - and all of that may end up unencrypted in context as well.

That's why we've developed Agent Platform as a thin abstraction over any of your llm calls - our Platform Gateway gates access to integration secrets, scopes permissions, does audit logging so you don't have to. All the agents see is a singular injected tool call that gives them a response (or tells them what is missing!) :)

Quickstart

Pro tip

Feed the results of the "Copy for LLMs" button into Claude Code, OpenCode, or your favorite harness.

1. Get your API key

Open the API Keys page in the dashboard and create a new key. Store it on your server:

export AP_API_KEY=ap_live_<your_key>

2. Create a session

A session holds conversation context across multiple requests, similar to a thread.

curl https://api.agentplatform.cloud/v1/sessions \
  -H "Authorization: Bearer $AP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"My first session"}'
{ "id": "sess_abc123", "status": "active" }

3. Send a prompt

Run a prompt inside your session. Set wait: true for a synchronous response, just like a regular model call.

curl https://api.agentplatform.cloud/v1/sessions/sess_abc123/runs \
  -H "Authorization: Bearer $AP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": [
      {
        "role": "user",
        "content": [{ "type": "input_text", "text": "Summarize open issues in Linear." }]
      }
    ],
    "wait": true
  }'
{
  "id": "run_xyz789",
  "status": "completed",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [{ "type": "output_text", "text": "There are 4 open issues..." }]
    }
  ]
}

That's it. Reuse the same session to continue the conversation, or create a new one for isolated tasks.

The full API spec is available at /v1/openapi.json.

Next steps

On this page