> ## Documentation Index
> Fetch the complete documentation index at: https://hs-df36fa00.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a Published Agent by ID — GET /v1/agents/:agent_id

> Retrieve the full record of a published agent by its agent_id, including the A2A agent card, deployment config, and review profile.

Fetches the complete record for a single published agent, including its A2A agent card, deployment endpoint, and review metadata.

## Request

```bash theme={null}
curl http://your-node:8042/v1/agents/stripe-agent
```

### Path parameters

<ParamField path="agent_id" type="string" required>
  The unique identifier of the published agent to retrieve (e.g. `"stripe-agent"`).
</ParamField>

## Response

Returns a `PublishedAgentRecord` on success.

<ResponseField name="agent_id" type="string">
  Unique identifier for the agent.
</ResponseField>

<ResponseField name="provider_id" type="string">
  Identifier of the provider that submitted this agent.
</ResponseField>

<ResponseField name="version" type="string">
  Semantic version string (e.g. `"1.2.0"`).
</ResponseField>

<ResponseField name="status" type="string">
  One of `"approved"`, `"suspended"`, or `"revoked"`.
</ResponseField>

<ResponseField name="agent_card" type="object">
  Full A2A agent card describing the agent's name, description, URL, skills, and security schemes.
</ResponseField>

<ResponseField name="deployment" type="object">
  Deployment configuration.

  <Expandable title="deployment fields">
    <ResponseField name="runtime" type="string">
      Execution runtime identifier (e.g. `"remote_http"`).
    </ResponseField>

    <ResponseField name="endpoint" type="object">
      <Expandable title="endpoint fields">
        <ResponseField name="url" type="string">
          The A2A endpoint URL the gateway will proxy requests to.
        </ResponseField>

        <ResponseField name="protocol_binding" type="string">
          Protocol binding (e.g. `"JSONRPC"`).
        </ResponseField>

        <ResponseField name="protocol_version" type="string">
          Protocol version string (e.g. `"1.0"`).
        </ResponseField>

        <ResponseField name="interaction_protocol" type="string">
          Interaction protocol. Currently always `"google_a2a"`.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="review" type="AgentReviewProfile">
  Review metadata.

  <Expandable title="review fields">
    <ResponseField name="risk_level" type="string">
      One of `"low"`, `"medium"`, or `"high"`.
    </ResponseField>

    <ResponseField name="data_classes" type="string[]">
      Categories of data the agent handles (e.g. `["financial"]`).
    </ResponseField>

    <ResponseField name="destructive_actions" type="string[]">
      List of destructive action identifiers the agent can perform.
    </ResponseField>

    <ResponseField name="human_approval_required" type="boolean">
      Whether invocations require human approval before execution.
    </ResponseField>

    <ResponseField name="allowed_regions" type="string[]">
      ISO country codes the agent is permitted to operate in. An empty array means no regional restriction.
    </ResponseField>

    <ResponseField name="cost_per_call_units" type="integer">
      Cost in abstract units per invocation. Omitted if not set.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="approved_at" type="string">
  ISO 8601 timestamp of approval.
</ResponseField>

<ResponseField name="updated_at" type="string">
  ISO 8601 timestamp of the most recent record update.
</ResponseField>

<ResponseField name="reviewed_by" type="string">
  Reviewer identity or `"auto-approve"`.
</ResponseField>

<ResponseField name="review_notes" type="string">
  Optional reviewer notes. Omitted if not set.
</ResponseField>

## Status codes

| Code            | Meaning                                                           |
| --------------- | ----------------------------------------------------------------- |
| `200 OK`        | Agent found. Returns the full `PublishedAgentRecord`.             |
| `403 Forbidden` | The agent or its provider is blocked or revoked.                  |
| `404 Not Found` | No published agent with the given `agent_id` exists on this node. |

## Example response

```json theme={null}
{
  "agent_id": "stripe-agent",
  "provider_id": "acme-labs",
  "version": "1.2.0",
  "status": "approved",
  "agent_card": {
    "name": "Stripe Agent",
    "description": "Handles Stripe payment flows",
    "url": "https://stripe-agent.example.com",
    "preferredTransport": "JSONRPC",
    "protocolVersion": "1.0",
    "supportsTask": false,
    "skills": [
      { "id": "payments.create_link", "name": "Create Payment Link" }
    ],
    "securitySchemes": { "oauth2": { "type": "oauth2" } },
    "security": [{ "oauth2": ["payments:write"] }]
  },
  "deployment": {
    "runtime": "remote_http",
    "endpoint": {
      "url": "https://stripe-agent.example.com/a2a",
      "protocol_binding": "JSONRPC",
      "protocol_version": "1.0",
      "interaction_protocol": "google_a2a"
    }
  },
  "review": {
    "risk_level": "medium",
    "data_classes": ["financial"],
    "destructive_actions": ["payments.refund"],
    "human_approval_required": true,
    "allowed_regions": ["AU", "US"],
    "cost_per_call_units": 10
  },
  "approved_at": "2025-01-16T08:00:00Z",
  "updated_at": "2025-01-16T08:00:00Z",
  "reviewed_by": "auto-approve",
  "review_notes": "All checks passed"
}
```
