Skip to main content

Pricing & Limits

Understand how Knowhere bills jobs and enforces usage limits.

Usage Pricing

Simple Pricing

Knowhere currently charges $0.0015 per billable page, or $1.50 per 1,000 pages.

Knowhere stores balance internally in micro-dollars, where 1 credit = $1.00.

Example Costs

  • 1 page → $0.0015
  • 100 pages → $0.15
  • 500 pages → $0.75
  • 10,000 pages → $15.00

How Billable Pages Are Counted

File TypeBilling Rule
PDF (.pdf)Physical page count
PowerPoint (.pptx)Slide count
Word / Text / Markdown (.docx, .txt, .md)ceil((Chinese chars + English words + numbers) / 500)
Excel (.xlsx)ceil(total rows across all sheets / 50)
Images (.jpg, .jpeg, .png)1 page per image

When Charges Happen

Credits are deducted after the worker downloads the source file and estimates billable pages, but before parsing starts.

If a charged job later fails during processing, Knowhere automatically refunds the charged amount. If billing fails, parsing does not start.

Rate Limits

Knowhere uses separate limits for general API traffic and job creation.

SDKs Are Preferred

The Python and Node.js SDKs are the recommended integration path. They handle polling, retries, uploads, and download orchestration for you.

System Limits For Authenticated Endpoints

Endpoint PatternLimit
GET /v1/jobs/*200 requests/minute per user
All other authenticated endpoints1000 requests/minute per user

Job Creation Limits (POST /v1/jobs)

TierLifetime Successful PaymentsJob Creations / MinuteConcurrent Active JobsJob Creations / Day
Free< $102220
Tier 1>= $10155Unlimited
Tier 2>= $502010Unlimited
Tier 3>= $1005020Unlimited
Tier 4>= $50010050Unlimited
Tier 5>= $2,000UnlimitedUnlimitedUnlimited
note

An "active" job is any job still in a non-terminal state, such as waiting-file, pending, running, or converting.

Rate Limit Headers

When a request is rejected with 429 Too Many Requests, the response includes rate limit headers:

HTTP/1.1 429 Too Many Requests
Retry-After: 30
X-RateLimit-Limit: 2
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1742457600
X-RateLimit-Period: minute
HeaderDescription
Retry-AfterSeconds to wait before retrying
X-RateLimit-LimitLimit for the triggered rule
X-RateLimit-RemainingRemaining requests in the current window
X-RateLimit-ResetUnix timestamp when the current window resets
X-RateLimit-PeriodWindow type, such as minute, day, or concurrent

Successful responses do not currently include these headers.

For job-creation rejections, the period in the error details can be minute, day, or concurrent depending on which rule was exceeded.

Handling Rate Limits

When you exceed a limit, you'll receive a 429 Too Many Requests response:

{
"success": false,
"error": {
"code": "RESOURCE_EXHAUSTED",
"message": "Rate limit exceeded. Please retry after 30 seconds.",
"request_id": "req_abc123",
"details": {
"reason": "RATE_LIMIT_EXCEEDED",
"retry_after": 30,
"limit": 2,
"period": "minute"
}
}
}

Best practice: respect Retry-After, and use backoff when polling job status.

import time
import requests

response = requests.get(url, headers=headers)

if response.status_code == 429:
retry_after = int(response.headers.get("Retry-After", 30))
time.sleep(retry_after)
response = requests.get(url, headers=headers) # Retry

File And Format Limits

SettingCurrent Value
Max source file size100 MB
Supported upload types.docx, .pdf, .txt, .xlsx, .pptx, .jpg, .jpeg, .png, .md
Need higher limits?

Contact team@knowhereto.ai for enterprise pricing with custom limits.

Usage Monitoring

View your usage in the Knowhere Dashboard:

  • Current credits balance
  • Usage history and trends
  • Billing history
  • Invoice downloads

Billing FAQ

When am I charged?

The worker charges the job before parsing starts, immediately after it estimates the page count.

What happens if a job fails after billing?

If Knowhere already charged the job and processing later fails, the charged amount is refunded automatically.

Do credits expire?

Credits are currently valid for 365 days.

Can I get a refund?

Automatic job-level refunds are handled by the API when a charged job later fails. For payment or account-related refund requests, contact team@knowhereto.ai.

How do I buy more credits?

  1. Sign in to the Knowhere Dashboard
  2. Go to Usage (Usage & Billing)
  3. Click your Credits badge in the top-right
  4. In the purchase dialog, choose an available credits package or enter a custom amount
  5. Complete checkout in Stripe
Credits expire

Credits currently expire after 365 days.

What payment methods are accepted?

We accept all major credit cards through Stripe:

  • Visa
  • Mastercard
  • American Express
  • And more

Enterprise

Need custom limits, SLAs, or dedicated support?

Contact team@knowhereto.ai to discuss enterprise requirements.