Skip to main content
Interactive API Reference: Explore all endpoints with the interactive API playground in the navigation. This page covers API-wide conventions and standards.

Base URL

https://api.anycheck.id
All API requests should be made to this base URL. For authentication details, see Authentication.

Response Format

Success Response

{
  "success": true,
  "data": {
    ...
  }
}

Error Response

{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Human readable error message"
  }
}

Error Codes

Codes:
  • INVALID_CREDENTIALS: Email or password incorrect
  • TOKEN_EXPIRED: JWT token has expired
  • INVALID_API_KEY: API key is invalid
Example:
{
  "success": false,
  "error": {
    "code": "INVALID_CREDENTIALS",
    "message": "Email or password is incorrect"
  }
}
Codes:
  • INVALID_INPUT: Invalid request parameters
  • MISSING_FIELD: Required field missing
  • INSUFFICIENT_CREDITS: Not enough credits
Example:
{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_CREDITS",
    "message": "Not enough credits to perform verification"
  }
}
Codes:
  • NOT_FOUND: Resource not found
  • VERIFICATION_NOT_FOUND: Verification ID invalid
Example:
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found"
  }
}
Codes:
  • SERVICE_UNAVAILABLE: Verification service temporarily unavailable
  • PROVIDER_ERROR: External provider error
Example:
{
  "success": false,
  "error": {
    "code": "SERVICE_UNAVAILABLE",
    "message": "Verification service is temporarily unavailable"
  }
}

Rate Limiting

Requests are rate limited per organization and group. Rate limit information is included in response headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1642176000

Pagination

List endpoints support pagination: Parameters:
  • page: Page number (starts at 1)
  • limit: Items per page (default 10, max 100)
Example:
GET /verifications?page=1&limit=20
Response:
{
  "success": true,
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 156,
    "total_pages": 8
  }
}

Filtering

Many endpoints support filtering: Verifications:
  • result_id: Filter by result ID
  • status: Filter by status
  • service_id: Filter by service
  • date_from, date_to: Date range
Example:
GET /verifications?status=COMPLETED&date_from=2024-01-01

Webhooks

Configure webhooks for async notifications:
{
  "webhook_url": "https://your-app.com/webhook",
  "webhook_metadata": {
    "customer_id": "123"
  }
}
See Webhooks for details.

Best Practices

Use Folders

Organize verifications by project or client

Implement Webhooks

Use webhooks instead of polling for efficiency

Handle Retries

Implement retry logic for failed verifications

Monitor Credits

Track credit usage to avoid interruptions

Multi-Tenant Architecture

AnyCheck uses a hierarchical tenant model:
Organization
  └── Groups
      ├── Users
      ├── API Keys
      ├── Services
      └── Folders
          └── Verifications

Support