Security engineers and API documentation teams face a persistent challenge: keeping per-endpoint authentication requirements accurate and synchronized with the live API contract. An OpenAPI spec may declare security schemes at the top level, but individual endpoints often override, extend, or omit those schemes. Implementation code adds another layer of truth with middleware annotations, scope checks, and conditional auth logic that specs alone cannot capture. This prompt extracts authentication requirements from OpenAPI security scheme objects, source code annotations, or both, producing a structured per-endpoint auth table that includes method type, token format, required scopes, OAuth flow details, and consistency warnings against actual auth middleware.
Prompt
Authentication Requirements Extraction Prompt

When to Use This Prompt
Determine when extracting authentication requirements from OpenAPI specs and source code is the right approach versus simpler alternatives.
Use this prompt when you need to generate or audit authentication documentation that must match the real behavior of your API, not just the spec file. It is appropriate when your API has multiple authentication methods across endpoints, when OAuth scopes vary by operation, when middleware enforces rules that differ from what the spec declares, or when you are preparing for a security audit that requires per-endpoint auth traceability. The prompt works best when you can provide both the OpenAPI specification and relevant source code files containing auth middleware, decorators, or annotations. If you only have a spec file without implementation access, the prompt will still produce useful output but will flag gaps where code-level verification is impossible.
Do not use this prompt for APIs with a single, uniform authentication method applied globally without endpoint-level overrides—a simple paragraph in your docs will suffice. Avoid it when your auth logic is entirely external, such as when an API gateway handles all authentication before requests reach your service and no per-endpoint differentiation exists in code or spec. This prompt is also overkill for internal tools with no auth requirements or for documentation drafts where approximate auth descriptions are acceptable. For those cases, a manual summary or a simpler template will be faster and less prone to false precision. If your goal is to document OAuth provider configuration, token endpoint details, or user-facing login flows rather than per-endpoint requirements, use a dedicated authentication overview prompt instead.
Before running this prompt, gather your OpenAPI spec file and identify the source files containing auth middleware, route decorators, or security annotations. If your codebase uses a framework like FastAPI, Express, Spring Security, or Django REST Framework, point the prompt at the specific files where @requires_auth, @scope, security=[...], or equivalent constructs appear. The prompt's value scales with the complexity of your auth surface—APIs with ten endpoints and two scopes may not justify the extraction effort, while APIs with hundreds of endpoints, multiple OAuth flows, and scope matrices will benefit significantly. After extraction, always validate the output against a sample of actual API calls with different credential types to confirm the documented requirements match runtime behavior.
Use Case Fit
Where this prompt delivers value and where you should choose a different approach.
Good Fit: Security Specs with Live Middleware
Use when: you have OpenAPI security schemes or implementation code and need per-endpoint auth tables. Guardrail: always cross-reference extracted requirements against actual auth middleware configuration to catch drift.
Bad Fit: Undocumented Legacy Systems
Avoid when: auth logic exists only in tribal knowledge or scattered across unannotated legacy code. Guardrail: if source material lacks structured security definitions, invest in manual documentation before prompting; the model will hallucinate plausible but wrong auth flows.
Required Inputs
What you need: OpenAPI security scheme objects, auth middleware source code, or annotated endpoint definitions. Guardrail: missing scope definitions or token types produce incomplete output; validate input completeness before running the prompt.
Operational Risk: Stale Auth Docs
Risk: extracted auth requirements become outdated when middleware changes without doc regeneration. Guardrail: wire this prompt into CI/CD so auth docs regenerate on every security-related code change; treat output as build artifact, not one-off documentation.
Scope Drift Across Endpoints
Risk: inconsistent scope naming between extracted docs and actual token validation logic. Guardrail: add an eval step that compares extracted scopes against middleware scope constants; flag any mismatch as a blocking validation error.
OAuth Flow Complexity
Risk: authorization code, client credentials, and device flows get conflated in extraction. Guardrail: require the prompt to output a separate OAuth flow table with grant types, token endpoints, and PKCE requirements; validate against your identity provider configuration.
Copy-Ready Prompt Template
Paste this prompt into your AI harness to extract per-endpoint authentication requirements from OpenAPI specs or implementation code.
This prompt template extracts authentication and authorization requirements from OpenAPI security schemes, source code annotations, or middleware configurations. It produces a structured table mapping each endpoint to its required auth method, token type, OAuth scopes, and any conditional access rules. Use this when you need to generate or audit authentication documentation that stays synchronized with the actual security implementation.
codeYou are an authentication documentation extractor. Your task is to analyze the provided API specification or implementation code and produce a structured inventory of authentication requirements for every endpoint. ## INPUT [OPENAPI_SPEC_OR_CODE] ## OUTPUT SCHEMA Return a JSON object with the following structure: { "api_title": "string", "auth_methods_defined": [ { "scheme_name": "string", "type": "http | apiKey | oauth2 | openIdConnect | mutualTls | custom", "description": "string", "scheme_details": { "scheme": "bearer | basic | digest | other", "bearerFormat": "JWT | opaque | other | null", "in": "header | query | cookie | null", "name": "string | null" }, "oauth_flows": { "flow_type": "implicit | password | clientCredentials | authorizationCode | null", "authorizationUrl": "string | null", "tokenUrl": "string | null", "refreshUrl": "string | null", "scopes": { "scope_name": "scope_description" } } | null } ], "global_security_requirements": [ { "scheme_name": "string", "scopes": ["string"] } ], "endpoint_auth": [ { "path": "string", "method": "GET | POST | PUT | PATCH | DELETE | HEAD | OPTIONS", "summary": "string", "operationId": "string | null", "security_requirements": [ { "scheme_name": "string", "scopes": ["string"], "scope_descriptions": { "scope_name": "scope_description" } } ], "overrides_global": true | false, "auth_optional": true | false, "notes": "string | null" } ], "inconsistencies": [ { "severity": "error | warning | info", "path": "string | null", "method": "string | null", "description": "string", "recommendation": "string" } ], "extraction_confidence": "high | medium | low", "extraction_notes": "string" } ## CONSTRAINTS - Extract every endpoint path and method combination present in the input. - If an endpoint has no explicit security requirement, check whether it inherits global security or is intentionally unauthenticated. Flag both cases explicitly. - For OAuth2 flows, enumerate every scope defined in the spec, not just scopes referenced by endpoints. - If the input is implementation code rather than an OpenAPI spec, infer auth requirements from middleware annotations, decorators, guard clauses, or configuration files. - Flag as inconsistencies: endpoints with no security definition when global security exists, scopes referenced by endpoints but not defined in the scheme, schemes referenced but not defined, and endpoints that appear to require multiple conflicting auth methods. - Set extraction_confidence to "low" if the input is ambiguous about auth requirements, and explain why in extraction_notes. - Do not invent auth methods, scopes, or requirements not present in the input. ## EXAMPLES [OPTIONAL_FEW_SHOT_EXAMPLES] ## RISK LEVEL [RISK_LEVEL: standard | high] If RISK_LEVEL is "high", include an additional field "requires_human_review": true in the output and flag every inferred or ambiguous auth requirement for manual verification.
After pasting this template, replace [OPENAPI_SPEC_OR_CODE] with your actual OpenAPI JSON/YAML or relevant code sections. If you have few-shot examples of correctly extracted auth tables from your own API surface, add them to [OPTIONAL_FEW_SHOT_EXAMPLES] to improve consistency with your team's documentation style. Set [RISK_LEVEL] to "high" when documenting authentication for production APIs that handle sensitive data, payment methods, or personally identifiable information—this forces the model to flag every inference for human review. Before wiring this into an automated pipeline, validate the output against your actual auth middleware configuration to catch extraction errors early.
Prompt Variables
Every placeholder the Authentication Requirements Extraction Prompt expects, why it matters, and how to validate it before execution.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[OPENAPI_SPEC] | Raw OpenAPI 3.x YAML or JSON containing securitySchemes and per-operation security requirements | openapi: 3.0.3 components: securitySchemes: BearerAuth: type: http scheme: bearer | Parse as valid OpenAPI 3.x object. Reject if securitySchemes block is missing or empty. Validate YAML/JSON syntax before prompt assembly. |
[AUTH_MIDDLEWARE_CODE] | Source code of authentication middleware or guards that enforce auth at runtime | const authMiddleware = (req, res, next) => { if (!req.headers.authorization) return res.status(401).json({ error: 'Missing token' }); next(); } | Must contain at least one auth check pattern (token validation, scope check, API key lookup). If empty, set to null and flag that runtime enforcement cannot be verified. |
[ENDPOINT_FILTER] | Optional list of endpoint paths or operationIds to scope extraction; omit to process all endpoints | ["/users/{id}", "getPetById"] | Validate each entry matches an actual path or operationId in the spec. Warn if filter excludes all security-defined endpoints. Allow null for full-spec extraction. |
[OUTPUT_FORMAT] | Desired output structure: per-endpoint table, security scheme summary, or combined report | "per_endpoint_table" | Must be one of: per_endpoint_table, scheme_summary, combined_report. Default to combined_report if missing. Reject unknown values. |
[INCLUDE_OAUTH_FLOWS] | Whether to expand OAuth2 flow details including authorization URLs, token URLs, and refresh behavior | Boolean. If true, prompt must extract grant types, endpoints, and PKCE support from flows object. If false, only list OAuth2 scheme name and scopes. | |
[SCOPE_CONSISTENCY_CHECK] | Whether to cross-reference scopes declared in security requirements against those defined in securitySchemes | Boolean. If true, prompt must flag scopes used in endpoint security but not defined in the scheme's scopes map, and vice versa. Requires both spec and middleware code for full check. | |
[MIDDLEWARE_SPEC_MISMATCH_FLAG] | Whether to compare auth middleware enforcement against spec-declared security and flag discrepancies | Boolean. If true, requires [AUTH_MIDDLEWARE_CODE] to be non-null. Prompt must report endpoints where middleware enforces auth but spec marks as optionalSecurity or no security, and vice versa. |
Implementation Harness Notes
How to wire the Authentication Requirements Extraction Prompt into a documentation pipeline, CI/CD workflow, or auth audit tool.
This prompt is designed to be integrated into an automated documentation pipeline, not used as a one-off manual query. The primary integration point is a CI/CD step that runs after OpenAPI spec changes or auth middleware updates. When a pull request modifies securitySchemes, security blocks, or authentication middleware files, the pipeline should trigger this prompt to regenerate the per-endpoint auth tables. The prompt expects a structured [INPUT] containing the OpenAPI fragment or code annotations, and it returns a machine-readable [OUTPUT_SCHEMA] that can be validated before merging into your docs site or developer portal.
The implementation harness should enforce a strict validation layer before accepting the model's output. After the prompt returns, run a schema validator against the expected JSON structure: each endpoint must have a non-empty auth_methods array, each method must include type, scopes, token_lifetime, and oauth_flow fields where applicable. Add a consistency check that compares the extracted auth requirements against the actual auth middleware configuration—flag any endpoint that the prompt claims requires a Bearer token but the middleware allows unauthenticated access. For high-risk APIs (auth, payments, user data), require a human approval step in the pipeline: the generated auth tables are staged as a PR comment, and a security engineer must approve before the docs are published. Log every prompt run with the input spec version, output hash, validation results, and reviewer identity for audit trails.
Choose a model with strong structured output support and low hallucination rates on technical specification tasks. GPT-4o or Claude 3.5 Sonnet with strict JSON mode enabled are appropriate defaults. Set temperature to 0 or near-zero to maximize consistency across runs. Implement a retry strategy: if validation fails, retry up to two times with the validation errors appended to the [CONSTRAINTS] field. If the output still fails after retries, escalate to a human reviewer and block the docs merge. Do not use this prompt for real-time auth checks or as a substitute for actual security enforcement—it documents what the spec claims, not what the running system enforces. Pair this prompt with the API Contract Drift Detection Prompt to catch discrepancies between documented auth and live behavior.
Expected Output Contract
The exact JSON structure, field types, and validation rules the output must satisfy before it is accepted. Use this contract to validate the extracted authentication requirements before they enter your documentation pipeline or API gateway configuration.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
endpoint | object | Must contain path and method. Path must start with /. Method must be one of GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS. | |
endpoint.path | string | Must match an actual route pattern from the source spec or code. No trailing slash unless defined in source. | |
endpoint.method | string | Must be uppercase. Must match the HTTP method declared in the source OpenAPI operation or route annotation. | |
auth_methods | array of objects | Array must not be empty if the endpoint requires authentication. Each object must include type, scheme_name, and scopes. | |
auth_methods[].type | string | Must be one of: http, apiKey, oauth2, openIdConnect, mutualTLS. Must match the security scheme type declared in the OpenAPI spec or middleware annotation. | |
auth_methods[].scheme_name | string | Must match a defined security scheme name from the source spec. Null not allowed when type is present. | |
auth_methods[].scopes | array of strings | Required when type is oauth2. Each scope string must match a scope defined in the source OAuth flow. Empty array allowed only if endpoint requires no scopes beyond default. | |
auth_methods[].token_location | string | Must be one of: header, query, cookie. For apiKey type, must match the in field from the security scheme definition. | |
auth_methods[].header_name | string | Required when token_location is header. Must match the name field from the apiKey scheme or standard Authorization header for http type. | |
is_public | boolean | Must be true only if no security schemes apply to this endpoint in the source spec. Must be false if any auth_methods are present. Inconsistency triggers a schema validation failure. | |
notes | string or null | Free text for edge cases such as optional auth, conditional scope requirements, or deprecated schemes. Must not duplicate structured fields. Null allowed when no notes exist. | |
source_evidence | object | Must contain file and line or spec_path and operation_id. Used for traceability and drift detection. | |
source_evidence.file | string | Required when extraction source is code. Must be a relative path from the repository root. | |
source_evidence.line | integer | Required when extraction source is code. Must be a positive integer. | |
source_evidence.spec_path | string | Required when extraction source is an OpenAPI spec. Must be a JSON Pointer path to the operation object, e.g., /paths/ | |
source_evidence.operation_id | string | Must match the operationId from the source spec or a derived identifier from the code annotation. Used as the primary key for drift detection. | |
consistency_checks | object | Must contain middleware_match and scope_coverage. Used by the harness to flag discrepancies before accepting output. | |
consistency_checks.middleware_match | boolean | Must be true if the extracted auth methods match the actual middleware or decorator applied in the implementation code. False triggers a human review flag. | |
consistency_checks.scope_coverage | string | Must be one of: full, partial, none. full means all required scopes are documented. partial triggers a warning. none triggers a rejection if the endpoint requires scopes. |
Common Failure Modes
What breaks first when extracting authentication requirements from OpenAPI specs or implementation code, and how to prevent each failure before it reaches production documentation.
Missing Security Scheme Mapping
What to watch: The prompt extracts auth methods from endpoint-level security blocks but misses the global components/securitySchemes definitions, producing orphaned references like 'bearerAuth' without explaining what that scheme actually is. Guardrail: Require the prompt to resolve every security scheme reference back to its components/securitySchemes definition before outputting any auth table. Add a post-extraction validator that checks every scheme name in the output exists in the source spec's components section.
OAuth Flow Incompleteness
What to watch: The prompt lists OAuth scopes per endpoint but omits the grant type, token endpoint URL, refresh token behavior, or authorization URL from the security scheme definition. Documentation consumers can't actually implement the flow. Guardrail: Define a required OAuth output schema that includes grant_type, authorization_url, token_url, refresh_url, and scopes as mandatory fields. Run a schema validator post-generation and flag any OAuth entry missing these fields for human review.
Scope Drift Between Endpoints and Scheme Definitions
What to watch: An endpoint declares a scope like write:orders that doesn't appear in the OAuth security scheme's scope enumeration, or the scheme defines scopes that no endpoint actually uses. Guardrail: Cross-reference every scope in endpoint-level security requirements against the scheme's declared scopes. Flag mismatches as a spec inconsistency rather than silently accepting either side. Include a drift report field in the output that calls out orphaned and undeclared scopes explicitly.
Auth Method Override Confusion
What to watch: The OpenAPI spec declares a global security requirement but individual endpoints override it with different schemes or an empty security array. The prompt flattens everything into one table and loses the override hierarchy. Guardrail: Structure output to show the effective auth method per endpoint, with explicit notation when an endpoint overrides the global default. Include a column indicating whether the auth requirement is inherited or overridden, and test with a spec that has at least one endpoint with an empty security: [] array.
Implementation Code Mismatch
What to watch: The prompt extracts auth requirements from OpenAPI but the actual auth middleware in code enforces different scopes, checks additional headers, or uses a different token validation pattern. Documentation drifts from reality immediately. Guardrail: Pair the spec extraction with an implementation check prompt that reads auth middleware decorators or guards from source code. Diff the two outputs and flag any endpoint where the spec claims one auth method but the code enforces another. Require human sign-off on all diffs before publishing.
API Key Location Ambiguity
What to watch: The security scheme says in: header and name: X-API-Key but the prompt outputs 'API key required' without specifying whether it goes in a header, query parameter, or cookie. Integrators guess wrong and get 401 errors. Guardrail: Require the output to always include the in location and name value from the security scheme object. Add a validation rule that rejects any API key entry missing the location field. Test with specs that use query-parameter API keys to catch location omission.
Evaluation Rubric
Criteria for testing the quality and safety of extracted authentication requirements before integrating this prompt into your documentation pipeline.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Auth Method Completeness | Every security scheme defined in [OPENAPI_SPEC] is listed for each endpoint | An endpoint has no auth method listed but the spec defines security requirements | Parse [OPENAPI_SPEC] security and securitySchemes objects; diff against extracted output |
Scope Accuracy | Required OAuth scopes match the spec exactly for each endpoint and operation | Extracted scopes are missing, extra, or reordered compared to the spec | Extract scopes from security requirements in [OPENAPI_SPEC]; compare string sets per operationId |
Token Type Correctness | Token type matches the security scheme definition (bearer, basic, apiKey, mutualTLS) | Bearer token documented for an apiKey scheme or vice versa | Validate extracted token type against scheme type in [OPENAPI_SPEC] components/securitySchemes |
OAuth Flow Description Accuracy | Flow type, authorization URL, token URL, and refresh URL match the spec | Flow type is wrong or URLs are hallucinated when not present in the spec | Compare extracted flow details against the flows object in [OPENAPI_SPEC] securitySchemes |
No Hallucinated Auth Methods | No auth methods are documented that do not exist in [OPENAPI_SPEC] or [SOURCE_CODE] | Output includes OAuth when only API key is defined, or adds scopes not in the spec | Check extracted auth methods against the union of spec-defined and code-defined methods |
Middleware Consistency Check | Auth method matches the actual middleware or decorator found in [SOURCE_CODE] | Endpoint documented as public but code shows an auth middleware; or vice versa | Parse auth decorators/middleware from [SOURCE_CODE]; cross-reference with extracted output |
Optional vs Required Flagging | Auth is correctly marked as optional or required per endpoint based on spec and code | An endpoint with no security in spec but auth middleware in code is marked as public | Check for endpoints where spec security is empty but code has auth; flag mismatches |
Human-Readable Description Quality | Each auth method includes a plain-language description suitable for a developer guide | Description is missing, is a raw schema dump, or contains placeholder text | Manual review of description field for clarity, completeness, and actionable setup steps |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a single OpenAPI file or code snippet. Skip strict schema validation on output—focus on getting a readable auth table per endpoint. Replace [AUTH_MIDDLEWARE_SOURCE] with a file path or inline code block. Remove the consistency-check instruction if you're iterating fast.
Watch for
- Missing scope-to-endpoint mappings when the spec uses
securityat the path level instead of the operation level - Overly broad instructions producing narrative prose instead of structured tables
- No distinction between required and optional auth methods

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us