Discovery endpoints let AI agents find your AVCodex agent and browse its product catalog. These endpoints are public. No authentication required.
code
GET /acp/{appId}/.well-known/agent.jsonReturns metadata about your AVCodex agent and its ACP capabilities. This follows the .well-known convention used in agent-to-agent protocols, making it easy for external AI agents to discover what your agent offers and how to interact with it.
Example request#
bash
curl https://app.avcodex.com/acp/{appId}/.well-known/agent.jsonResponse#
json
{
"name": "AVCodex Pro Services",
"description": "An AVCodex agent that handles room audits, programming hours, and remote commissioning",
"url": "https://app.avcodex.com/acp/{appId}",
"version": "1.0.0",
"capabilities": {
"products": true,
"checkout": true
},
"endpoints": {
"products": "https://app.avcodex.com/acp/{appId}/products",
"checkout": "https://app.avcodex.com/acp/{appId}/checkout_sessions"
},
"authentication": {
"type": "bearer",
"description": "Requires ACP API key (acp_*) in Authorization header for checkout operations. Product discovery is public."
}
}Response fields#
| Field | Type | Description |
|---|---|---|
name | string | Your AVCodex agent's name. |
description | string or null | Your AVCodex agent's description. |
url | string | Base URL for this agent's ACP endpoints. |
version | string | ACP protocol version. |
capabilities | object | Supported ACP features. |
endpoints | object | Full URLs for products and checkout endpoints. |
authentication | object | Authentication requirements. |
code
GET /acp/{appId}/productsReturns all active products in your catalog. Inactive or deleted products are excluded.
Example request#
bash
curl https://app.avcodex.com/acp/{appId}/productsResponse#
json
{
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Room Audit Report",
"description": "Generate a detailed audit of an existing AV room (DSP, codec, control system, signal flow)",
"sku": "AUDIT-001",
"price": {
"amount": 25000,
"currency": "usd"
},
"fulfillment_type": "automatic"
},
{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"name": "Remote Commissioning, single room",
"description": "Live remote commissioning session with a senior programmer",
"sku": "COMMISSION-001",
"price": {
"amount": 49900,
"currency": "usd"
},
"fulfillment_type": "manual"
}
]
}Product fields#
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Unique product identifier. Use this when creating checkout sessions. |
name | string | Product name. |
description | string or null | What the product or service does. |
sku | string or null | Optional SKU for inventory tracking. |
price.amount | integer | Price in currency minor units (for example, 2500 = $25.00). |
price.currency | string | ISO currency code (e.g., "usd"). |
fulfillment_type | string | "automatic" (tool execution on purchase) or "manual" (human fulfillment). |
Note: Prices are always in minor units of the currency. For USD, 2500 means $25.00. For JPY, 2500 means 2500 yen.
404 Not Found#
The agent ID does not exist or has been deleted:
json
{ "error": "Application not found" }429 Too Many Requests#
Public endpoints are limited to 200 requests per minute per IP:
json
{ "error": "Rate limit exceeded" }*AVCodex · Your AV expertise. Amplified by AI.*