openapi: 3.1.0 info: title: Yahoo (formerly AOL) OAuth 2.0 and OpenID Connect OAuth2 API description: 'Yahoo OAuth 2.0 and OpenID Connect endpoints used by developers building on the Yahoo / former AOL identity platform. Following AOL''s acquisition by Verizon and merger with Yahoo, AOL developer identity APIs have been consolidated into the Yahoo Developer Network. The OAuth 2.0 Authorization Code grant is the supported flow; OpenID Connect adds a userinfo endpoint and a JWKS endpoint exposed at api.login.yahoo.com. This specification is generated from the public Yahoo Developer Network OAuth 2.0 / OpenID Connect documentation and the OpenID Connect discovery document at https://login.yahoo.com/.well-known/openid-configuration. ' version: 1.0.0 contact: name: Yahoo Developer Support url: https://developer.yahoo.com/forum/ license: name: Yahoo Terms of Service url: https://legal.yahoo.com/us/en/yahoo/terms/otos/index.html servers: - url: https://api.login.yahoo.com description: Yahoo identity / OAuth 2.0 / OpenID Connect server tags: - name: OAuth2 description: OAuth 2.0 Authorization Code grant endpoints paths: /oauth2/request_auth: get: tags: - OAuth2 summary: Authorization request description: 'Redirects the user to Yahoo''s authorization page where the user authenticates and grants the requesting application access. On success Yahoo redirects back to `redirect_uri` with a `code` query parameter that can be exchanged at the token endpoint. ' operationId: requestAuth parameters: - name: client_id in: query required: true description: Consumer Key issued when registering an app at developer.yahoo.com schema: type: string - name: redirect_uri in: query required: true description: URI Yahoo will redirect to after the user authorizes the app schema: type: string format: uri - name: response_type in: query required: true description: Must be `code` for the Authorization Code grant schema: type: string enum: - code - name: scope in: query required: false description: Space-separated OpenID Connect scopes (for example `openid profile email`) schema: type: string - name: state in: query required: false description: Opaque value returned unchanged on the redirect; use to prevent CSRF schema: type: string - name: language in: query required: false description: Language identifier for the Yahoo authorization UI schema: type: string default: en-us responses: '302': description: Redirect to the configured `redirect_uri` with `code` and `state` query parameters on success, or with `error` on failure. /oauth2/get_token: post: tags: - OAuth2 summary: Token exchange and refresh description: 'Exchanges an authorization code for access and refresh tokens, or exchanges a refresh token for a new access token. The `grant_type` parameter selects the behaviour. Client credentials may be passed in the body or in an `Authorization: Basic` header with base64-encoded `client_id:client_secret`. ' operationId: getToken security: - basicAuth: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - client_id - client_secret - redirect_uri - grant_type properties: client_id: type: string description: Consumer Key client_secret: type: string description: Consumer Secret redirect_uri: type: string format: uri description: Same redirect URI used in the authorization request grant_type: type: string enum: - authorization_code - refresh_token description: Selects code exchange or refresh-token exchange code: type: string description: Authorization code returned from /oauth2/request_auth (required when grant_type=authorization_code) refresh_token: type: string description: Previously issued refresh token (required when grant_type=refresh_token) responses: '200': description: Token response content: application/json: schema: $ref: '#/components/schemas/TokenResponse' '400': description: Invalid request content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Invalid client authentication content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Error: type: object properties: error: type: string error_description: type: string TokenResponse: type: object properties: access_token: type: string token_type: type: string example: bearer expires_in: type: integer description: Lifetime of the access token in seconds refresh_token: type: string id_token: type: string description: Signed JWT ID token (when the `openid` scope is requested) xoauth_yahoo_guid: type: string description: Yahoo GUID of the authenticated user securitySchemes: basicAuth: type: http scheme: basic description: HTTP Basic authentication with base64-encoded `client_id:client_secret` bearerAuth: type: http scheme: bearer bearerFormat: JWT description: OAuth 2.0 Bearer access token oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://api.login.yahoo.com/oauth2/request_auth tokenUrl: https://api.login.yahoo.com/oauth2/get_token scopes: openid: OpenID Connect authentication profile: Basic profile information email: Email address