Skip to main content
The Appeeky API uses a credit-based rate limiting system. Each plan has a monthly credit allowance. Every API call deducts a set number of credits depending on the endpoint’s computational complexity.

Plans

PlanMonthly CreditsPriceBest For
Free100FreeTesting and proof of concept
Starter10,000$19/moSmall applications and research
Pro50,000$49/moProduction services
Enterprise200,000$99/moHigh-volume commercial use
All new accounts start on the Free plan with 100 credits. Create your account to get started.
Need more credits? Contact us at support@appeeky.com to upgrade your plan or discuss custom pricing for higher volumes.

Credit Costs Per Endpoint

Credits are charged based on the computational cost of each endpoint. Heavier endpoints that aggregate multiple data sources cost more.

Free (0 credits)

EndpointCreditsDescription
GET /v1/health0Service health check — always free

Light (1 credit)

EndpointCreditsDescription
GET /v1/search1Search apps by keyword or App ID
POST /v1/keywords/track1Add keyword to the scraping pipeline
GET /v1/keywords/suggestions1Apple Search autocomplete suggestions
GET /v1/categories1List all App Store categories

Standard (2 credits)

EndpointCreditsDescription
GET /v1/categories/:id/top2Top charts for a category
GET /v1/apps/:id2Full app metadata (iTunes Lookup)
GET /v1/apps/:id/reviews2User reviews (Apple RSS feed)
GET /v1/apps/:id/screenshots2App screenshots by device type
GET /v1/keywords/ranks2Apps ranking for a specific keyword
GET /v1/keywords/metrics2Search volume and difficulty scores
GET /v1/apps/:id/keywords/trends2Historical rank trend for a keyword
GET /v1/new-releases2Recently released apps
GET /v1/discover2Trending and noteworthy apps
GET /v1/discover/new-number-12Apps that just reached #1

Heavy (3 credits)

EndpointCreditsDescription
GET /v1/apps/:id/keywords3All keyword rankings for an app
GET /v1/keywords/compare3Competitor keyword overlap analysis
GET /v1/apps/:id/country-rankings3Chart positions across countries
GET /v1/apps/:id/screenshots/competitors3Competitor screenshot comparison
GET /v1/categories/:id/top/screenshots3Screenshots for top apps in a category

Premium (5 credits)

EndpointCreditsDescription
GET /v1/apps/:id/intelligence5Full intelligence report: revenue, downloads, IAPs, similar apps, sentiment
Credits are only deducted on successful responses (2xx status codes). Failed requests (4xx, 5xx) do not consume credits.

Response Headers

Every authenticated response includes rate limit headers so you can track consumption programmatically:
HeaderDescriptionExample
X-RateLimit-LimitTotal monthly credits for your plan100
X-RateLimit-RemainingCredits remaining this month95
X-RateLimit-ResetUnix timestamp when credits reset (first of next month)1743465600
X-Credit-CostCredits consumed by this request2
X-PlanYour current plan identifierfree
Example response headers:
HTTP/2 200
Content-Type: application/json
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 93
X-RateLimit-Reset: 1743465600
X-Credit-Cost: 2
X-Plan: free
Use X-RateLimit-Remaining in your code to implement graceful throttling before hitting the limit.

Check Your Usage

Use the usage endpoint to see a detailed breakdown of your current month’s consumption:
curl "https://api.appeeky.com/v1/auth/usage" \
  -H "X-API-Key: YOUR_API_KEY"
Response (200 OK):
{
  "data": {
    "plan": "free",
    "monthlyCredits": 100,
    "used": 47,
    "remaining": 53,
    "resetDate": "2026-03-01T00:00:00.000Z",
    "usageByEndpoint": [
      { "endpoint": "GET /apps/:id", "totalCredits": 40, "requestCount": 20 },
      { "endpoint": "GET /apps/:id/intelligence", "totalCredits": 50, "requestCount": 10 },
      { "endpoint": "GET /keywords/ranks", "totalCredits": 20, "requestCount": 10 },
      { "endpoint": "GET /search", "totalCredits": 12, "requestCount": 12 },
      { "endpoint": "GET /apps/:id/keywords", "totalCredits": 3, "requestCount": 1 },
      { "endpoint": "POST /keywords/track", "totalCredits": 2, "requestCount": 2 }
    ]
  }
}
FieldTypeDescription
planstringYour current plan (free, starter, pro, enterprise)
monthlyCreditsnumberTotal credits for the billing period
usednumberCredits consumed so far this month
remainingnumberCredits left until reset
resetDatestringISO 8601 date when credits reset
usageByEndpointarrayBreakdown by endpoint with credit totals and request counts

When the Limit Is Reached

When your monthly credits are exhausted, all credit-consuming endpoints return 429 Too Many Requests:
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Monthly credit limit reached (100/100). Upgrade plan for more credits."
  }
}
The response still includes rate limit headers so you can check the reset time:
HTTP/2 429
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1743465600
X-Plan: free
The /v1/health endpoint (0 credits) always works, even when your credit limit is exhausted. Use it to verify the service is up before investigating 429 errors.

Monthly Reset

Credits reset automatically on the first day of each calendar month at 00:00 UTC. Unused credits do not carry over to the next month.
EventTiming
Credit reset1st of each month, 00:00 UTC
Carry-overNo — unused credits expire
Billing cycleCalendar month
Plan changesTake effect immediately; new credit allowance applies
Check your X-RateLimit-Reset response header or the resetDate field from /v1/auth/usage to see the exact reset timestamp for your current billing period.