For Developers

Build on SyncAuction

Full REST API access for custom integrations. Manage products, trigger syncs, handle orders, and more programmatically.

# Get products from your sync
curl -X GET "https://api.syncauction.com/v1/products" \
  -H "Authorization: Bearer YOUR_API_KEY"
# Response
{
  "data": [
    {
      "id": "prod_abc123",
      "title": "1921 Morgan Dollar MS65",
      "price": 430.50,
      "ha_lot": "123456"
    }
  ]
}

API Overview

Everything you need to integrate with SyncAuction

Authentication

API key authentication with optional OAuth 2.0 for advanced integrations.

RESTful Design

Standard REST conventions with JSON request/response format.

Webhooks

Real-time event notifications for syncs, orders, and inventory changes.

Available Endpoints

Core API resources

Products

GET /v1/products
GET /v1/products/:id
PUT /v1/products/:id

Orders

GET /v1/orders
GET /v1/orders/:id
POST /v1/orders/:id/retry

Sync

GET /v1/sync/status
POST /v1/sync/trigger
GET /v1/sync/history

Stores

GET /v1/stores
GET /v1/stores/:id
PUT /v1/stores/:id

Rate Limits

API rate limits by plan

Starter

100
requests/minute

Professional

500
requests/minute

Enterprise

Custom
Contact sales

Webhook Events

Subscribe to real-time events

Event Description
sync.started A sync job has started
sync.completed A sync job has completed
sync.failed A sync job has failed
product.created A new product was synced
product.updated A product was updated
product.deleted A product was removed
order.received A new order was received
order.forwarded An order was forwarded to HA.com

Authentication Examples

Get started with code samples in your language

cURL
curl -X GET "https://api.syncauction.com/v1/products" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json"
PHP
$client = new GuzzleHttp\Client();
$response = $client->get('https://api.syncauction.com/v1/products', [
    'headers' => [
        'Authorization' => 'Bearer ' . $apiKey,
        'Accept' => 'application/json',
    ]
]);
$products = json_decode($response->getBody(), true);
Python
import requests

headers = {
    'Authorization': f'Bearer {api_key}',
    'Accept': 'application/json'
}

response = requests.get(
    'https://api.syncauction.com/v1/products',
    headers=headers
)
products = response.json()
JavaScript
const response = await fetch(
  'https://api.syncauction.com/v1/products',
  {
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Accept': 'application/json'
    }
  }
);
const products = await response.json();

Webhook Payload Examples

Sample payloads for each event type

order.received

{
  "event": "order.received",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "order_id": "ord_abc123",
    "store_id": "store_xyz",
    "store_name": "My WooCommerce Store",
    "external_order_id": "WC-1234",
    "total": 430.50,
    "currency": "USD",
    "items": [
      {
        "product_id": "prod_def456",
        "sku": "HA-123456",
        "title": "1921 Morgan Dollar MS65",
        "quantity": 1,
        "price": 430.50
      }
    ],
    "customer": {
      "name": "John Smith",
      "email": "john@example.com"
    }
  }
}

sync.completed

{
  "event": "sync.completed",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "sync_id": "sync_ghi789",
    "type": "delta",
    "duration_seconds": 45,
    "stats": {
      "products_added": 12,
      "products_updated": 87,
      "products_removed": 3,
      "errors": 0
    },
    "stores_updated": [
      "store_xyz",
      "store_abc"
    ]
  }
}

product.created

{
  "event": "product.created",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": {
    "product_id": "prod_jkl012",
    "sku": "HA-789012",
    "ha_lot": "789012",
    "title": "1893-S Morgan Dollar VF35",
    "price": 1250.00,
    "cost": 1087.00,
    "margin": 163.00,
    "metal": "Silver",
    "grade": "VF35",
    "service": "PCGS",
    "images": [
      "https://cdn.syncauction.com/prod_jkl012/obverse.jpg",
      "https://cdn.syncauction.com/prod_jkl012/reverse.jpg"
    ]
  }
}

order.forwarded

{
  "event": "order.forwarded",
  "timestamp": "2024-01-15T10:30:05Z",
  "data": {
    "order_id": "ord_abc123",
    "ha_order_id": "HA-ORD-567890",
    "status": "confirmed",
    "forwarded_at": "2024-01-15T10:30:05Z",
    "estimated_ship_date": "2024-01-17",
    "tracking": null
  }
}

Additional Endpoints

More API resources for advanced integrations

Pricing Rules

GET /v1/pricing-rules
POST /v1/pricing-rules
PUT /v1/pricing-rules/:id
DELETE /v1/pricing-rules/:id

Webhooks

GET /v1/webhooks
POST /v1/webhooks
PUT /v1/webhooks/:id
POST /v1/webhooks/:id/test

Analytics

GET /v1/analytics/sync
GET /v1/analytics/orders
GET /v1/analytics/revenue
GET /v1/analytics/products

AI Content

GET /v1/ai/prompts
POST /v1/ai/generate/:product_id
POST /v1/ai/regenerate-bulk
GET /v1/ai/usage

Frequently Asked Questions

How do I authenticate with the SyncAuction API?
Use Bearer token authentication by including your API key in the Authorization header: Authorization: Bearer YOUR_API_KEY. API keys are available in your SyncAuction dashboard under Settings > API. Keys are scoped to your account and have read/write permissions based on your plan.
What are the API rate limits?
Rate limits depend on your plan: Starter allows 100 requests/minute, Professional allows 500 requests/minute, and Enterprise has custom limits. Rate limit headers are included in every response: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset.
Does the API support webhooks?
Yes! SyncAuction provides webhooks for sync events (started, completed, failed), product events (created, updated, deleted), and order events (received, forwarded, failed). Configure webhook endpoints in your dashboard or via the /v1/webhooks API. All webhooks include HMAC signatures for verification.
What programming languages are supported?
The SyncAuction API is REST-based with JSON request/response format, compatible with any language that can make HTTP requests. We provide official code examples for cURL, PHP (Guzzle), Python (requests), and JavaScript (fetch). Community SDKs are available for Go and Ruby.
Is there a sandbox environment for testing?
Yes, Professional and Enterprise plans include access to a sandbox environment at sandbox-api.syncauction.com for testing integrations without affecting production data. Sandbox data resets daily and includes test product data.

Related Features

Ready to Build?

Get API access with Professional or Enterprise plans.

Get API Access