API Security Testing
REST, GraphQL, SOAP - we find what your developers missed
APIs are the new attack surface. We test REST, GraphQL and SOAP APIs for authentication leaks, authorisation flaws, excessive data exposure and injection vulnerabilities. With deep understanding of modern API architectures.
What is an API pentest?
An API pentest is a security test aimed at your Application Programming Interfaces. APIs are the communication layer between applications, mobile apps, microservices and external partners. They often process the most sensitive data - personal information, financial transactions, medical records - but are rarely secured as thoroughly as the front-end that runs on them.
We test REST, GraphQL and SOAP APIs for vulnerabilities that automated scanners structurally miss. The OWASP API Security Top 10 is our starting point, but the vulnerabilities we most frequently report fall outside it: IDORs that let you query other customers' data, race conditions in payment flows, JWTs that are not correctly validated, rate limiting that is easily bypassed.
Common API vulnerabilities
- Broken Object Level Authorization (BOLA) - can a user retrieve other users' data by manipulating IDs? We find this in more than half of the APIs we test.
- Broken Function Level Authorization (BFLA) - can a regular user call admin endpoints?
- Excessive Data Exposure - does the API return more data than the client needs?
- Mass Assignment - can a user overwrite read-only fields?
- Injection - SQL, NoSQL, GraphQL and command injection via API parameters.
- Improper rate limiting - absence of throttling on authentication endpoints.
Why should you get an API pentest?
APIs are the fastest-growing attack surface. API-related data breaches are commonplace:
- APIs are overlooked: the web application gets a pentest, the underlying API does not. That is like securing the front door but leaving the back door open.
- Documentation is wrong: Swagger/OpenAPI specs are often outdated. We find undocumented endpoints that fall outside developers' awareness.
- Authorisation flaws are #1: BOLA and BFLA account for the majority of API data breaches. No scanner finds them.
- Microservices multiply risk: each service with its own API increases the attack surface.
Our approach
Our API pentesters combine deep understanding of API architectures with attack experience. Short lines: we share critical findings immediately.
- API discovery - inventorying all endpoints via documentation, traffic analysis and active fuzzing. We also find undocumented and deprecated endpoints.
- Authentication testing - JWT validation (algorithm confusion, key disclosure), OAuth flows, API key management, session handling.
- Authorization testing - systematic testing for BOLA and BFLA. Can user A access user B's data? Can a regular user perform admin functionality?
- Input validation - injection testing (SQL, NoSQL, GraphQL query manipulation), parameter tampering, mass assignment.
- Rate limiting & abuse - brute force protection, resource exhaustion, business logic abuse.
- Data exposure - analysing API responses for excessive data, internal identifiers, stack traces, debug information.
- Reporting - per finding: description, proof-of-concept request/response, CVSS score and recommendation. Retest available on request.
What does an API pentest cost?
Our hourly rate is €175 per hour. Costs are determined by:
- Number of endpoints: 10 endpoints is less than 200.
- Logic complexity: payment APIs and multi-tenant APIs require more test hours.
- Authentication/authorisation: the number of roles and permission levels determines the amount of authorisation tests.
- API type: GraphQL takes more time than REST due to the flexibility of queries.
Frequently asked questions
Do you also test GraphQL APIs?
Yes. GraphQL has specific risks REST does not: introspection queries revealing the schema, deeply nested queries causing denial-of-service, batch attacks bypassing rate limiting. We test this regularly and know exactly where to look.
Do you need API documentation?
Helpful, but not required. For blackbox we discover endpoints ourselves. For greybox/whitebox we use your Swagger/OpenAPI spec as a starting point and test whether reality matches documentation. Often it does not - and that is precisely where the vulnerabilities are.
What is the difference between an API pentest and a web application pentest?
A web application pentest tests the full application including frontend. An API pentest focuses on the API layer: endpoints, authentication, authorisation, data handling. Have an SPA with API backend? We recommend testing both. We discuss that in the scoping call.
Related services
Web Application & API Pentest
OWASP, business logic, auth bypass - from login to back-end
// OffensiveMobile App Pentest
iOS and Android - from binary analysis to runtime hooking
// OffensiveCloud Security (AWS & GCP)
IAM misconfigs, storage exposure and privilege escalation in AWS and GCP
Ready to test your security?
Get in touch with our team for a no-obligation conversation about your security challenges.