ARKEN A2A API
Connect another agent to ARKEN's public negotiation catalog and unsaved case drafts using A2A 1.0. This is a stateless service: it returns direct messages, retains no task history, and does not access private workspaces, run a model, collect payment, or send email.
Discovery
Read the ARKEN Agent Card. It advertises JSON-RPC and HTTP+JSON interfaces at https://usearken.com/a2a. No authentication is required. Send A2A-Version: 1.0 on operation requests; unsupported or omitted versions return a version-not-supported error. Streaming, push notifications, and extended cards are not supported.
Search the catalog
curl --fail-with-body https://usearken.com/a2a/message:send \
-H 'Content-Type: application/a2a+json' \
-H 'A2A-Version: 1.0' \
--data '{"message":{"messageId":"example-search-1","role":"ROLE_USER","parts":[{"text":"founder"}]}}'
Text input is a catalog search query, limited to 120 characters. It is never executed as an instruction. The response is a SendMessageResponse with a message containing one JSON data part. The data has data and total fields, matching the REST catalog response.
Structured operations
Instead of a text part, send one data part with one of these payloads:
{"operation":"search-deal-types","query":"founder"}
{"operation":"get-deal-type","domain_id":"sales_procurement"}
{"operation":"prepare-case-draft","context":"Two founders are dividing responsibilities.","deal_type":"Founder arrangements"}
Use a domain_id returned by search. Draft context is limited to 20,000 characters and deal_type to 160. The draft response includes status, requires_review, context, url and optional deal_type. It is returned to the caller without being saved as a case. Do not include credentials or unrelated personal data.
JSON-RPC
POST to /a2a with Content-Type: application/json and A2A-Version: 1.0:
{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{"messageId":"example-search-2","role":"ROLE_USER","parts":[{"data":{"operation":"search-deal-types","query":"lease"}}]}}}
SendMessage returns a direct message immediately. ListTasks (GET /a2a/tasks) returns an empty list because tasks are not retained. GetTask and CancelTask return TaskNotFound. Unsupported optional methods return explicit errors. JSON-RPC batches and notifications are not supported.
Limits and errors
Requests are limited to 65,536 bytes and share 120 operation requests per minute per server instance. HTTP 429 includes Retry-After. HTTP+JSON errors use application/problem+json. JSON-RPC errors include an error code and message. Invalid fields, unsupported input/output modes, and unknown catalog identifiers are rejected. Repeating a draft request has no persistent side effects.