Skip to Content
Code Fundi for VS Code · Cursor: install the extension →
DocsAPI referenceA2A protocol

A2A (Agent-to-Agent) protocol

Production base URL: https://api.codefundi.app · Spec: A2A documentation 

Code Fundi exposes an A2A v0.3.0  surface so external agents can discover capabilities and invoke documented REST operations without a separate tool catalog.

Discovery

ResourceURL
Agent CardGET /.well-known/agent-card.json
API contractGET /openapi.json
Interactive docsGET /docs

Transports

BindingEndpoint
JSON-RPC 2.0 (primary)POST /a2a/jsonrpc
HTTP+JSON / RESTPOST /a2a/rest
Native RESTDocumented /v2/... paths

Invoking operations (message/send)

Send a JSON-RPC message/send request whose message includes a data part:

{ "operationKey": "POST /v2/search", "pathParams": {}, "query": {}, "headers": {}, "body": { "query": "authentication middleware", "scan_mode": "semantic" } }
  • operationKey: METHOD + API path, e.g. GET /v2/models, POST /v2/repos/index/new.
  • pathParams: Substitutes path segments such as repository or file ids.
  • headers: Forwarded to the REST handler (for example X-API-Key).
  • body: JSON body for POST operations.

You may also pass X-API-Key on the JSON-RPC HTTP request or in message.metadata.apiKey.

Example (curl)

curl -sS -X POST "https://api.codefundi.app/a2a/jsonrpc" \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "jsonrpc": "2.0", "id": "1", "method": "message/send", "params": { "message": { "kind": "message", "messageId": "00000000-0000-4000-8000-000000000001", "role": "user", "parts": [{ "kind": "data", "data": { "operationKey": "POST /v2/search", "pathParams": {}, "query": {}, "headers": {}, "body": { "query": "rate limit middleware", "chat": false } } }] }, "configuration": { "blocking": true } } }'

Authentication

Use header X-API-Key for protected operations. Auth kickoff routes under /v2/auth/* do not require an API key; password auth must use X-CodeFundi-Auth-Password per Authentication.

Streaming

Operations that return application/x-ndjson (for example POST /v2/search with chat: true) are advertised with streaming capabilities. Streamed HTTP output is forwarded as A2A message chunks on the same task.

Last updated on