Skip to main content

Documentation Index

Fetch the complete documentation index at: https://embed.usesticker.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Sticker Partner API allows you to programmatically provision organizations, authenticate users, and manage the embedded procurement experience.

Base URL

https://api.usesticker.com/v1
All API endpoints are versioned under /v1.

Authentication

All API requests require authentication via API key.

Organization Setup

Uses Authorization: Bearer header:
Authorization: Bearer sk_live_your_api_key

Partner Handshake

Uses X-API-Key header:
X-API-Key: sk_live_your_api_key
Contact us to receive your API credentials: suyash@usesticker.com

Available Endpoints

Organization Setup

POST /v1/organizations/setup
Provision organizations, users, and shipping locations

Partner Handshake

POST /v1/partner/handshake
Authenticate users and receive session tokens

Request Format

All requests must:
  • Use Content-Type: application/json
  • Send JSON-encoded request bodies
  • Include proper authentication headers
curl -X POST https://api.usesticker.com/v1/organizations/setup \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ ... }'

Response Format

All responses are JSON with the following structure:

Success Response

{
  "success": true,
  "data": {
    // Response data here
  }
}

Error Response

{
  "error": "Error Type",
  "message": "Human-readable error message",
  "code": "ERROR_CODE",
  "details": [
    // Validation errors or additional info
  ]
}

HTTP Status Codes

StatusDescription
200Success
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
403Forbidden - Insufficient permissions
404Not Found - Resource doesn’t exist
409Conflict - Resource already exists
429Too Many Requests - Rate limited
500Server Error - Something went wrong

Rate Limits

EndpointRate Limit
/v1/organizations/setup100 requests/minute
/v1/partner/handshake300 requests/minute
When rate limited, the response includes:
{
  "error": "Rate limit exceeded",
  "code": "RATE_LIMIT_EXCEEDED",
  "retry_after": 60
}

Error Handling

We recommend implementing retry logic with exponential backoff:
async function apiCall(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (error.status === 429 && i < maxRetries - 1) {
        // Rate limited - wait and retry
        const delay = Math.pow(2, i) * 1000;
        await new Promise(r => setTimeout(r, delay));
        continue;
      }
      if (error.status >= 500 && i < maxRetries - 1) {
        // Server error - wait and retry
        const delay = Math.pow(2, i) * 1000;
        await new Promise(r => setTimeout(r, delay));
        continue;
      }
      throw error;
    }
  }
}

Environments

EnvironmentBase URLAPI Keys
Productionhttps://api.usesticker.com/v1sk_live_*
Staging/Sandboxhttps://api.staging.usesticker.com/v1sk_test_*
Use sandbox credentials for development and testing. Never use production API keys in test environments.

Need Help?

Email Support

Get help from our integration team

Schedule a Call

Book time with our engineers