§ 02 · Guide

What an API penetration test costs in Europe, and what moves the number

Updated 9 min read apipentest.net

Every vendor page ends the pricing conversation with “it depends on scope”, which is true and useless. This guide uses published European figures to show what the dependency actually is, so you can build a range before you talk to anyone and read three quotations against each other afterwards.

A test is priced in days, not in endpoints

Almost every European testing firm builds its price the same way: a number of tester-days multiplied by a day rate, plus a fixed allowance for reporting and a retest if you buy one. Endpoint counts, user counts and traffic volumes only matter because they change the number of days. Once you internalize that, a quotation stops being a black box and becomes two numbers you can question separately.

This also explains why quotations diverge so wildly. A vendor charging €700 a day and quoting six days lands at €4,200. A vendor charging €1,600 a day and quoting twelve lands at €19,200. Both may be honest. They are selling different amounts of a different-quality hour, and the only way to see it is to ask both for the day count and the rate separately.

What European testers publish

These are other companies’ own published figures, collected in September 2026. They are useful as benchmarks for reading a quotation. None of them is a quote for your API, and all of them are subject to change by the firms that published them.

Published European price and effort benchmarks
BenchmarkPublished figureSource
Time-and-materials day rate€640 to €890 per person-daySecuritum price list (PL/EU)
Fixed-price single application test€3,500 to €14,000, one to four weeksSecuritum price list (PL/EU)
Fair day rate£1,000 to £1,500, about €1,200 to €1,800SECFORCE pen-testing price guide (UK/EU)
Below which it is a scan, not a testUnder £500 per daySECFORCE pen-testing price guide
Typical web application testAbout 6 days, about £6,000SECFORCE pen-testing price guide
Mobile and API ecosystems€3,000 to €7,500Sectricity, January 2026 (BE)
API penetration test$5,000 to $30,000; market average $18,300Blaze Information Security, June 2026
Day rate range$1,200 to $3,000Blaze Information Security, June 2026
Under 25 endpoints, one or two roles4 to 5 working days, £4,000 to £7,000EJN Labs (UK, CREST)
25 to 100 endpoints, three or more roles7 to 10 working days, £7,000 to £12,000EJN Labs (UK, CREST)
Over 100 endpoints, multiple protocols12 to 15 working days, £12,000 and upEJN Labs (UK, CREST)
Collected from public vendor pages in September 2026 and quoted with attribution. Currency conversions are the publishers’ own.

Two things stand out. The effort bands from different firms agree closely, which suggests they reflect how long the work genuinely takes rather than what the market will bear. The day rates do not agree at all, varying by a factor of nearly three across the same continent. Effort is physics; rate is positioning.

The seven drivers, and what each one costs you

Every scoping questionnaire is asking about the same seven things. Here is what each one does to the day count, and why.

1. Endpoints or operations

The unit that matters is the operation, not the path. One resource exposed with five verbs is five tests, because authorization is frequently applied per verb and not per route. A GraphQL schema with 200 fields and 40 mutations is not one endpoint, whatever your gateway dashboard says. Ask a vendor how they count, because a quote based on paths against a schema-based API will be short by days.

2. Roles and tenancy

This is the driver most people underestimate. The authorization matrix grows with roles multiplied by object types, so a fourth role costs more testing time than fifty additional read-only endpoints. Multi-tenancy adds an entire second axis: every cross-tenant check has to be run with two live tenants, because a single tenant cannot demonstrate isolation. If you only change one line in your scoping document after reading this guide, make it the role count, and make it accurate.

3. Authentication schemes

One static API key is an afternoon. OAuth2 with three grant types, rotating refresh tokens, scope-based authorization and mutual TLS for partner traffic is a phase of its own, and each scheme needs its own working credentials before testing starts. The OpenAPI specification makes this easy to communicate: its securitySchemes object supports apiKey, http, mutualTLS, oauth2 and openIdConnect, and handing over that block tells a tester your auth model in one glance.

4. API styles in scope

REST, GraphQL, gRPC, WebSocket and webhooks need different tooling and different abuse tests. GraphQL brings introspection, aliasing, batching and query-depth work that has no REST equivalent. gRPC brings reflection and protobuf handling. Webhooks bring signature verification and replay. A mixed estate costs more than the endpoint count suggests, because the tester changes toolchain between them.

5. Environments

Staging with production-like data volumes is the cheapest place to test resource consumption, because nobody has to negotiate a window. Production adds scheduling, throttling, a named contact, a kill switch and usually a conversation with whoever owns the on-call rota. Testing production only, with no staging at all, adds days and constrains what can be attempted, which quietly reduces coverage.

6. Specification quality

A current OpenAPI document or GraphQL schema can remove two days of discovery. No specification at all adds them back and, worse, adds uncertainty: at the end of the engagement neither side can state confidently what proportion of the surface was reached. Cloudflare found organizations had roughly a third more public-facing API endpoints than their own inventories listed. If your specification is stale, budget for the discovery rather than pretending the gap is not there.

7. Retest and re-issue

Re-testing the fixed findings and re-issuing the report with a verification statement is typically one to two days. It is the cheapest day in the engagement and the one most often cut. Certification bodies, enterprise procurement teams and regulators under DORA and PCI DSS all want evidence that findings were closed, not just that they were found.

Two worked scopes

The bands below use the published EU day-rate span of €640 to €1,800. The width of the resulting range is not sloppiness; it is the honest gap between a competent regional firm and a premium boutique doing comparable work.

Scope A: a consumer REST API

Twenty-two endpoints, two roles (user and support agent), a single tenant, one OAuth2 flow, a current OpenAPI document, staging with realistic data, retest included. There is nothing exotic here: the authorization matrix is 2 roles by roughly 8 object types, discovery is nearly free because the specification is current, and consumption testing can run on staging without a scheduling conversation.

Expect a 5 to 7 tester-day band, which lands between about €3,000 and €12,500 depending on the firm. That is consistent with both the EJN Labs 4-to-5-day band for the simplest scopes and the Securitum fixed-price floor of €3,500.

Scope B: a multi-tenant B2B platform

Around 140 REST operations plus a GraphQL gateway, five roles, genuine multi-tenancy, OAuth2 for the web client and mutual TLS for partner integrations, a partial specification, production verification required after staging, PCI DSS as the driver, retest included.

The endpoint count alone puts this in the 11-day base band. Multi-tenancy, five roles, two authentication schemes, a second API style, a stale specification, production checks and a compliance driver each add. A realistic band is 15 to 20 tester-days, or roughly €9,500 to €36,000. If a vendor quotes this scope at six days, they are quoting a REST scan with a GraphQL introspection query attached.

You can run either scope, or your own, through the scope estimator on the home page. It applies the same arithmetic and shows which OWASP categories the plan will be dominated by.

What a cheap quotation leaves out

A quotation that is half the price of its neighbours is usually not cheaper. It is smaller. These are the five things that disappear first, in the order they disappear.

  • The authorization matrix. The slowest and most valuable part of the work. Without it you get injection and misconfiguration findings, which is a scan with a human cover letter.
  • Undocumented endpoints. Testing only what the specification lists means the routes most likely to be broken, the forgotten ones, are also the untested ones.
  • Business-flow abuse. API6 work requires understanding your product. It is the first thing dropped when the tester has not been given time to read anything.
  • Evidence. A finding without the request and response that produced it cannot be reproduced, cannot be prioritized honestly and will be argued about for a month.
  • The retest. Cut it and your report says what was broken in September, not what is broken now.

SECFORCE puts a floor on this in public: below about £500 per day, you are buying a scan rather than a test. That is a useful sanity check in both directions, because it also means a very high rate does not by itself buy more days.

How to write a request that gets comparable quotations

Most of the variance between quotations comes from vendors guessing differently about the same missing information. Supply it once, in writing, and the quotes converge.

  • The operation count, and how you counted it. Say whether the number is paths or path-plus-verb, and include GraphQL fields and mutations separately.
  • The role list, with a one-line description of what each role can do that the others cannot, and whether the system is multi-tenant.
  • Every authentication scheme in scope, and who can supply working credentials for each.
  • The API styles: REST, GraphQL, gRPC, WebSocket, webhooks, and which of them are in scope.
  • The environment, its data realism, and whether production verification is required.
  • The state of the specification, honestly. “Stale, last updated at v2, we are on v4” is far more useful than a link to a swagger file.
  • The compliance driver, if there is one, and the clause you need the report to answer.
  • Whether a retest and a re-issued statement are required, and by when.
  • Ask every vendor to break out: tester-days, day rate, reporting allowance, retest allowance.

Red flags in a quotation

  • A price arrives with no scoping call and no scoping questions. Nobody can size an authorization matrix from a domain name.
  • The quotation is per endpoint. Endpoints are not the unit of work, and per-endpoint pricing rewards a vendor for ignoring your roles.
  • No day count anywhere in the document.
  • The methodology section names only tools. Tools are the cheap part.
  • The retest is priced as a second full engagement.
  • A sample report cannot be provided, not even redacted. Every serious firm has one.
  • The report will be delivered as tool output with a cover page. Ask to see the finding template before you sign.

What the total actually buys

For a small API, the whole exercise is comparable to two weeks of one engineer’s salary. For a multi-tenant platform, it is a fortnight of two. Against that, the Dell partner-portal API gave up 49 million records to an attacker sending 5,000 requests per minute for three weeks, and the McHire object-level flaw exposed the data of more than 64 million applicants to anyone who could decrement an integer. Neither required a novel technique. Both would have shown up in the authorization pass that cheap quotations remove.

Sources

  1. Penetration testing price list Securitum Day rate €640 to €890; fixed-price application tests €3,500 to €14,000.
  2. Pen testing price list: UK and EU guide SECFORCE · 2026 Fair day rate £1,000 to £1,500; under £500 per day is a scan.
  3. How much does a pentest cost? Sectricity · 2026
  4. How much does penetration testing cost? Blaze Information Security · 2026
  5. API penetration testing effort bands EJN Labs
  6. API penetration testing service page and FAQ KirkpatrickPrice
  7. OpenAPI Specification OpenAPI Initiative · 2026 Security scheme types: apiKey, http, mutualTLS, oauth2, openIdConnect.
  8. Application Security report, 2024 update Cloudflare · 2024 33% more public-facing endpoints than inventoried.
  9. Dell API abused to steal 49 million customer records BleepingComputer · 2024
  10. Scraping McDonald’s job applications Ian Carroll · 2025

Related questions

Can you give me a single number?

For a small, well-documented REST API with two roles: 4 to 7 tester-days, so roughly €3,000 to €12,500 at published European day rates. For a large multi-tenant platform with several API styles: 12 to 20 days, so roughly €8,000 to €36,000. Anything more precise than that before a scoping call is guesswork dressed as a quotation.

Is a fixed price better than time and materials?

Fixed price is better for you when the scope is genuinely known, because the risk of underestimating sits with the vendor. Time and materials is better when the specification is stale or the endpoint count is uncertain, because a fixed price under those conditions is padded to cover the vendor’s risk. Securitum publishes both models, which is a reasonable pattern: fixed price for a defined application, day rate for exploratory work.

Does a CREST or similar registration change the price?

It tends to raise the day rate and it is sometimes a procurement requirement, particularly in the UK and in regulated sectors. It is a signal about process and vetting rather than about individual skill. If it is not required by your customers or your regulator, weigh it against the number of days the same budget buys elsewhere.

How often should we repeat the test?

Annually is the common baseline and the one most regimes assume: PCI DSS requires internal and external penetration testing at least once every 12 months and after any significant change, and DORA requires appropriate tests at least yearly on systems supporting critical or important functions. For an API shipping weekly, an annual test plus a retest of each significant change is more honest than a single large engagement a year, and usually costs the same overall.