API security testing and the OWASP API Security Top 10
APIs are the new perimeter, and they fail differently from web pages. See what API security testing covers and why authorization is at the heart of it.
APIs now carry most of the traffic that matters in a regulated business. They move payment data between core banking systems, expose patient records to clinical apps, connect your product to partners, and feed machine learning models. They also fail in ways that traditional web application testing misses, because the vulnerabilities live in business logic and authorization rather than in the page a browser renders. API security testing is the practice of attacking those interfaces the way a real adversary would, then proving which weaknesses are exploitable and what they expose.
We wrote this guide for technical leaders and executives who own risk for finance, healthcare, infrastructure, government, and AI platforms. The OWASP API Security Top 10 gives the industry a shared map of where APIs break, and we use it as the backbone of our testing. The point of this post is to show what a serious API security test actually involves, where teams waste money, and how the results connect to the obligations you carry under NIS2, DORA, ISO 27001, and SOC 2. You can see how this fits our wider work on our application security testing service.
What API security testing actually is
API security testing is the structured attempt to break an application programming interface from the perspective of an attacker who already understands how APIs work. A tester sends crafted requests to your endpoints, manipulates parameters and tokens, swaps identifiers between accounts, and chains weaknesses together to reach data or functions that should be off limits. The work covers REST, GraphQL, gRPC, SOAP, and the webhooks and message queues that sit behind them. It is not a scan that flags missing headers. It is a person reasoning about your authorization model and proving where it gives way.
The reason APIs need their own discipline is that they expose application logic directly. A browser-facing web app hides much of its behavior behind rendered pages and client-side flows. An API publishes the raw operations: create this transfer, read that record, escalate this role. When the server trusts the client to behave, an attacker who ignores the client wins. This is why we treat API testing as a distinct workstream rather than a footnote inside a web test, and why we go deeper into the broader category in our web application penetration testing guide.
The OWASP API Security Top 10 explained
The OWASP API Security Top 10 is a public, community-maintained list of the most serious and common API risk categories. It exists because APIs fail differently from web pages, and the original OWASP Top 10 did not capture those failure modes well. We map every finding in an API test to one or more of these categories so that your developers and auditors share a vocabulary with us. The categories are practical, not academic, and most real breaches we study trace back to the first three.
API1 Broken Object Level Authorization (BOLA) is the most common and damaging category, where an attacker changes an object identifier in a request and reads or edits another user's data because the server never checks ownership.
API2 Broken Authentication covers weak token handling, guessable credentials, missing rate limits on login, and flawed session logic that lets an attacker assume another identity.
API3 Broken Object Property Level Authorization combines excessive data exposure and mass assignment, where the API returns fields the user should not see or accepts fields the user should not be able to set.
API4 Unrestricted Resource Consumption describes endpoints with no limits on requests, payload size, or compute cost, which lets an attacker run up your bill or take the service down.
API5 Broken Function Level Authorization happens when a normal user can call administrative or privileged functions simply by knowing the route, because role checks are missing or inconsistent.
API6 through API10 cover unrestricted access to sensitive business flows, server-side request forgery, security misconfiguration, improper inventory management of API versions and endpoints, and unsafe consumption of third-party APIs.
Why authorization flaws dominate
Most automated tools find injection, misconfiguration, and outdated components. They almost never find broken authorization, because authorization is context. A scanner does not know that account 1041 belongs to a different customer than account 1042, so it cannot know that reading both from one session is a breach. A human tester sets up two accounts, captures a legitimate request, swaps the identifier, and watches the data come back. That single technique, applied patiently across every object and every endpoint, surfaces the flaws that cause the largest regulated-industry incidents.
A scanner reports that a service is exposed. A penetration tester establishes what an attacker could reach through it.
This is the core reason we argue against treating automated scanning as API security. Scanning has a role, and we explain that role in our piece on PTaaS versus pentest versus automated scanning. But the categories that move the needle for a bank or a hospital are authorization categories, and those need an attacker who understands your business, not a signature database.
How we run an API security test step by step
Our process is deliberate and repeatable, and we share the methodology before we start so your team knows exactly what happens to production and non-production systems. The work runs in phases, and each phase produces evidence that feeds the next. We do not rely on a single pass of a tool followed by a report. We iterate, because real exploitation chains weaknesses that look harmless in isolation.
Scoping and discovery: we inventory every endpoint, version, and method, including shadow and deprecated routes, because undocumented APIs are where the worst flaws hide and they map directly to the OWASP improper inventory management category.
Authentication and session analysis: we examine how tokens are issued, validated, refreshed, and revoked, and we test for weak secrets, missing expiry, and tokens that survive logout or privilege change.
Authorization testing: we set up multiple roles and tenants, then attempt horizontal and vertical access across every object and function to surface BOLA and broken function level authorization.
Input and logic abuse: we manipulate parameters, payloads, and field-level properties to find mass assignment, excessive data exposure, injection, and business flow abuse such as repeating a one-time action.
Resource and dependency testing: we probe rate limits, payload caps, and the behavior of third-party APIs your service consumes, including server-side request forgery paths.
Validation and reporting: we confirm each finding is exploitable, capture reproducible evidence, rate impact in business terms, and walk your engineers through remediation.
What you receive as deliverables
A test is only useful if your team can act on it and your auditors can trust it. We deliver findings that an engineer can reproduce and a board can understand. Every issue includes the request and response that proves it, the OWASP category it belongs to, a clear business impact statement, and a specific fix. We do not pad reports with informational noise that buries the two findings that actually matter.
A technical report with each finding mapped to the OWASP API Security Top 10, including reproduction steps, raw request and response evidence, and a severity rating tied to real impact rather than a generic score.
An executive summary that states the business risk in plain language, so a CISO or board member can grasp exposure without reading packet captures.
A remediation guide written for your developers, with concrete code and configuration changes rather than vague advice to validate input.
A retest of every fixed issue, with a clean attestation you can hand to auditors, customers, or regulators as evidence the work closed.
A walkthrough session where our testers explain the attack chains live, answer engineering questions, and help prioritize the fix order against your release schedule.
API testing compared to web and network testing
Buyers often ask whether an API test overlaps with a web application test or a network penetration test. The honest answer is that they share tools and people but target different layers, and skipping any one of them leaves a real gap. A web test focuses on the rendered application and the browser-facing attack surface. A network penetration test focuses on hosts, services, and segmentation. An API test focuses on the logic and authorization behind the endpoints, which is increasingly where the data actually lives.
If your product is a single-page application talking to a JSON backend, most of your real risk sits in the API, not in the static front end. If you run a mobile app, the binary on the phone is mostly a thin client, and the server-side API holds the security boundary. We scope these as related but separate efforts, and we often combine them under a broader engagement that you can read about alongside our coverage of what VAPT means. The goal is full coverage without paying twice for the same testing.
When to test and how often
Annual testing made sense when software shipped once a year. APIs change weekly, and each release can introduce a new endpoint or quietly alter an authorization check. We recommend a baseline cadence tied to both the calendar and your release process, so that significant changes get tested before they reach production rather than a year later.
Run a full API security test at least annually, and after any major architectural change such as a new authentication provider, a tenancy model change, or a move to GraphQL.
Test every new API or major version before it goes live, because new endpoints carry the highest density of authorization flaws.
Add continuous or periodic testing through a platform model when your release velocity is high, so coverage keeps pace with deployment rather than lagging behind it.
Trigger an out-of-band test after any incident, merger, or onboarding of a sensitive third-party integration that changes your data flows.
Align the cadence with the evidence cycle your frameworks require, so a single test program satisfies both engineering and compliance needs.
Common mistakes and red flags
We see the same failures across regulated clients, and most of them come from treating API security as a checkbox rather than a discipline. The biggest red flag in a vendor is a report full of scanner output with no authorization findings, because it means nobody actually tested the logic. The biggest red flag internally is an API inventory that nobody can produce on demand.
Relying on a scan alone and calling it a penetration test, which leaves every authorization flaw undiscovered, a trap we unpack in our article on why a scan is not a pentest.
Testing only the documented endpoints while shadow APIs, old versions, and internal-only routes stay live and exposed.
Trusting authentication to imply authorization, so that any logged-in user can reach data or functions meant for another tenant or role.
Returning full objects from the database and filtering on the client, which hands sensitive fields to anyone who reads the raw response.
Skipping rate limits and resource caps, which leaves the service open to denial of service and runaway cost from a single abusive caller.
Treating AI and LLM endpoints as ordinary APIs, when they carry their own injection and data exposure risks that we cover in securing LLM apps and the reality of prompt injection.
Cost and effort
API testing is scoped by the number of endpoints, the complexity of the authorization model, and the number of roles and tenants we have to exercise. A focused test of a single service with a handful of endpoints is a short engagement. A platform with hundreds of endpoints, multiple user types, and complex tenancy takes longer, because authorization testing scales with the number of object and role combinations we have to attempt. We price against scope rather than a fixed list, and we explain the drivers in detail in our breakdown of penetration testing cost.
The effort that matters most is on your side before testing starts. Clean documentation, working test accounts for each role, and a stable staging environment cut the engagement time and let us spend hours on exploitation rather than setup. If you are choosing a provider, our guide on how to choose a penetration testing company covers the questions that separate a real testing firm from a scan reseller.
How API testing supports compliance
Regulated firms do not test APIs only because it is good engineering. They test because their frameworks demand evidence that they manage technical risk in the systems that carry sensitive data. API security testing produces exactly that evidence, and it maps cleanly onto the controls auditors expect to see.
NIS2, the Directive (EU) 2022/2555, requires essential and important entities to manage risk in network and information systems, and API testing is direct evidence of that for the services that expose your data, as we explain in NIS2 explained and on our NIS2 page.
DORA, the Regulation (EU) 2022/2554 in force since January 2025, requires financial entities to run threat-led and vulnerability testing of ICT systems, and APIs are the integration points DORA cares about, covered on our DORA page.
ISO/IEC 27001:2022, with its 93 Annex A controls across four themes, expects technical vulnerability management and secure development, and API test results feed the controls directly, as detailed in our ISO 27001 certification guide.
SOC 2 Trust Services Criteria around security and confidentiality are supported by regular testing and remediation evidence, which is why we connect testing to readiness in SOC 2 compliance readiness.
Across all four frameworks, the OWASP mapping in our reports gives auditors a recognized standard to assess your testing against, rather than a private methodology they have to take on trust.
APIs are where regulated businesses now hold their most sensitive operations, and the OWASP API Security Top 10 shows exactly where they tend to fail. Testing them properly means attacking the authorization model with a real adversary mindset, proving what is exploitable, and handing your team evidence they can act on and your auditors can trust. If you want to see how this works against your own environment, read more about our API penetration testing service or book a scoping call and we will map a test to your APIs, your roles, and the frameworks you answer to.
Frequently asked questions
Can automated tools replace manual API testing?+
No. Automated tools find misconfiguration, known vulnerable components, and some injection, and they are useful for breadth and for continuous coverage between tests. They cannot find broken object level authorization, broken function level authorization, or business logic abuse, because those depend on understanding what each request is allowed to do. Those categories cause the largest regulated-industry breaches, so a program built on scanning alone leaves the worst risks untouched.
Do you test in production or staging?+
We prefer a staging environment that mirrors production, with seeded test data and working accounts for each role. When business risk is concentrated in production behavior, we test there with explicit rules of engagement, careful rate control, and no destructive actions. We agree the environment and the safeguards during scoping so there are no surprises.
How long does an API security test take?+
A focused service with a small endpoint count takes around one to two weeks including reporting. A large platform with many endpoints, multiple roles, and complex tenancy takes longer, because authorization testing grows with the number of role and object combinations. We give a firm timeline once we have seen the API inventory and the authorization model.
What do we need to prepare before testing starts?+
Provide current API documentation or a specification such as OpenAPI, a stable test environment, and working credentials for every role and tenant we need to exercise. Multi-account, multi-role access is essential, because most serious findings only appear when we attempt to cross from one identity to another. Good preparation shifts our hours from setup toward exploitation, which raises the value you get from the engagement.
How is testing GraphQL different from REST?+
GraphQL exposes a single endpoint with a flexible query language, which changes the attack surface. We test for excessive query depth and complexity that can exhaust resources, for field-level authorization gaps where a query returns data the user should not see, and for introspection that leaks the full schema. The underlying OWASP categories are the same, but the techniques to reach them differ, and we adjust the test plan to the API style you run.
Sources
1OWASP. OWASP API Security Top 10. Open Worldwide Application Security Project, 2023. Link
2OWASP. OWASP Web Security Testing Guide (WSTG). Open Worldwide Application Security Project, 2024. Link