Skip to content
agentsub
Esc
↑↓navigate↵open⌘Jpreview

Register a merchant

Returns the merchant and the DNS TXT record (_acceptor-verify.<domain>) to publish for domain verification.

POST/v1/merchants
Authorization
AuthorizationBearer token (JWT) · headerrequired

Clerk human owner session JWT; iss must equal the configured Clerk issuer and the identity must be a human (not agent) owner with a verified email.

or
AuthorizationOAuth2 access token · headerrequired
Scopes:agentsub:owner
Header parameters
Idempotency-Keystringrequired

Required only where this parameter is listed. Same payload/key recovers prior operation; secret replays omit plaintext.

matches ^[A-Za-z0-9._:-]{1,200}$
Request body
requiredapplication/json
namestringrequired
min length 1 · max length 100
domainstringrequired

Public DNS hostname; no scheme, path, credentials, IP address or localhost

categoriesstring[]required
min items 1 · max items 20
Responses
201

Merchant registered with DNS verification record

merchantMerchant
Show properties
idstring
ownerIdstring
namestring
domainstring
verificationChallengestring
verifiedboolean
acceptedPaymentMethodsstring[]
webhookUrlstring
dnsRecordobject
Show properties
typestring
namestring
valuestring
400

invalid_input problem

typestringrequired
titlestringrequired
statusintegerrequired
codestringrequired
401

unauthorized problem; live 401s advertise WWW-Authenticate: Bearer resource_metadata=...

typestringrequired
titlestringrequired
statusintegerrequired
codestringrequired
403

Identity, ownership, scope or policy denied (human_required, owner_claim_required, scope_required, FROZEN, CAP_EXCEEDED, SCOPE_FORBIDDEN)

typestringrequired
titlestringrequired
statusintegerrequired
codestringrequired
503

Runtime or provider configuration unavailable (runtime_configuration_required, signing_configuration_required, runtime_unavailable, workspace_unavailable, provider_configuration_required)

typestringrequired
titlestringrequired
statusintegerrequired
codestringrequired
Request
curl -X POST 'https://api.agentsub.dev/v1/merchants' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Idempotency-Key: string' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "domain": "string",
  "categories": [
    "string"
  ]
}'
Response
{
  "merchant": {
    "id": "string",
    "ownerId": "string",
    "name": "string",
    "domain": "string",
    "verificationChallenge": "string",
    "verified": true,
    "acceptedPaymentMethods": [
      "string"
    ],
    "webhookUrl": "string"
  },
  "dnsRecord": {
    "type": "TXT",
    "name": "string",
    "value": "string"
  }
}