TL;DR
- ✓A sound methodology runs in five phases: recon, endpoint analysis, authorization testing, exploitation, and reporting.
- ✓The OWASP API Security Top 10 (2023) is the backbone. Each risk maps to a specific, repeatable test.
- ✓Authorization risks (API1 BOLA and API5 BFLA) plus property-level flaws (API3 BOPLA) drive most critical findings.
- ✓Methodology means testing the same way every time, mapping each finding to a category, and proving impact with a request/response pair.
An API penetration testing methodology is the repeatable process you follow on every engagement so coverage does not depend on memory or mood. The strongest methodologies are anchored to the OWASP API Security Top 10 (2023), because it names the exact risk classes that cause API breaches and gives you a category to file every finding under.
This guide lays out a five-phase methodology and then maps a concrete test to each of the ten OWASP API risks, from BOLA to unsafe consumption of third-party APIs. Use it to turn an ad-hoc poke at endpoints into a defensible, complete assessment.
What is an API penetration testing methodology?
It is a fixed sequence of phases that takes you from zero knowledge to a categorized findings report, applied identically to every API so nothing is skipped. A methodology is what separates a structured pentest from random fuzzing: it guarantees you tested authorization on every object endpoint, not just the ones you remembered.
The five phases we use are:
- Reconnaissance: enumerate endpoints, versions, and parameters.
- Endpoint analysis: understand each endpoint's auth model, inputs, and data.
- Authorization testing: BOLA and BFLA across multiple accounts and roles.
- Exploitation: injection, mass assignment, logic abuse, resource exhaustion.
- Reporting: map each finding to an OWASP API category with reproduction steps.
This mirrors a classic penetration testing methodology but reorders the work around the fact that authorization, not injection, is the API's weakest point.
Five-phase API pentest methodology
1
Recon
Enumerate endpoints, versions, parameters from specs, traffic, and brute force.
2
Endpoint analysis
Map each endpoint's auth model, inputs, and returned data.
3
Authorization
Test BOLA and BFLA across multiple accounts and roles.
4
Exploitation
Injection, mass assignment, logic abuse, resource exhaustion, chaining.
5
Reporting
Map findings to OWASP API categories with CVSS and reproduction.
Why use the OWASP API Security Top 10 as the backbone?
Because it is the only widely accepted taxonomy built specifically for API risks, and it reflects how APIs actually get breached rather than how web pages do. The 2023 edition restructured the list to emphasize authorization (two of the top five entries) and added unsafe consumption of third-party APIs, which the 2019 list missed.
Anchoring to it gives you three things: complete coverage (you test all ten), a shared language with developers, and a clean mapping into compliance frameworks. It also pairs naturally with the broader OWASP Web Security Testing Guide when an API sits behind a web front end.
How do you test each OWASP API Top 10 category?
Each risk maps to a concrete test you can run on a captured request. The pattern is always: identify the category's precondition, craft a request that violates the assumed control, and confirm impact in the response.
The clearest example is API1 (BOLA). Capture an authenticated request that fetches an object by ID, then replay it with a different account's token and a different ID:
GET /api/v2/invoices/INV-9001 HTTP/1.1
Authorization: Bearer <tenant-A-token>
, - response , -
200 OK
{ "invoice": "INV-9001", "tenant": "B-Corp", "total": 12990 }
Tenant A read tenant B's invoice: a critical BOLA. API3 (BOPLA) is tested by adding hidden fields to a write request, like injecting "is_admin": true into a profile update. API5 (BFLA) is tested by calling DELETE /api/v2/admin/users/77 with a standard user's token. The full per-category mapping is in the visual below.
OWASP API Security Top 10 (2023) mapped to a test
| ID | Risk | How you test it |
|---|
| API1 | Broken Object Level Authorization (BOLA) | Replay request with another account's ID/token |
| API2 | Broken Authentication | JWT alg:none, weak secret, no lockout, token reuse |
| API3 | Broken Object Property Level Auth (BOPLA) | Mass-assign hidden fields; check excessive data exposure |
| API4 | Unrestricted Resource Consumption | Remove rate limits, oversized pages, nested queries |
| API5 | Broken Function Level Authorization (BFLA) | Call admin functions with a low-priv token |
| API6 | Unrestricted Access to Business Flows | Automate a flow (purchase, signup) past intended limits |
| API7 | Server-Side Request Forgery (SSRF) | Feed internal/metadata URLs to URL parameters |
| API8 | Security Misconfiguration | Check headers, CORS, verbose errors, default creds |
| API9 | Improper Inventory Management | Find old versions, debug, and undocumented endpoints |
| API10 | Unsafe Consumption of APIs | Test how the API trusts third-party/upstream responses |
How does the methodology handle business logic and chaining?
Business logic sits outside the Top 10's neat categories, so the methodology adds a dedicated exploitation pass for sequence, state, and value abuse. After the categorized tests, you walk each stateful workflow and ask what assumption the developer made that you can break.
- Tamper with values the server should recompute: price, quantity, currency, discount.
- Break sequence: confirm an order without paying, or apply a coupon after checkout.
- Race shared state: two concurrent withdrawals against one balance, or two redemptions of one token.
- Chain findings: a BOLA that leaks a user ID feeding a BFLA that escalates that user.
Chaining is where API pentests deliver outsized value, and it is exactly the kind of multi-step reasoning that agentic pentesting can now run continuously rather than once a year.
How do you report and prioritize API findings?
Report each finding against its OWASP API category, score it with CVSS, and prove it with a paired request and response. Prioritization should reflect exploitability: a BOLA on a sequential integer ID is trivially scriptable and ranks above a theoretical issue gated behind admin auth.
For each finding include the category (e.g. API1 BOLA), CVSS vector, affected endpoint, the exact reproduction request, observed response, and a remediation that names the control (object-level authorization check, schema allow-listing, rate limit). A clean mapping also makes the report usable by developers who think in OWASP terms. See our guide on API pentesting tools for what to capture evidence with.
Frequently asked questions
What is the OWASP API Security Top 10?
It is a list, maintained by OWASP and updated in 2023, of the ten most critical API security risks. It includes BOLA, broken authentication, BOPLA, unrestricted resource consumption, BFLA, unrestricted access to business flows, SSRF, security misconfiguration, improper inventory management, and unsafe consumption of APIs.
What changed in the 2023 OWASP API Top 10?
The 2023 edition merged the old excessive-data-exposure and mass-assignment entries into BOPLA (API3), added Unrestricted Access to Sensitive Business Flows (API6) and Unsafe Consumption of APIs (API10), and renamed several categories to be clearer. The emphasis on authorization risks at the top of the list became stronger.
What is the difference between BOLA, BOPLA, and BFLA?
BOLA (API1) is unauthorized access to an entire object. BOPLA (API3) is unauthorized access to or modification of specific properties of an object, covering mass assignment and excessive data exposure. BFLA (API5) is unauthorized access to a function or endpoint, typically an admin action.
Is the OWASP API Top 10 enough for a full API pentest?
It is the backbone, but not the whole methodology. It does not explicitly cover business-logic and chaining attacks, which need a dedicated exploitation pass. A complete methodology uses the Top 10 for categorized coverage and adds logic, sequence, race-condition, and finding-chaining tests on top.
How do you test for SSRF in an API (API7)?
Find any parameter that accepts a URL, hostname, IP, or file path (webhooks, image fetchers, PDF generators, integrations). Point it at internal addresses and cloud metadata endpoints like 169.254.169.254, and watch for responses, timing differences, or out-of-band callbacks to a server you control.
Sources and references
A
Akhil Reni
Co-founder and CTO, Strobes
Akhil Reni is co-founder and CTO of Strobes, building AI-driven penetration testing and exposure management for security teams.