CatProxies

Reseller API

Buy proxies, manage orders, and check your account - all over REST. Keys are per-reseller and rate limited at 1000 req/hour.

Base URLhttps://catproxies.com/api/v1/public

Authentication

API Key Format

API keys are prefixed with cp_ followed by 64 hexadecimal characters.

cp_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1f2

Using Your API Key

Include your API key in the Authorization header using the Bearer scheme:

curl -X GET https://catproxies.com/api/v1/public/account \
  -H "Authorization: Bearer cp_your_api_key_here"

Rate Limits

1000 requests per hour per API key, reset at the top of each hour.

Mobile Targeting endpoints have a separate shared bucket: 60 requests per 10 minutes across all 4 mobile targeting sub-endpoints per API key. Cache responses where possible.

Check your current rate limit usage via the /account endpoint:

{
  "rateLimits": {
    "requestsPerHour": 1000,
    "requestsUsed": 47,
    "requestsRemaining": 953,
    "resetAt": "2025-11-29T21:00:00.000Z"
  }
}
Account
Store & Products
Orders
Targeting

Rotating Mobile - targeting endpoints

Need all countries, regions, cities, and ISPs at once? Download the full offline snapshot instead of hitting these endpoints repeatedly.

Download Snapshot

ISP Proxies - Quick Guide

ISP proxies use per-IP pricing. The resellerPrice in /store is the price per single IP. Your total = resellerPrice × quantity.

Complete ISP workflow

# 1. List ISP packages - note resellerPrice (per IP), minQty, maxQty, locations[]
GET /api/v1/public/store?proxyType=Isp

# 2. Buy 5 IPs in the US (countryId from locations[].id)
POST /api/v1/public/order
{ "packageId": "...", "ispData": { "quantity": 5, "countryId": 1 } }
# Charged: resellerPrice × 5

# 3. Get credentials
GET /api/v1/public/order/{orderId}

# 4. Check extend cost (resellerPrice × 5 for another 30 days)
GET /api/v1/public/order/{orderId}/extendOptions

# 5. Extend - packageId is optional for ISP
POST /api/v1/public/order/{orderId}/extend
{}
# Charged: resellerPrice × 5 again
FieldNotes
ispData.quantityDefaults to 1 if omitted. Must be ≥ minQty and ≤ maxQty from the store product.
ispData.countryIdDefaults to the first location if omitted. Use locations[].id from the store product.
Extend packageIdOptional for ISP - the API resolves the package from the order automatically. Pass {} as the body.
extendType"days" for ISP (adds one full period). "bandwidth" for Residential/Mobile.
Extend costresellerPrice × order.package_ips (same quantity as the original purchase).

Errors

Status CodeDescription
200Success - Request completed successfully
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
403Forbidden - Not a reseller account or access denied
404Not Found - Resource doesn't exist
429Too Many Requests - Rate limit exceeded
500Internal Server Error - Something went wrong

Error Response Format

{
  "type": "error",
  "message": "Insufficient balance. Required: $2.50, Available: $1.00",
  "status": 400
}

Ready to Get Started?

Create your first API key and start integrating CatProxies into your application today.