Logo

API Documentation

API Key Endpoints

Version 1.0 - Last Updated: 2025-01-20

Complete API reference for Ultimate Proxy.

Authentication

All API endpoints require API key authentication via one of the following methods:

# Header method (recommended)
X-API-Key: up_k_xxxxxxxxxxxx

# Or Bearer token method
Authorization: Bearer up_k_xxxxxxxxxxxx

Obtaining an API Key

API keys can be created in your Settings → API Keys page. Each key can have specific scopes and optional IP whitelisting.

Available Scopes

ScopeDescription
dashboard:readView overview
workers:readView workers list and details
workers:writeAssign workers to profiles
pools:readView pools list and details
pools:writeCreate, update, delete pools
profiles:readView profiles list and details
profiles:writeCreate, update, delete profiles

Rate Limits

Rate limits and resource limits vary based on your account tier. Limits are applied per user (shared across all API keys).

Feature VIP Non-VIP
API Rate Limit60 requests/minute10 requests/minute
API KeysUp to 51
Pools per AlgorithmUnlimited5
Profiles per AlgorithmUnlimited5

Response Headers

  • X-RateLimit-Limit - Maximum requests allowed
  • X-RateLimit-Remaining - Requests remaining in window
  • X-RateLimit-Reset - Unix timestamp when limit resets

VIP Status

Your VIP status is displayed in the dashboard sidebar. Contact an administrator to upgrade your account to VIP.

Overview

GET/v1/overviewOverview statistics and performance metrics

Workers

GET/v1/workersPaginated list of workers
GET/v1/workers/hashrateAggregated hashrate time series for analytics charts
GET/v1/workers/{id}Single worker details
GET/v1/workers/{id}/hashrateHashrate history for a specific worker with aggregate stats
POST/v1/workers/bulk-assignAssign multiple workers to a profile

Pools

GET/v1/poolsPaginated list of pools
GET/v1/pools/{id}Single pool details (same structure as list item)
POST/v1/poolsCreate a new pool. Connection is tested before creation.
PUT/v1/pools/{id}Update a pool. Connection re-tested if host/port/credentials change.
DELETE/v1/pools/{id}Delete a pool. Fails if pool is used in any profile.

Profiles

GET/v1/profilesPaginated list of profiles
GET/v1/profiles/defaultGet the default profile for an algorithm
POST/v1/profilesCreate a new profile
PUT/v1/profiles/{id}Update a profile
DELETE/v1/profiles/{id}Delete a profile. Cannot delete the default profile.
POST/v1/profiles/{id}/defaultSet a profile as the default for its algorithm

Error Responses

All errors return JSON with an error field:

{
  "error": "Error message here"
}

HTTP Status Codes

StatusMeaning
400Bad request (validation error, invalid parameters)
401Invalid/missing API key
403API key lacks required scope, IP not whitelisted, or access denied
404Resource not found
409Conflict (e.g., deleting default profile, pool in use)
429Rate limit exceeded (check Retry-After header)
500Internal server error

Common Field Types

FieldTypeDescription
_idstringMongoDB ObjectID (24 hex chars)
timestampint64Unix timestamp in seconds
hashrateint64/float64Hashrate in H/s
*_atstringISO 8601 datetime or null