- Request units
- 5M of 500K
- Base price
- €127 / month
- Request unit overage
- 5 × €6
- Insights overage
- 0 × €12
Simple, transparent pricing
Plans are metered on request units and Insights. Request units are counted per request at each point of presence, and by response size.
Full GraphQL mission-control at any scale.
Custom pricing and volumes, on terms built around your organization.
- Everything in Airliner
- Custom pricing and volumes
- 90 days of data retention
- 365 days of audit log
- Custom SLA and support
Estimate your monthly cost
Requests are billed in request units: one per started 10 KiB of response, at every POP a request passes through. Enter your traffic to see what each plan would cost.
1M client requests, across all services of the billing account. Shortcuts like 500k or 2.5M work too.
Uncompressed, headers excluded. 1 KB = 1,000 bytes; every started 10 KiB (10,240 bytes) is one request unit per POP.
Cache misses go on to a shield POP, so they pass through two POPs. Jet and Airliner only; on Glider every request passes through one.
Without shielding, every request counts once at the edge, whatever the hit rate.
- 1,000,000 requests at the edge × 1 POP × 5 request units per POP = 5,000,000
Cheapest plan for this traffic: Jet
€55 a month less than Airliner. Annual billing saves €268 a year against monthly.
Other plans
- Request units
- 5M of 5M
- Base price
- €212 / month
- Request unit overage
- 0 × €5
- Insights overage
- 0 × €10
- Per year
- €2,540
- Request units
- 5M of 100K
The allowance runs out around day 1 of 30. From then on, the services run in lean mode: the API keeps working, caching and request logging pause until the window resets. Around day 24, traffic like this goes far beyond what Glider is meant for: under fair use, GraphPilot may suspend the services and lock the account until the start of the next month or an upgrade.
How it is computed
Request units are counted per request at each point of presence (POP), and by response size. A request uses one request unit per started 10 KiB (10,240 bytes) of its uncompressed response body, headers excluded, at least one, at every POP it passes through, each weighted by the body it produced. A request answered from the edge cache passes through one POP; one the shield runs passes through two, whatever the shield answers. This estimate assumes the shield returns the same body the client receives, which is the usual case. A 2 KB response from the edge cache is 1 request unit, through the shield 2; a 25 KB response from the edge cache is 3, through the shield 6; a 50 KB response, typical for a GraphQL API, is 5 from the edge cache and 10 through the shield. A compressed response counts at its uncompressed size. A background refresh through the shield is a request of its own; it depends on cache lifetimes, so this estimate leaves it out. Purges through GraphPilot are free.
Each plan includes an allowance of request units per month. Above it, paid plans bill per started million: on Jet, 500,001 request units are billed as one million of overage. Insights counts every recorded client request once, with its own allowance; the estimate assumes every request is recorded. Overage repeats every month, so the annual figure is the annual price plus twelve months of overage. Glider has no overage: once its allowance is used up, the services run in lean mode until the window resets. Glider is offered under fair use: traffic far beyond what it is meant for can have the services suspended and the account locked until the start of the next month or an upgrade.
An average body size is an approximation, since request units are counted per response. Prices are net and exclude VAT. See how request units are counted for the details.
Frequently asked questions
- Is there a free plan?
- Yes. Glider (Free) is for side projects, hobby apps and trying GraphPilot out, with no credit card required. It is not meant for production traffic: it comes with no support commitment, and once its monthly request unit allowance is used up, edge caching and request logging pause until its monthly window resets. The paid plans Jet (Starter) and Airliner (Business) add larger allowances, more services, longer retention and deeper Insights. Team seats are unlimited on every plan.
- When does billing start?
- Glider (Free) costs nothing and needs no credit card. A paid plan is billed from the moment you order it in the portal: its price is charged at once, in advance, monthly or yearly. Usage above the plan's allowance is billed monthly in arrears, also on a plan billed yearly.
- Can I change plans later?
- Yes. You can start on Glider (Free) and move up to Jet (Starter) or Airliner (Business) as your GraphQL traffic and team needs grow. Jumbo (Enterprise) adds custom pricing and volumes, and a custom SLA and support.
- How many organizations and custom domains does a plan include?
- Both are counted per billing account, across every organization it funds. Glider (Free) funds 1 organization and includes no custom domain, Jet (Starter) 2 organizations and 2 custom domains, Airliner (Business) 3 organizations and 5 custom domains. Jumbo (Enterprise) includes at least 5 custom domains, and its contract sets the organizations and any further domains. An account that already funds more organizations or holds more custom domains than its plan includes, for example after moving to a smaller plan, keeps them; only a new one is refused.
- Is there an audit log?
- Yes, on every plan. Each organization has an audit log in the portal that shows who changed what and when: services, deployments, purges, history resets, signing keys, custom domains, plan and billing changes, members and API keys, settings and the acceptance of the terms. It names the member, the API key, GraphPilot support or GraphPilot itself that made the change; member and API key changes come from WorkOS, which manages them, and show WorkOS as the actor. It records no request contents and no secrets. Every member can view it, whatever their role; API keys never can, and no one can change or delete an entry. It reaches back 1 day on Glider (Free), 30 days on Jet (Starter), 180 days on Airliner (Business) and 365 days on Jumbo (Enterprise), and it is stored in the EU.
- What happens when Glider's request units run out?
- Your API keeps working: requests are still authenticated, signed and forwarded to your origin. Edge caching and request logging pause together until Glider's monthly window resets or you move to a paid plan. The window starts when the account moves to Glider, at sign-up or after a paid plan ends, and repeats monthly from there: requests served in that time are counted but not recorded, so they do not appear in Insights and an upgrade does not bring them back. Glider has no separate Insights allowance: telemetry is recorded only while the request units last; once they are used up, the account serves in lean mode and records no telemetry. Upgrade before the allowance runs out if you need a record of every request. Glider is offered under fair use; see below.
- Does Glider ever stop serving?
- Not because its allowance is used up: Glider keeps serving in lean mode. It is offered under fair use, though. If an account sends traffic far beyond what Glider is meant for, GraphPilot may suspend its services and lock the account until the start of the next month, or until it moves to a paid plan. A warning email usually goes out before that happens, and nothing is deleted. Paid plans have no such limit; their usage above the allowance is billed.
- What are request units?
- Request units are what the request allowance and its overage are counted in. They are counted per request at each point of presence, and by response size. A request uses one request unit per started 10 KiB (10,240 bytes) of its uncompressed response body, at least one, at every point of presence it passes through. Headers are excluded, and the same query costs the same whatever the client's Accept-Encoding, so compression does not change the count. A response without a body uses one. Without shielding, a request passes through one point of presence: a 2 KB response is 1 request unit, a 25 KB response 3, and a 50 KB response, typical for a GraphQL API, 5. With shielding, a cache miss or a mutation goes on from the edge location that received it to the shield location you chose, so it passes through two, also when the shield takes too long to answer: a 2 KB response is 2 request units, a 25 KB response 6, a 50 KB response 10. A request the edge cannot send to the shield, and takes to your origin itself instead, passes through one. A background refresh of a stale copy through the shield is a request of its own. Purges through GraphPilot are free. Insights, and on paid plans its allowance of logged requests, count each logged request once, whatever its size or route; a service can log fewer requests or none (telemetry.record).
* Request units are counted per request at each point of presence (POP), and by response size. A request uses one request unit per started 10 KiB of its uncompressed response body, at least one, at every POP it passes through. A request sent to the shield passes through two; one the edge could not send there, and took to your origin itself, passes through one. A 2 KB response from the edge cache is 1 request unit, through the shield 2; a 25 KB response from the edge cache is 3, through the shield 6; a 50 KB response, typical for a GraphQL API, is 5 from the edge cache and 10 through the shield. A background refresh through the shield is a request of its own. Headers are excluded, and the same query costs the same whatever the client's Accept-Encoding. A response without a body is 1. Purges through GraphPilot are free. Shielding is optional and available on paid plans. Insights counts each logged request once, whatever its size or route; a service can log fewer requests or none (`telemetry.record`).
All prices are net and exclude VAT. GraphPilot is offered to businesses only (§ 14 BGB), not to consumers. The plan price is due in advance; usage above the allowance is billed monthly in arrears, also on a plan billed annually. A plan billed monthly renews every month and a plan billed annually every twelve months, until it is canceled. A plan can be canceled until the last day of its term and ends with it: a plan billed monthly until the last day of its month, a plan billed annually until the last day of its twelve months. The plans are subject to the Terms of Service and Service Description.



