FusionAuth Identity Provider API
The Identity Provider API from FusionAuth — 9 operation(s) for identity provider.
The Identity Provider API from FusionAuth — 9 operation(s) for identity provider.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/fusionauth-identity-provider-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
version: 1.66.0
title: FusionAuth Api Key Identity Provider API
description: This is a FusionAuth server. Find out more at [https://fusionauth.io](https://fusionauth.io). You need to [set up an API key](https://fusionauth.io/docs/v1/tech/apis/authentication#managing-api-keys) in the FusionAuth instance you are using to test out the API calls.
license:
name: Apache2
servers:
- url: http://localhost:9011
- url: https://sandbox.fusionauth.io
security:
- ApiKeyAuth: []
tags:
- name: Identity Provider
paths:
/api/identity-provider:
post:
description: Creates an identity provider. You can optionally specify an Id for the identity provider, if not provided one will be generated.
operationId: createIdentityProvider
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
get:
description: Retrieves one or more identity provider for the given type. For types such as Google, Facebook, Twitter and LinkedIn, only a single identity provider can exist. For types such as OpenID Connect and SAMLv2 more than one identity provider can be configured so this request may return multiple identity providers.
operationId: retrieveIdentityProviderByTypeWithId
parameters:
- name: type
in: query
schema:
type: string
description: The type of the identity provider.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
/api/identity-provider/link:
post:
description: Link an external user from a 3rd party identity provider to a FusionAuth user.
operationId: createUserLinkWithId
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderLinkRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderLinkResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
delete:
description: Remove an existing link that has been made from a 3rd party identity provider to a FusionAuth user.
operationId: deleteUserLinkWithId
parameters:
- name: identityProviderId
in: query
schema:
type: string
description: The unique Id of the identity provider.
- name: identityProviderUserId
in: query
schema:
type: string
description: The unique Id of the user in the 3rd party identity provider to unlink.
- name: userId
in: query
schema:
type: string
description: The unique Id of the FusionAuth user to unlink.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderLinkResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
get:
description: Retrieve all Identity Provider users (links) for the user. Specify the optional identityProviderId to retrieve links for a particular IdP. OR Retrieve a single Identity Provider user (link).
operationId: retrieveIdentityProviderLink
parameters:
- name: identityProviderId
in: query
schema:
type: string
description: The unique Id of the identity provider. Specify this value to reduce the links returned to those for a particular IdP.
- name: userId
in: query
schema:
type: string
description: The unique Id of the user.
- name: identityProviderUserId
in: query
schema:
type: string
description: The unique Id of the user in the 3rd party identity provider.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderLinkResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
/api/identity-provider/link/pending/{pendingLinkId}:
get:
description: Retrieve a pending identity provider link. This is useful to validate a pending link and retrieve meta-data about the identity provider link.
operationId: retrievePendingLinkWithId
parameters:
- name: userId
in: query
schema:
type: string
description: The optional userId. When provided additional meta-data will be provided to identify how many links if any the user already has.
- name: pendingLinkId
in: path
schema:
type: string
required: true
description: The pending link Id.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderPendingLinkResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
/api/identity-provider/login:
post:
description: Handles login via third-parties including Social login, external OAuth and OpenID Connect, and other login systems.
operationId: identityProviderLoginWithId
parameters:
- in: header
name: X-FusionAuth-TenantId
description: The unique Id of the tenant used to scope this API request. Only required when there is more than one tenant and the API key is not tenant-scoped.
required: false
schema:
type: string
format: UUID
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderLoginRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LoginResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
/api/identity-provider/lookup:
get:
description: Retrieves the identity provider for the given domain and tenantId. A 200 response code indicates the domain is managed by a registered identity provider. A 404 indicates the domain is not managed. OR Retrieves any global identity providers for the given domain. A 200 response code indicates the domain is managed by a registered identity provider. A 404 indicates the domain is not managed.
operationId: retrieveIdentityProviderLookup
parameters:
- name: domain
in: query
schema:
type: string
description: The domain or email address to lookup.
- name: tenantId
in: query
schema:
type: string
description: If provided, the API searches for an identity provider scoped to the corresponding tenant that manages the requested domain. If no result is found, the API then searches for global identity providers.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LookupResponse'
default:
description: Error
tags:
- Identity Provider
/api/identity-provider/search:
post:
description: Searches identity providers with the specified criteria and pagination.
operationId: searchIdentityProvidersWithId
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderSearchRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderSearchResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
/api/identity-provider/start:
post:
description: Begins a login request for a 3rd party login that requires user interaction such as HYPR.
operationId: startIdentityProviderLoginWithId
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderStartLoginRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderStartLoginResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
/api/identity-provider/test:
get:
description: Retrieves the results for an identity provider connection test.
operationId: retrieveIdentityProviderConnectionTestResultsWithId
parameters:
- name: connectionTestId
in: query
schema:
type: string
description: The connection test id to retrieve results for.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderConnectionTestResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
post:
description: Begins an identity provider connection test.
operationId: startIdentityProviderConnectionTestWithId
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderConnectionTestRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderConnectionTestResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
/api/identity-provider/{identityProviderId}:
post:
description: Creates an identity provider. You can optionally specify an Id for the identity provider, if not provided one will be generated.
operationId: createIdentityProviderWithId
parameters:
- name: identityProviderId
in: path
schema:
type: string
required: true
description: The Id of the identity provider. If not provided a secure random UUID will be generated.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
delete:
description: Deletes the identity provider for the given Id.
operationId: deleteIdentityProviderWithId
parameters:
- name: identityProviderId
in: path
schema:
type: string
required: true
description: The Id of the identity provider to delete.
responses:
'200':
description: Success
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
patch:
description: Updates, via PATCH, the identity provider with the given Id.
operationId: patchIdentityProviderWithId
parameters:
- name: identityProviderId
in: path
schema:
type: string
required: true
description: The Id of the identity provider to update.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
get:
description: Retrieves the identity provider for the given Id or all the identity providers if the Id is null.
operationId: retrieveIdentityProviderWithId
parameters:
- name: identityProviderId
in: path
schema:
type: string
required: true
description: The identity provider Id.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
put:
description: Updates the identity provider with the given Id.
operationId: updateIdentityProviderWithId
parameters:
- name: identityProviderId
in: path
schema:
type: string
required: true
description: The Id of the identity provider to update.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/IdentityProviderResponse'
default:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
tags:
- Identity Provider
components:
schemas:
SAMLv2AssertionDecryptionConfiguration:
description: Configuration for encrypted assertions when acting as SAML Service Provider
type: object
properties:
keyTransportDecryptionKeyId:
type: string
format: uuid
enabled:
type: boolean
LoginHintConfiguration:
description: ''
type: object
properties:
parameterName:
type: string
enabled:
type: boolean
IdentityProviderResponse:
description: ''
type: object
properties:
identityProvider:
$ref: '#/components/schemas/IdentityProviderField'
identityProviders:
type: array
items:
$ref: '#/components/schemas/IdentityProviderField'
OpenIdConnectApplicationConfiguration:
description: ''
type: object
properties:
buttonImageURL:
type: string
format: URI
buttonText:
type: string
oauth2:
$ref: '#/components/schemas/IdentityProviderOauth2Configuration'
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
MetaData:
type: object
properties:
data:
type: object
additionalProperties:
type: object
device:
$ref: '#/components/schemas/DeviceInfo'
scopes:
type: array
uniqueItems: true
items: {}
HYPRApplicationConfiguration:
description: ''
type: object
properties:
relyingPartyApplicationId:
type: string
relyingPartyURL:
type: string
format: URI
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
XboxApplicationConfiguration:
description: ''
type: object
properties:
buttonText:
type: string
client_id:
type: string
client_secret:
type: string
scope:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
SAMLv2AssertionConfiguration:
description: ''
type: object
properties:
destination:
$ref: '#/components/schemas/SAMLv2DestinationAssertionConfiguration'
SonyPSNApplicationConfiguration:
description: ''
type: object
properties:
buttonText:
type: string
client_id:
type: string
client_secret:
type: string
scope:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
BreachedPasswordStatus:
description: ''
type: string
enum:
- None
- ExactMatch
- SubAddressMatch
- PasswordOnly
- CommonPassword
IdentityProviderConnectionTestRequest:
description: A request for interacting with the identity provider connection test API
type: object
properties:
identityProviderId:
type: string
format: uuid
tenantId:
type: string
format: uuid
DeviceInfo:
description: ''
type: object
properties:
description:
type: string
lastAccessedAddress:
type: string
lastAccessedInstant:
$ref: '#/components/schemas/ZonedDateTime'
name:
type: string
type:
type: string
IdentityProviderSearchResponse:
description: Identity Provider response.
type: object
properties:
identityProviders:
type: array
items:
$ref: '#/components/schemas/IdentityProviderField'
total:
type: integer
format: int64
SteamAPIMode:
description: Steam API modes.
type: string
enum:
- Public
- Partner
EventInfo:
description: Information about a user event (login, register, etc) that helps identify the source of the event (location, device type, OS, etc).
type: object
properties:
data:
type: object
additionalProperties:
type: object
deviceDescription:
type: string
deviceName:
type: string
deviceType:
type: string
ipAddress:
type: string
location:
$ref: '#/components/schemas/Location'
os:
type: string
userAgent:
type: string
NintendoApplicationConfiguration:
description: ''
type: object
properties:
buttonText:
type: string
client_id:
type: string
client_secret:
type: string
emailClaim:
type: string
scope:
type: string
uniqueIdClaim:
type: string
usernameClaim:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
SAMLv2IdPInitiatedIdentityProvider:
description: SAML v2 IdP Initiated identity provider configuration.
type: object
properties:
issuer:
type: string
assertionDecryptionConfiguration:
$ref: '#/components/schemas/SAMLv2AssertionDecryptionConfiguration'
emailClaim:
type: string
keyId:
type: string
format: uuid
uniqueIdClaim:
type: string
useNameIdForEmail:
type: boolean
usernameClaim:
type: string
ProviderLambdaConfiguration:
type: object
properties:
reconcileId:
type: string
format: uuid
IdentityType:
description: Model identity types provided by FusionAuth.
type: object
properties:
name:
type: string
AppleApplicationConfiguration:
description: ''
type: object
properties:
bundleId:
type: string
buttonText:
type: string
keyId:
type: string
format: uuid
scope:
type: string
servicesId:
type: string
teamId:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
IdentityProviderLoginStep:
type: object
properties:
detail:
type: string
success:
type: boolean
title:
type: string
UserTwoFactorConfiguration:
description: ''
type: object
properties:
methods:
type: array
items:
$ref: '#/components/schemas/TwoFactorMethod'
recoveryCodes:
type: array
items:
type: string
IdentityProviderTenantConfiguration:
description: ''
type: object
properties:
data:
type: object
additionalProperties:
type: object
limitUserLinkCount:
$ref: '#/components/schemas/IdentityProviderLimitUserLinkingPolicy'
GoogleApplicationConfiguration:
description: ''
type: object
properties:
buttonText:
type: string
client_id:
type: string
client_secret:
type: string
loginMethod:
$ref: '#/components/schemas/IdentityProviderLoginMethod'
properties:
$ref: '#/components/schemas/GoogleIdentityProviderProperties'
scope:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
GroupMember:
description: A User's membership into a Group
type: object
properties:
data:
type: object
additionalProperties:
type: object
groupId:
type: string
format: uuid
id:
type: string
format: uuid
insertInstant:
$ref: '#/components/schemas/ZonedDateTime'
userId:
type: string
format: uuid
IdentityProviderLinkingStrategy:
description: The IdP behavior when no user link has been made yet.
type: string
enum:
- CreatePendingLink
- Disabled
- LinkAnonymously
- LinkByEmail
- LinkByEmailForExistingUser
- LinkByUsername
- LinkByUsernameForExistingUser
- Unsupported
GoogleIdentityProviderProperties:
description: Google social login provider parameters.
type: object
properties:
api:
type: string
button:
type: string
EpicGamesApplicationConfiguration:
description: ''
type: object
properties:
buttonText:
type: string
client_id:
type: string
client_secret:
type: string
scope:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
TwitchApplicationConfiguration:
description: ''
type: object
properties:
buttonText:
type: string
client_id:
type: string
client_secret:
type: string
scope:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
AppleIdentityProvider:
description: ''
type: object
properties:
bundleId:
type: string
buttonText:
type: string
keyId:
type: string
format: uuid
scope:
type: string
servicesId:
type: string
teamId:
type: string
data:
type: object
additionalProperties:
type: object
applicationConfiguration:
type: object
additionalProperties:
$ref: '#/components/schemas/AppleApplicationConfiguration'
attributeMappings:
type: object
additionalProperties:
type: string
debug:
type: boolean
id:
type: string
format: uuid
insertInstant:
$ref: '#/components/schemas/ZonedDateTime'
lambdaConfiguration:
$ref: '#/components/schemas/ProviderLambdaConfiguration'
lastUpdateInstant:
$ref: '#/components/schemas/ZonedDateTime'
linkingStrategy:
$ref: '#/components/schemas/IdentityProviderLinkingStrategy'
name:
type: string
source:
type: string
tenantConfiguration:
type: object
additionalProperties:
$ref: '#/components/schemas/IdentityProviderTenantConfiguration'
tenantId:
type: string
format: uuid
type:
$ref: '#/components/schemas/IdentityProviderType'
IdentityProviderDetails:
type: object
properties:
applicationIds:
type: array
items:
type: string
format: uuid
id:
type: string
format: uuid
idpEndpoint:
type: string
format: URI
name:
type: string
oauth2:
$ref: '#/components/schemas/IdentityProviderOauth2Configuration'
tenantId:
type: string
format: uuid
type:
$ref: '#/components/schemas/IdentityProviderType'
Locale:
description: A Locale object represents a specific geographical, political, or cultural region.
example: en_US
type: string
IdentityProviderLimitUserLinkingPolicy:
description: ''
type: object
properties:
maximumLinks:
type: integer
enabled:
type: boolean
ZoneId:
description: Timezone Identifier
example: America/Denver
pattern: ^w+/w+$
type: string
PendingIdPLink:
description: ''
type: object
properties:
displayName:
type: string
email:
type: string
identityProviderId:
type: string
format: uuid
identityProviderLinks:
type: array
items:
$ref: '#/components/schemas/IdentityProviderLink'
identityProviderName:
type: string
identityProviderTenantConfiguration:
$ref: '#/components/schemas/IdentityProviderTenantConfiguration'
identityProviderType:
$ref: '#/components/schemas/IdentityProviderType'
identityProviderUserId:
type: string
user:
$ref: '#/components/schemas/User'
username:
type: string
ClientAuthenticationMethod:
type: string
enum:
- none
- client_secret_basic
- client_secret_post
IdentityProviderLoginMethod:
description: ''
type: string
enum:
- UsePopup
- UseRedirect
- UseVendorJavaScript
LocalDate:
description: A date without a time-zone in the ISO-8601 calendar system, such as 2007-12-03.
example: '2007-12-03'
pattern: ^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$
type: string
LoginPreventedResponse:
description: The summary of the action that is preventing login to be returned on the login response.
type: object
properties:
actionId:
type: string
format: uuid
actionerUserId:
type: string
format: uuid
expiry:
$ref: '#/components/schemas/ZonedDateTime'
localizedName:
type: string
localizedOption:
type: string
localizedReason:
type: string
name:
type: string
option:
type: string
reason:
type: string
reasonCode:
type: string
SteamIdentityProvider:
description: Steam gaming login provider.
type: object
properties:
apiMode:
$ref: '#/components/schemas/SteamAPIMode'
buttonText:
type: string
client_id:
type: string
scope:
type: string
webAPIKey:
type: string
data:
type: object
additionalProperties:
type: object
applicationConfiguration:
type: object
additionalProperties:
$ref: '#/components/schemas/SteamApplicationConfiguration'
attributeMappings:
type: object
additionalProperties:
type: string
debug:
type: boolean
id:
type: string
format: uuid
insertInstant:
$ref: '#/components/schemas/ZonedDateTime'
lambdaConfiguration:
$ref: '#/components/schemas/ProviderLambdaConfiguration'
lastUpdateInstant:
$ref: '#/components/schemas/ZonedDateTime'
linkingStrategy:
$ref: '#/components/schemas/IdentityProviderLinkingStrategy'
name:
type: string
source:
type: string
tenantConfiguration:
type: object
additionalProperties:
$ref: '#/components/schemas/IdentityProviderTenantConfiguration'
tenantId:
type: string
format: uuid
type:
$ref: '#/components/schemas/IdentityProviderType'
TwitterApplicationConfiguration:
description: ''
type: object
properties:
buttonText:
type: string
consumerKey:
type: string
consumerSecret:
type: string
data:
type: object
additionalProperties:
type: object
createRegistration:
type: boolean
Error:
description: Defines an error.
type: object
properties:
code:
type: string
data:
type: object
additionalProperties:
type: object
message:
type: string
IdentityVerifiedReason:
des
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fusionauth/refs/heads/main/openapi/fusionauth-identity-provider-api-openapi.yml