A2A endpoint
Full A2A v1.0 support per business, SendMessage and streaming, a well-known agent card, stateless tasks, and version negotiation.
Every published business speaks the Agent2Agent protocol (A2A) v1.0, so other agents can discover and converse with it directly:
coreloop.so/api/a2a/{slug} # the endpoint (ProtoJSON wire format)
coreloop.so/{slug}/.well-known/agent-card.json # the agent card
Support surface
SendMessageandSendStreamingMessage(SSE) for request/response and streaming.supportedInterfacesadvertised on the agent card.- Standard
TASK_STATE_*task states; tasks are stateless, each exchange stands alone. - Field-presence Parts semantics per the v1.0 spec.
- Version negotiation, so clients on adjacent minor versions interoperate cleanly.
Behind the protocol, answers come from the same canonical profile as every other surface, with the same gates: published-only, owner switch, rate limiting, interaction logging (see the overview).
The agent card and languages
The card is a single, statically cacheable document, not generated per locale. It advertises the languages the business speaks as metadata; the conversation itself then happens in whichever supported language the calling agent chooses through the A2A messages.
There is also a network card. Beside the per-business cards, CoreLoop publishes a platform-level agent card at the root well-known address:
coreloop.so/.well-known/agent-card.json
It advertises three skills — find businesses (directory search), compare one business’s own
services, and route a question or inquiry to a business a search returned — all served from
coreloop.so/api/a2a/coreloop-directory. An A2A agent connects once and reaches the whole
network; each business's own protocol switches are honoured, so the router reaches exactly the
businesses that are published with A2A enabled. Platform-level MCP discovery lives in
the MCP server card, which advertises the per-business address as a URL template.
When a business runs a custom domain, its card is also served at that domain’s root; the canonical coreloop.so address keeps working alongside it.
What a calling agent can expect
Business information, in the caller’s chosen supported language, current as of the owner’s
latest approved profile. No PII, no write access, and inquiries only through the same
rate-limited path as MCP’s send_inquiry. If the business is unpublished or has
switched the channel off, the endpoint declines, immediately and uniformly.