Developers/API Reference

API Reference

Complete documentation for the Bazar verification API. All endpoints return JSON and follow RESTful conventions.

Base URL

https://api.bazarproof.com

Authentication

UCP discovery endpoints (/.well-known/ucp and /ucp/v1/*) are public and do not require authentication. They are designed to be accessed by AI agents and platforms for trust discovery.

Rate Limits: UCP endpoints allow 200-300 requests per minute per IP. For higher limits, contact us for an API key.

Endpoints

GET/.well-known/ucp

UCP Discovery

Discover UCP capabilities and seller verification for a merchant. One lookup parameter is required.

Parameters

NameTypeRequiredDescription
merchantIdstringNoThe merchant's unique identifier
shopstringNoShopify myshopify.com domain
platformstringNoPlatform name (for non-Shopify lookups)
accountIdstringNoPlatform account identifier
domainstringNoPrimary storefront domain

Response

{
  "ucp": {
    "version": "2026-01-11",
    "services": { ... },
    "capabilities": [{
      "name": "com.bazarproof.seller_verification",
      "version": "2026-01-11",
      "extends": "dev.ucp.shopping.checkout"
    }]
  },
  "seller_verification": {
    "status": "verified",
    "level": "business_attested",
    "trust_score": 85,
      "badges": [...]
  }
}
POST/api/v1/platforms/link

Link Platform Account

Associate a platform account with a Bazar merchant.

Parameters

NameTypeRequiredDescription
AuthorizationheaderYesBearer token
x-bazar-platformheaderYesPlatform identifier (e.g., amazon, ebay)
x-platform-account-idheaderNoPlatform account ID (optional if in token)

Request Body

{
  "platform": "amazon",
  "externalAccountId": "seller-123",
  "merchantId": "merchant_abc123",
  "storeDomain": "seller-123.amazon.com",
  "primaryDomain": "example.com",
  "metadata": {
    "region": "NA"
  }
}

Response

{
  "id": "platform-account_123",
  "merchantId": "merchant_abc123",
  "platform": "amazon",
  "externalAccountId": "seller-123",
  "storeDomain": "seller-123.amazon.com",
  "primaryDomain": "example.com",
  "metadata": {
    "region": "NA"
  }
}
GET/ucp/v1/seller-verification/:merchantId

Get Seller Verification

Get detailed seller verification data in UCP format.

Parameters

NameTypeRequiredDescription
merchantIdstringYesThe merchant's unique identifier

Response

{
  "ucp": {
    "version": "2026-01-11",
    "capabilities": [{
      "name": "com.bazarproof.seller_verification",
      "version": "2026-01-11"
    }]
  },
  "seller_verification": {
    "status": "verified",
    "level": "business_attested",
    "trust_score": 85,
    "verified_at": "2026-01-10T15:30:00Z",
    "verification_methods": ["identity", "business_registration"],
    "badges": [{
      "level": "business_attested",
      "label": "Business Attested",
      "color": "#FFD700"
    }],
    "attestations": [{
      "chain": "hedera",
      "transaction_hash": "0.0.123456@1704912600.123456789",
      "explorer_url": "https://hashscan.io/mainnet/transaction/0.0.123456@1704912600.123456789"
    }],
    "proof_url": "https://api.bazarproof.com/ucp/v1/seller-verification/merchant_123/proof"
  }
}
GET/ucp/v1/seller-verification/:merchantId/proof

Get Verification Proof

Get cryptographic proof for external validation of verification.

Parameters

NameTypeRequiredDescription
merchantIdstringYesThe merchant's unique identifier

Response

{
  "ucp": { ... },
  "proof": {
    "verification_id": "ver_123",
    "merchant_id": "merchant_123",
    "leaf_data": {
      "verification_id": "ver_123",
      "merchant_id": "merchant_123",
      "level": "standard",
      "trust_score": 85
    },
    "hash_algorithm": "sha256",
    "merkle_proof": {
      "leaf_hash": "abc123...",
      "path": [...],
      "root_hash": "def456...",
      "version": 1
    },
    "blockchain": {
      "transaction_hash": "0.0.123456@1704912600.123456789",
      "chain_name": "Hedera",
      "explorer_url": "https://hashscan.io/mainnet/transaction/0.0.123456@1704912600.123456789"
    },
    "verification_steps": [
      "1. Reconstruct leaf hash: sha256(JSON.stringify(leaf_data, sorted keys))",
      "2. Verify Merkle path: follow path from leaf to root",
      "3. Check root match: computed root should match blockchain root",
      "4. Verify on blockchain: check transaction on explorer URL"
    ]
  }
}
POST/ucp/v1/seller-verification/:merchantId/validate

Validate Proof

Validate a proof submitted by an agent or platform.

Parameters

NameTypeRequiredDescription
merchantIdstringYesThe merchant's unique identifier

Request Body

{
  "leaf_data": {
    "verification_id": "ver_123",
    "merchant_id": "merchant_123",
    "level": "standard",
    "trust_score": 85
  },
  "merkle_proof": {
    "leaf_hash": "abc123...",
    "path": [...],
    "root_hash": "def456...",
    "version": 1
  }
}

Response

{
  "ucp": { ... },
  "validation": {
    "valid": true,
    "checks": {
      "leaf_hash_match": true,
      "merkle_proof_valid": true,
      "verification_exists": true
    },
    "verification": {
      "id": "ver_123",
      "merchant_id": "merchant_123",
      "status": "APPROVED",
      "trust_score": 85,
      "blockchain_anchored": true
    }
  }
}
GET/ucp/v1/schema/seller-verification

Get JSON Schema

Get the JSON Schema for the seller verification extension.

Response

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://bazarproof.com/ucp/schemas/seller_verification.json",
  "name": "com.bazarproof.seller_verification",
  "version": "2026-01-11",
  "title": "Seller Verification",
  "type": "object",
  "properties": {
    "seller_verification": { ... }
  },
  "$defs": { ... }
}

Error Codes

The API uses standard HTTP status codes and returns error details in JSON format.

CodeStatusDescription
200OKRequest successful
400Bad RequestMissing required parameter or invalid request body
404Not FoundMerchant or verification not found
429Too Many RequestsRate limit exceeded
500Server ErrorInternal server error

Need more help?

Check out our UCP integration guide or contact us for support.