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

Update owned merchant name and categories

Human owner only. Domain is immutable. An active offer prevents removal of its category. Idempotency is required.

PATCH/v1/merchants/{id}
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
Path parameters
idstringrequired
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
namestring
min length 1 · max length 100
categoriesstring[]
min items 1 · max items 20
Responses
200

Updated merchant

merchantMerchantrequired
Show properties
idstring
ownerIdstring
namestring
domainstring
verificationChallengestring
verifiedboolean
acceptedPaymentMethodsstring[]
webhookUrlstring
400

Invalid settings or domain edit attempted

403

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

typestringrequired
titlestringrequired
statusintegerrequired
codestringrequired
409

Category in use or idempotency conflict

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