Prerequisites

  • API base URL (e.g. https://api.target.com)
  • Authorization token (Bearer, API key, or OAuth client credentials)
  • OpenAPI / Swagger spec file (.json or .yaml) — highly recommended
  • GraphQL endpoint URL if applicable
  • At least one valid authenticated user account
  • Second user account for BOLA/IDOR testing (different role/tenant)
  1. 1

    Select API Pentest from Home Screen

    Click 🔌 API Pentest. The wizard opens pre-configured for API testing with API-specific questions.

  2. 2

    Answer API-Specific Wizard Questions

    API Base URL : https://api.target.com/v1 Auth Type : Bearer JWT / API Key / OAuth2 / Basic / None OpenAPI Spec : Upload spec file or enter Swagger URL GraphQL : Yes → enter endpoint URL Rate Limiting : Observed? Yes/No (affects fuzzing speed) User Accounts : User A (standard) + User B (different tenant/role) Business Context : e.g. "multi-tenant SaaS, users have orgs and projects"
  3. 3

    Claude Runs the API Test Suite

    Claude orchestrates the full API test pipeline automatically:

    Phase 1: Route discovery — kiterunner brute-force (if no spec) Phase 2: Auth analysis — JWT decode, algorithm confusion, key strength Phase 3: BOLA testing — swap User A object IDs with User B token Phase 4: Mass assignment — extra fields in POST/PUT/PATCH bodies Phase 5: Injection — SQL/NoSQL/SSTI in all parameters Phase 6: Rate limits — threshold testing per endpoint Phase 7: GraphQL — introspection, batch attacks, field suggestions Phase 8: Business logic — AI-driven logic flaw discovery
  4. 4

    Review Findings and Generate API Security Report

    All confirmed findings include: endpoint, HTTP method, request/response PoC, CVSS score, and remediation. Generate the Technical Report for full API security coverage.

⏱️ Typical duration: 20–90 minutes for a mid-size API (100–500 endpoints).

Common Issues

The API may require authentication headers for route discovery. Add -H "Authorization: Bearer $TOKEN". Also try different wordlists: -w assetnote-api-routes.kite. If the API uses versioning, try the base path with --base-path /api/v1/.

The authorization check may only apply to direct ID access. Try: object references in nested resources (/users/me/documents/123), parameter pollution (?user_id=victim_id), HTTP method switching (GET vs POST), and indirect reference maps (look for GUIDs that map to sequential IDs).

Use field suggestion attacks: send queries with typos to trigger "did you mean X?" suggestions that leak schema. Use Clairvoyance tool for blind schema extraction. Check if introspection works in development mode (different endpoint or header).