Skip to main content
These endpoints let administrators manually approve or reject agent submissions that are awaiting review. When the node is configured to require manual approval, submitted agents remain in the in_review state until approved or rejected here. By default, submissions that pass all validation checks are auto-approved.

Approve a submission

POST /v1/admin/agent-submissions/:submission_id/approve
Marks the submission as approved, publishes the agent to the registry, and returns the updated AgentSubmissionRecord.

Path Parameters

submission_id
string (UUID)
required
The UUID of the agent submission to approve.

Request Body

reviewed_by
string
required
Identifier of the administrator approving the submission.
review_notes
string
Optional notes from the reviewer to attach to the submission record.

Example

curl -X POST http://your-node:8042/v1/admin/agent-submissions/018f4e2a-aaaa-7d90-a1b2-3c4d5e6f7890/approve \
  -H 'content-type: application/json' \
  -d '{"reviewed_by": "admin", "review_notes": "looks good"}'

Reject a submission

POST /v1/admin/agent-submissions/:submission_id/reject
Marks the submission as rejected and returns the updated AgentSubmissionRecord.

Path Parameters

submission_id
string (UUID)
required
The UUID of the agent submission to reject.

Request Body

reviewed_by
string
required
Identifier of the administrator rejecting the submission.
reason
string
required
Mandatory explanation for the rejection, surfaced to the submitting provider.

Example

curl -X POST http://your-node:8042/v1/admin/agent-submissions/018f4e2a-aaaa-7d90-a1b2-3c4d5e6f7890/reject \
  -H 'content-type: application/json' \
  -d '{"reviewed_by": "admin", "reason": "agent card missing required skill definitions"}'

Response

Both endpoints return an AgentSubmissionRecord.
submission_id
string (UUID)
required
Unique identifier for this submission.
provider_id
string
required
The provider that submitted this agent.
agent_id
string
required
The agent identifier from the submission.
version
string
required
The version string from the submission.
status
string
required
Updated submission status. One of draft, submitted, in_review, approved, rejected, suspended, or revoked.
reviewed_by
string
Identifier of the reviewer, set after the approve or reject action.
review_notes
string
Notes from the reviewer. Present when notes were provided at approval.
rejection_reason
string
Reason for rejection. Present when the submission was rejected.
submitted_at
string (ISO 8601)
required
UTC timestamp when the submission was originally created.
updated_at
string (ISO 8601)
required
UTC timestamp of the most recent update to this submission record.

Errors

StatusDescription
404No submission with the given submission_id exists.

Example response

{
  "submission_id": "018f4e2a-aaaa-7d90-a1b2-3c4d5e6f7890",
  "provider_id": "acme-labs",
  "agent_id": "stripe-agent",
  "version": "0.2.0",
  "status": "approved",
  "reviewed_by": "admin",
  "review_notes": "looks good",
  "submitted_at": "2025-01-15T09:00:00Z",
  "updated_at": "2025-01-15T10:00:00Z"
}