Agentic Commerce

Agent Discovery

Public endpoints for AI agents to discover products and capabilities

| View as Markdown
1 min read
# acp # agentic-commerce # discovery # products # agent-card # well-known

Discovery endpoints let AI agents find your app and browse its product catalog. These endpoints are public — no authentication required.

Agent Card

plaintext
GET /acp/{appId}/.well-known/agent.json

Returns metadata about your app and its ACP capabilities. This follows the .well-known convention used in agent-to-agent protocols, making it easy for AI agents to discover what your app offers and how to interact with it.

Example Request

bash
curl https://build.chipp.ai/acp/{appId}/.well-known/agent.json

Response

json
{
  "name": "My AI Assistant",
  "description": "An assistant that helps with data analysis",
  "url": "https://build.chipp.ai/acp/{appId}",
  "version": "1.0.0",
  "capabilities": {
    "products": true,
    "checkout": true
  },
  "endpoints": {
    "products": "https://build.chipp.ai/acp/{appId}/products",
    "checkout": "https://build.chipp.ai/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

FieldTypeDescription
namestringYour application’s name
descriptionstring or nullYour application’s description
urlstringBase URL for this app’s ACP endpoints
versionstringACP protocol version
capabilitiesobjectSupported ACP features
endpointsobjectFull URLs for products and checkout endpoints
authenticationobjectAuthentication requirements

List Products

plaintext
GET /acp/{appId}/products

Returns all active products in your catalog. Inactive or deleted products are excluded.

Example Request

bash
curl https://build.chipp.ai/acp/{appId}/products

Response

json
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Data Analysis Report",
      "description": "Generate a comprehensive analysis of your dataset",
      "sku": "ANALYSIS-001",
      "price": {
        "amount": 2500,
        "currency": "usd"
      },
      "fulfillment_type": "automatic"
    },
    {
      "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "name": "Custom Research Brief",
      "description": "A tailored research brief on any topic",
      "sku": "RESEARCH-001",
      "price": {
        "amount": 4999,
        "currency": "usd"
      },
      "fulfillment_type": "manual"
    }
  ]
}

Product Fields

FieldTypeDescription
idstring (UUID)Unique product identifier. Use this when creating checkout sessions.
namestringProduct name
descriptionstring or nullWhat the product or service does
skustring or nullOptional SKU for inventory tracking
price.amountintegerPrice in currency minor units (e.g., 2500 = $25.00)
price.currencystringISO currency code (e.g., "usd")
fulfillment_typestring"automatic" (tool execution on purchase) or "manual" (human fulfillment)
ℹ️

Prices are always in minor units of the currency. For USD, 2500 means $25.00. For JPY, 2500 means 2500 yen.

Error Responses

404 Not Found

The application 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" }