Your agent can contribute, too.
Send a product suggestion to uAgentKit. Every submission follows the same editorial review process, whether it comes from a person or an agent.
Online intake is not connected yet. The endpoints return 503 until the receiver is connected. Nothing is stored or accepted in that state. You can use the email option on the submission page.
Two ways to submit
No submitter API key is required. The intake is public and rate limited. Submission does not authorize publication, change existing profiles, or run your agent. Never include credentials, private user data or instructions to execute tools.
JSON API
POST https://uagentkit.com/api/agent-submissions, with Content-Type: application/json.
{
"requestId": "b3932681-f024-40b7-9d1b-6821cbfc988b",
"agent": {
"name": "Example Agent",
"website": "https://example.com",
"summary": "A factual description of the task and intended users.",
"category": "Personal assistant",
"agentCardUrl": "",
"relationship": "I build this product."
}
}Generate a fresh UUID for each new suggestion. After a timeout, retry the same requestId and unchanged content. A changed payload with the same ID returns 409. A 201 response with ok: true, receiptId and status: pending_review confirms durable acceptance. A receipt never means “published”.
A2A 1.0 · JSON-RPC
Discover /.well-known/agent-card.json, then send the request below to POST https://uagentkit.com/api/a2a. Use Content-Type: application/json and A2A-Version: 1.0.
{
"jsonrpc": "2.0",
"id": "request-1",
"method": "SendMessage",
"params": {
"message": {
"messageId": "your-stable-unique-message-id",
"role": "ROLE_USER",
"parts": [
{
"data": {
"action": "submit_agent",
"agent": {
"name": "Example Agent",
"website": "https://example.com",
"summary": "A factual description of the task and intended users.",
"category": "Personal assistant",
"agentCardUrl": "",
"relationship": "I build this product."
}
},
"mediaType": "application/json"
}
]
}
}
}The response uses result.message with ROLE_AGENT and a structured receipt. This is a direct-message intake service, not a long-running A2A task. Reuse messageId and identical content on retry. Editorial status is private: ListTasks returns no tasks, and GetTask/CancelTask return TaskNotFound. Streaming, push notifications, files, free-text instructions and A2A 0.3 method names are not supported.
Protocol reference: A2A specification release v1.0.1, interface version 1.0. This implementation has local contract tests; no independent interoperability certification is claimed.
What to send
| Field | Requirement |
|---|---|
| name | Required, up to 120 characters. |
| website | Required public official website, up to 1,000 characters. |
| summary | Required factual summary, up to 3,000 characters. No invented results or prices. |
| category | Optional. Ecommerce; Content creation; Healthcare; Legal; Patents; Agriculture; Stocks & finance; Blockchain; Personal assistant; Development; Other. Defaults to Other. |
| agentCardUrl | Optional public Agent Card URL. We do not automatically fetch it or execute the agent. |
| relationship | Optional, up to 500 characters. Disclose ownership or a commercial relationship. |
| Optional private contact address. It is not included in the public listing. |
Review and daily publication
Suggestions may arrive throughout the day. An editor checks the source, rewrites the public summary as needed, records limitations and discloses relevant interests. At most two new community listings can be published across the entire site per Asia/Shanghai calendar day (UTC+8). Unused slots do not carry over. Rejected submissions and retries do not use a publication slot.
Community entries show their review date and source. They do not receive a test score, a verified-performance badge or an automatic full encyclopedia profile. Existing researched profiles stay in the main directory; community arrivals have their own searchable feed linked from it.
Failures and retries
- 422: invalid JSON API fields; fix the request. A2A invalid parameters use JSON-RPC -32602.
- 409: request ID reused with changed content.
- 429: rate limit; wait for Retry-After. Submission guard: 10 requests per 10-minute client window, 300 across the site. This is separate from the daily publication limit.
- 503: intake unavailable; no confirmed acceptance. Retry identical content and ID later.
- Requests are size limited. Use one JSON object; no batch submissions. Browser calls must come from this site; server-to-server requests work without browser cookies.
See privacy and editorial policy. You can also contact the operator with your receipt.