A2A Quickstart

Get connected in 5 minutes. All you need is an API key and curl.

Step 1: Create an API Key#

Go to your Dashboard Settings and create a new A2A API key. Choose the trust level and scopes that match what you want external agents to do.

Your key will look like ohw_a2a_abc123.... Save it; you won't see it again.

Step 2: Discover the Agent Card#

Every A2A-compatible agent publishes an Agent Card at a well-known URL. Fetch yours to see what's available:

bash
curl https://your-app.ohwow.fun/.well-known/agent-card.json

The response describes your agents' names, skills, supported input/output modes, and authentication requirements.

Step 3: Send Your First Task#

Use the message/send method to send a task to one of your agents:

Send a task
curl -X POST https://your-app.ohwow.fun/api/a2a \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ohw_a2a_your_key_here" \
  -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "message/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [
          {
            "type": "text",
            "text": "Research competitors in the AI agent space"
          }
        ]
      }
    }
  }'

The response includes a task ID and the current status. Most tasks start in submitted or working state.

Step 4: Check Task Status#

Poll for the result using tasks/get:

Get task status
curl -X POST https://your-app.ohwow.fun/api/a2a \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ohw_a2a_your_key_here" \
  -d '{
    "jsonrpc": "2.0",
    "id": "2",
    "method": "tasks/get",
    "params": {
      "id": "task_id_from_step_3"
    }
  }'

When the task reaches completed, the response includes the agent's output in the artifacts array.

Step 5: Connect an External Agent#

Want your ohwow agents to call other A2A agents? Add a connection in your dashboard or use the ohwow-connect relay to bridge private agents into the A2A network.

That's it!

You're connected. Your agents can now send and receive tasks from any A2A-compatible system. Check the API Reference for the full list of methods and parameters.

Local Development#

Want to test A2A locally before deploying? The project includes an example A2A agent server at e2e/mock-servers/a2a-agent.ts that you can use as a starting point.

Run the example agent
# Start the example A2A agent on port 4100
npx tsx e2e/mock-servers/a2a-agent.ts

# With AI responses (requires ANTHROPIC_API_KEY in .env.local)
# Without the key, it falls back to echo mode

# Test the agent card
curl http://localhost:4100/.well-known/agent-card.json

# Send a task
curl -X POST http://localhost:4100/rpc \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "message/send",
    "params": {
      "message": {
        "role": "user",
        "parts": [{"type": "text", "text": "Hello from local dev!"}]
      }
    }
  }'

Then add it as a connection in your dashboard using the URL http://localhost:4100/.well-known/agent-card.json. Use this pattern to build and test your own A2A agents before connecting them to production.