> ## Documentation Index
> Fetch the complete documentation index at: https://docs.farelint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Credits & pricing

> Monthly plans, airline search rates and credit accounting.

Farelint offers three monthly plans. There is no public Free tier and no automatic overage.

## Monthly plans

Prices are in USD per month.

| Plan | USD / month | Credits / month |
| - | -: | -: |
| Starter | \$29 | 10,000 |
| Growth | \$99 | 50,000 |
| Scale | \$249 | 150,000 |

Running collection limits are **5** for Starter, **15** for Growth and **30** for Scale. See [concurrent requests](#concurrent-requests) for queueing and source capacity.

New accounts have no active plan and zero credits until activation. [Create a developer account](https://farelint.com/account), then [contact Farelint to activate a plan](mailto:miguel@miguellabs.xyz). Paid checkout is being connected; signing up does not start a paid subscription. Existing developer preview accounts retain their test access and balances until Stripe is connected. This is legacy test access, not a public Free plan.

## Credits per airline

Search prices vary by airline. `GET /v1/airlines` discloses `async_credits`, `sync_credits`, `cost_version` and `pricing_basis`. Explicit `/v1/searches/async` and the original `/v1/searches` charge the source weight only. `/v1/searches/sync` adds **2 credits** to that weight.

These search rates match Farelint's published pricing API on **3 November 2026**:

| Airline | Async credits / search | Sync credits / search |
| - | -: | -: |
| Ryanair | 2 | 4 |
| easyJet | 7 | 9 |
| AEGEAN | 5 | 7 |
| Emirates | 10 | 12 |
| Qatar Airways | 9 | 11 |

The [website pricing table](https://farelint.com/#airline-credits) also shows current rates. The source rate covers one search context: one airline, airport pair, exact departure and optional return dates, passenger mix, cabin and market. It can return several options; there is no per-flight charge within that result. Separate date combinations or airline searches are separate requests. Details operations use their own disclosed rate when enabled.

Rates reflect current **provisional pilot calibration**. Ryanair, easyJet, Emirates and Qatar use `resource-pilot-20261030-v2`; AEGEAN uses `aegean-nonstop-20261102-v1` for its bounded one-way nonstop shortlist. Supported request scope and enabled operation flags remain authoritative; a listed price does not enable collection or establish route availability. See [airline coverage](https://docs.farelint.com/airlines.md).

## Async, sync and MCP

| Request or action | Credit cost |
| - | - |
| `POST /v1/searches` or `POST /v1/searches/async` | Airline async rate |
| `POST /v1/searches/sync` | Airline async rate + 2 credits |
| MCP `farelint_search_flights` | Airline async rate |
| Job polling, usage reads and request history | No additional credits |
| Completion webhooks and delivery retries | No additional credits |

For example, a completed Ryanair async search uses **2 credits**, or **4 credits** through sync. A completed Emirates async search uses **10 credits**, or **12 credits** through sync. See the [MCP guide](https://docs.farelint.com/integrations.md) for agent setup.

Admission freezes `credit_quote.source_credits`, `sync_surcharge`, `total_credits`, delivery mode, basis and `cost_version`. `max_credits` caps the total, including the sync surcharge. A later price change never reprices an existing job.

## Reservations and charges

Submitting a job reserves its full quoted cost before it enters the queue. Reservation reduces available credits while the job is queued or running; it is settled only when the job reaches a terminal state.

Complete results charge once; partials and failures release the **whole** reservation, including the sync fee. Confirmed complete `no_flights` is charged. Retries add no customer charge; their compute is retained separately. Replaying an idempotency key and polling are free. A synchronous client disconnect does not cancel its accepted job or create another charge; retrieve the same job or reuse the same key. Use async when a client or proxy cannot keep a connection open.

Use a new idempotency key for a different payload or delivery mode. Reusing a key with different input returns `409 idempotency_conflict`.

## Balance and monthly periods

The current ledger uses **UTC calendar months** and initializes each new month's grant from the assigned plan allowance. Unused credits do not roll into the next monthly grant. Paid subscription billing-period synchronization is not enabled yet; plan assignment is operator-managed. Existing grants, consumed credits and reservations are preserved; changing a plan does not refill an existing grant.

`GET /v1/usage` returns `period`, `granted`, `consumed`, `reserved`, `available`, `overages: false`, ledger and `next_cursor`. Pages hold up to 50 newest-first entries. Pass `?cursor=NEXT_CURSOR` for the next workspace-scoped page. Insufficient credits return `402`. Uncharged failed attempts still count toward the 30-attempt/hour budget. Month-boundary reservations settle against their original grant.

## Concurrent requests

| Plan | Running collection limit per workspace |
| - | -: |
| Starter | 5 |
| Growth | 15 |
| Scale | 30 |

Existing developer preview accounts have one running slot. Accounts without an active plan cannot submit requests (`402 subscription_required`). API keys cannot select or upgrade a plan.

The limit applies to running jobs across every API key, sync and async search endpoints, MCP tools and details operations. Requests beyond this execution limit remain queued, subject to the existing queue limit of ten waiting jobs, job deadlines, available workers and independent source slots. Submitting a job reserves its quoted credits; waiting does not charge extra credits. Polling and webhook delivery occupy no collection slot. The synchronous endpoint's two-credit surcharge does not bypass the queue.

`GET /v1/usage` additionally returns `plan: {id, name}` and `concurrency: {limit, running, queued}`. Counts are workspace-scoped snapshots. A downgrade leaves already-running work intact and pauses new claims until usage falls below the lower limit.

The pilot retains a separate 30-attempt/hour safety budget and one slot per airline. These limits and available workers can reduce actual simultaneous execution below a plan ceiling.

## How source weights are calculated

The resource policy is `max(1, ceil((CPU seconds + 0.125 × sampled memory GiB-seconds) / 10))`. The airline weight is the 75th percentile of eligible attempt weights. It measures the whole capture container, including browser children; wall time is reported separately. Memory time is sampled every second. This is a credit-unit policy, not a dollar estimate; it excludes container startup, queue/API/delivery, proxy/network cost and margin. AEGEAN has one eligible complete measurement; details operations remain unmeasured. More representative samples are needed before treating calibration as representative production cost.

`GET /v1/jobs/{id}` exposes `compute` when recorded: CPU-seconds, sampled GiB-seconds, peak bytes, capture wall time and attempt coverage. Historical requests without instrumentation return `null`. Missing measurement is never reported as zero. Compute does not cause a variable post-hoc bill.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.