Aetna · Authentication Profile

Aetna Authentication

Authentication

Aetna secures its APIs with oauth2 across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and clientCredentials flow(s).

Health InsuranceHealthcareFHIRPatient AccessProvider DirectoryDrug FormularyPrior AuthorizationCMS InteroperabilitySMART on FHIRCARIN Blue ButtonDa VinciPayerFortune 100CVS Health
Methods: oauth2 Schemes: 2 OAuth flows: authorizationCode, clientCredentials API key in:

Security Schemes

FHIR_Patient_Allergy_Read_AccessCode_Oauth oauth2
· flows: authorizationCode
FHIR_Application_Oauth oauth2
· flows: clientCredentials

Source

Authentication Profile

Raw ↑
generated: '2026-08-30'
method: searched
source: openapi/aetna-*-openapi.yml (derived baseline from Aetna's 95 published Swagger documents), upgraded
  from https://apif1.aetna.com/fhir/.well-known/smart-configuration (HTTP 200), https://vteapif1.aetna.com/fhirdemo/.well-known/smart-configuration
  (HTTP 200), https://apif1.aetna.com/fhir/v2/patientaccess/metadata, https://apif1.aetna.com/fhir/v1/providerdirectory/metadata,
  https://developerportal.aetna.com/managedcontent/pdfs/Token_Generation_Process-Patient_Access_APIs-Production.pdf,
  https://developerportal.aetna.com/assets/Data/createapp.json
summary:
  types:
  - oauth2
  oauth2_flows:
  - authorizationCode
  - clientCredentials
schemes:
- name: FHIR_Patient_Allergy_Read_AccessCode_Oauth
  type: oauth2
  flows:
  - flow: authorizationCode
    scopes: 4
  sources:
  - openapi/aetna-patient-access-api-openapi.yml
  - openapi/aetna-patient-access-api-sandbox-openapi.yml
  - openapi/aetna-provider-directory-api-openapi.yml
- name: FHIR_Application_Oauth
  type: oauth2
  flows:
  - flow: clientCredentials
    tokenUrl: https://$(catalog.url)/v3/internal/auth/oauth2/app/token
    scopes: 2
  description: "{\n \"BuildEieHeader\" : \"Header 3.2\",\n \"SecurityTemplate\" : \"FHIROpenApp\",\n \"Backend\"\
    \ : \"Non-IIB, FHIRServer APIGEE APIs, requires Mutual TLS\",\n \"Errorhandlingpolicy\": \"Transparent\"\
    \n \"Consumer\":\"External\",\n \"Mutual Auth between Consumer and APIC\" : \"Not Required\"\n}"
  sources:
  - openapi/aetna-provider-directory-api-openapi.yml
docs: https://apif1.aetna.com/fhir/.well-known/smart-configuration
profile: SMART App Launch 1.0.0 over OAuth 2.0 authorization code with PKCE
endpoints:
  production:
    authorize: https://apif1.aetna.com/fhir/prod/v1/fhirserver_auth/oauth2/authorize
    token: https://apif1.aetna.com/fhir/prod/v1/fhirserver_auth/oauth2/token
    discovery: https://apif1.aetna.com/fhir/.well-known/smart-configuration
  sandbox:
    authorize: https://vteapif1.aetna.com/fhirdemo/v1/fhirserver_auth/oauth2/authorize
    token: https://vteapif1.aetna.com/fhirdemo/v1/fhirserver_auth/oauth2/token
    discovery: https://vteapif1.aetna.com/fhirdemo/.well-known/smart-configuration
  discrepancy_note: Aetna publishes two different paths for the same endpoints. The live smart-configuration
    documents give /fhir/prod/v1/fhirserver_auth/... ; the CapabilityStatements and Aetna's own Token Generation
    PDF give /fhir/v1/fhirserver_auth/... . Both are recorded as served. A client should read the smart-configuration
    at runtime rather than hard-coding either.
client_authentication: client_secret_basic (Client ID and Secret sent as an HTTP Basic header)
pkce:
  required_for: public clients
  code_challenge_methods_supported:
  - S256
anonymous_access:
  available: false
  note: 'Nothing in Aetna''s API surface is callable anonymously. Even the provider directory, which carries
    no member data and which several peer payers expose openly, declares oauth2 on every operation. Two things
    ARE anonymously readable and are the only unauthenticated surface: the two FHIR CapabilityStatements at
    /metadata and the two smart-configuration documents.'
registration:
  model: portal registration, then per-application, then per-product subscription
  portal: https://developerportal.aetna.com/
  applicant_types:
  - third-party developer application
  - payer (payer-to-payer data exchange)
  - EHR application
  - provider system
  - ECS Provider organization (added 2026-08-19)
  note: A call to a product the application is not subscribed to returns 401, per Aetna's own error reference.
    Production applications go through a review, not a purchase; the production-access mailbox is AetnaInteroperabilityProductionAccess@AETNA.com.
identity_assurance:
  ial2_supported: true
  since: '2026-06-25'
  credential_service_providers:
  - CLEAR
  - ID.me
  standard: NIST SP 800-63A Identity Assurance Level 2
  note: Optional. The alternative Aetna calls "Well-Known Authentication" uses the member's Aetna username
    and password. IAL2 applications cannot use the Sandbox environment.
spec_template_warning: Every published Swagger declares its oauth2 tokenUrl/authorizationUrl as the un-substituted
  IBM API Connect template https://$(catalog.url)/... - a literal placeholder, not a URL. Any tool that generates
  a client straight from Aetna's Swagger will emit a broken auth configuration. The endpoints block above carries
  the real values.

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/aetna-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.