Publishing APIs

Publish your API to the Proxagora marketplace. Set your endpoint, category, and per-call price. Earn USDC every time an agent calls your API.

Publishing APIs

Anyone can publish an API to Proxagora. You set the endpoint, the price, and the category. Proxagora handles routing, payment collection, and distribution.

You earn per call — paid in USDC to your wallet — with no billing code to write.

Endpoint

POST https://proxagora.com/api/publish
X-API-Key: <your-provider-api-key>
Content-Type: application/json

Request Body

{
  "name": "My Data API",
  "description": "Returns enriched data for any company domain. Includes employee count, tech stack, and funding history.",
  "endpoint": "https://your-api.com/api/endpoint",
  "category": "Business",
  "cost_usdc": 0.01,
  "method": "POST",
  "params_schema": {
    "domain": {
      "type": "string",
      "required": true,
      "description": "Company domain name"
    }
  },
  "response_example": {
    "company": "Acme Corp",
    "employees": 500,
    "tech_stack": ["React", "Node.js", "PostgreSQL"]
  },
  "tags": ["company", "enrichment", "b2b"]
}

Required Fields

| Field | Type | Description | |-------|------|-------------| | name | string | Display name in the catalog | | description | string | What the API returns — be specific, this is what agents read to decide which API to call | | endpoint | string | Your API's URL — Proxagora will proxy calls to this | | category | string | One of: Domain, Network, Contact, Tech, Intelligence, Business, Media, Travel | | cost_usdc | number | Per-call price in USDC (e.g. 0.005 = half a cent) |

Optional Fields

| Field | Type | Description | |-------|------|-------------| | method | string | HTTP method your endpoint accepts (default: POST) | | params_schema | object | JSON schema for request parameters — helps agents know what to send | | response_example | object | Example response — used for agent tool generation | | tags | string[] | Searchable tags |

Response

HTTP 201 Created

{
  "id": "my-data-api",
  "status": "published",
  "endpoint": "/api/my-data-api",
  "catalog_url": "https://proxagora.com/api/discover"
}

Your API is live immediately after the 201 response. It will appear in GET /api/discover within 30 seconds.

Getting a Provider API Key

Provider keys are currently issued manually during beta. Email providers@proxagora.com or use the wishlist form to request access.

Keys are prefixed prx_sk_ and should be kept secret. They authorize publishing and updating APIs under your account.

How Routing Works

When a caller hits POST /api/{your-api-id} on Proxagora:

  1. Proxagora validates the payment (x402 or Stripe MPP)
  2. Deducts Proxagora's take rate (see Pricing)
  3. Forwards the request to your endpoint URL
  4. Returns your response to the caller
  5. Settles your portion of the payment to your registered wallet

Your API receives the caller's request body, forwarded verbatim. You don't need to handle payment — Proxagora validates it upstream.

Your API Requirements

Your endpoint should:

  • Accept JSON (or form data, if you specify method accordingly)
  • Return JSON
  • Respond within 30 seconds (Proxagora times out at 30s)
  • Return 200 on success
  • Return 4xx/5xx on error (Proxagora passes these through)

You don't need to add authentication to your endpoint — Proxagora's forwarding uses a shared secret header (X-Proxagora-Forward-Key) that you can validate to ensure calls are coming from Proxagora.

Updating an Existing API

PATCH https://proxagora.com/api/publish/{id}
X-API-Key: <your-provider-api-key>

{
  "cost_usdc": 0.008,
  "description": "Updated description with more detail"
}

Only provide fields you want to update.

Taking Down an API

DELETE https://proxagora.com/api/publish/{id}
X-API-Key: <your-provider-api-key>

The API is removed from the catalog immediately. In-flight calls that have already been paid will still complete.

Monitoring Your API

Your provider dashboard (coming soon) shows:

  • Call volume per day/week/month
  • Revenue earned (USDC)
  • Error rates
  • Response time percentiles

In the meantime, monitor via your own endpoint's access logs.

Payment Settlement

Revenue from your API calls is settled to your registered Base wallet. Settlement runs:

  • Testnet: immediately on payment validation
  • Mainnet: batched hourly (minimum 10 USDC threshold)

For Stripe MPP calls, settlement is converted to USDC and sent to your wallet on the same schedule.

Calling APIsMCP Integration