Company logoTrust Center Documentation

API v1 Reference

Complete REST API reference for Trust Center Admin API v1 with interactive examples and comprehensive endpoint documentation

API v1 Reference

The Trust Center Admin API v1 provides complete programmatic access to manage customer accounts, documents, certifications, access requests, and white-label trust center configurations. Built with REST principles and designed for enterprise-scale integrations.

Quick Start

Authentication

The Admin Center API supports two authentication methods depending on your use case:

JWT Bearer Tokens (Interactive Use)

For user-facing applications and interactive sessions, obtain JWT tokens through login:

curl -X POST "https://app.orbiqhq.com/api/v1/login" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@example.com",
    "password": "your-password"
  }'

API Keys (Server-to-Server)

For production integrations, automated workflows, and long-running processes, create API keys:

curl -X POST "https://app.orbiqhq.com/api/v1/integrations/api-keys" \
  -H "Authorization: Bearer $ADMIN_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Integration",
    "description": "API key for automated compliance workflows",
    "role": "account_manager",
    "expires_in_days": 365
  }'

API Key Benefits:

  • Long-lasting authentication (up to 365 days)
  • Role-based permissions (admin, account_manager, viewer)
  • Perfect for server-to-server integrations
  • One-time key display for enhanced security

Both authentication methods use the same Authorization header format:

Authorization: Bearer sk_live_abcd1234567890

Base URL

All API endpoints are relative to the admin center domain:

https://app.orbiqhq.com/api/v1/

Your First Request

Test your authentication by listing customer accounts:

curl -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  https://app.orbiqhq.com/api/v1/accounts

Core Resources

Accounts Management

Manage customer organizations and their compliance journey:

Document Management

Control compliance documents and access permissions:

User Management

Handle admin user invitations, roles, and preferences:

Certifications

Manage compliance certificates with validity tracking:

Workflow Automation

Access Request Management

Handle trust center visitor requests and approval workflows:

Analytics Tracking

Monitor user interactions and system usage:

Knowledge Base Management

Manage Q&A content for customer self-service:

Configuration & Branding

Brand Management

Configure white-label themes and trust center appearance:

API Keys Management

Generate programmatic access credentials:

Authentication Endpoints

Response Format

All API responses follow a consistent structure:

Success Response (Single Resource)

{
  "success": true,
  "data": {
    "account": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Burger Queen",
      "review_status": "completed"
    }
  }
}

Collection Response

{
  "accounts": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Burger Queen",
      "review_status": "completed"
    }
  ]
}

Error Response

{
  "error": {
    "type": "validation_error",
    "message": "The email address provided is not valid",
    "param": "email"
  }
}

HTTP Status Codes

CodeMeaningDescription
200OKRequest successful
201CreatedResource created successfully
204No ContentSuccessful deletion or update with no response body
400Bad RequestInvalid request parameters
401UnauthorizedAuthentication required
403ForbiddenInsufficient permissions
404Not FoundResource not found
409ConflictResource conflict (e.g., duplicate email)
422Unprocessable EntityValid syntax but semantic errors
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer error

Pagination

List endpoints support cursor-based pagination:

# Get first page
curl -H "Authorization: Bearer $TOKEN" \
  "https://app.orbiqhq.com/api/v1/accounts?limit=50"

# Get next page using cursor
curl -H "Authorization: Bearer $TOKEN" \
  "https://app.orbiqhq.com/api/v1/accounts?limit=50&starting_after=acc_123"

Query Parameters:

  • limit - Number of items to return (max 100, default 20)
  • starting_after - Cursor for pagination
  • ending_before - Reverse pagination cursor

Rate Limiting

  • Limit: 1000 requests per minute per authentication token
  • Headers: Rate limit info included in response headers
  • 429 Response: Includes Retry-After header with seconds to wait
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200

Common Integration Patterns

Error Handling

async function createAccount(accountData) {
  try {
    const response = await fetch("https://app.orbiqhq.com/api/v1/accounts", {
      method: "POST",
      headers: {
        Authorization: "Bearer " + accessToken,
        "Content-Type": "application/json",
      },
      body: JSON.stringify(accountData),
    });

    if (!response.ok) {
      const error = await response.json();
      throw new Error(`API Error: ${error.error.message}`);
    }

    return await response.json();
  } catch (error) {
    console.error("Failed to create account:", error.message);
    throw error;
  }
}

Document Upload Workflow

# 1. Create document metadata
RESPONSE=$(curl -X POST "https://app.orbiqhq.com/api/v1/documents" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Privacy Policy",
    "access_level": "public",
    "featured": true
  }')

DOCUMENT_ID=$(echo $RESPONSE | jq -r '.data.document.id')

# 2. Upload file
curl -X PUT "https://app.orbiqhq.com/api/v1/documents/$DOCUMENT_ID/file" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/pdf" \
  --data-binary @privacy-policy.pdf

Access Request Approval Automation

import requests

def approve_pending_requests():
    # Get all pending requests
    response = requests.get(
        "https://app.orbiqhq.com/api/v1/access-requests",
        params={"review_status": "to_review"},
        headers={"Authorization": f"Bearer {token}"}
    )

    pending_requests = response.json()["contacts"]

    # Auto-approve requests from verified domains
    for request in pending_requests:
        if request["email"].endswith("@trustedcompany.com"):
            requests.patch(
                f"https://app.orbiqhq.com/api/v1/access-requests/{request['id']}",
                json={"review_status": "approved"},
                headers={"Authorization": f"Bearer {token}"}
            )
            print(f"Auto-approved: {request['email']}")

White-Label Configuration

# Update trust center branding
curl -X PATCH "https://app.orbiqhq.com/api/v1/brand" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Acme Trust Center",
    "primary_color": "#0066cc",
    "deployment_domains": "trust.acme.com",
    "footer_text": "© 2025 Acme. All rights reserved."
  }'

# Upload custom logo
curl -X PUT "https://app.orbiqhq.com/api/v1/brand/logo" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@/path/to/company-logo.png"

Development Tools

Testing Your Integration

Use these endpoints to verify your setup:

# Health check
curl -H "Authorization: Bearer $TOKEN" \
  https://app.orbiqhq.com/api/v1/accounts

# Test document upload
curl -X POST "https://app.orbiqhq.com/api/v1/documents" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title": "Test Document", "access_level": "public"}'

Webhook Integration

Set up webhooks to receive real-time notifications:

  • Account status changes
  • Document uploads and approvals
  • Access request submissions
  • Certification expiry alerts

Bulk Operations

For large-scale operations, use filtering and pagination:

# Process all accounts needing review
curl -H "Authorization: Bearer $TOKEN" \
  "https://app.orbiqhq.com/api/v1/accounts?status=in_progress&limit=100"

# Bulk approve access requests
curl -H "Authorization: Bearer $TOKEN" \
  "https://app.orbiqhq.com/api/v1/access-requests?review_status=to_review&account_id=acc_123"

Next Steps

Ready to dive deeper? Browse the complete endpoint documentation above or start with account management to get familiar with the API patterns.

How is this guide?