Persado · Authentication Profile

Persado Authentication

Authentication

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

CompanyAi AppsArtificial IntelligenceGenerative AIMarketingCustomer EngagementContent GenerationPersonalizationAgentsMCPComplianceFinancial Services
Methods: oauth2, openIdConnect Schemes: 2 OAuth flows: authorizationCode API key in:

Security Schemes

PersadoMCPGatewayOAuth oauth2
· flows: authorizationCode
PersadoPortalKeycloakOIDC openIdConnect

Source

Authentication Profile

persado-authentication.yml Raw ↑
generated: '2026-08-13'
method: probed
source: >-
  https://api.persado.com/.well-known/oauth-authorization-server,
  https://api.persado.com/.well-known/oauth-protected-resource,
  https://myaccount.persado.com/realms/persado-portal/.well-known/openid-configuration
notes: >-
  Persado publishes no OpenAPI, so this profile is not derived from a spec. It
  is transcribed from three machine-readable discovery documents Persado itself
  serves: the RFC 8414 authorization-server metadata and RFC 9728
  protected-resource metadata on api.persado.com, and the full OpenID Connect
  discovery document for the Keycloak realm persado-portal on
  myaccount.persado.com. Nothing here is inferred from marketing copy.
  Two distinct scope sets are recorded deliberately. The MCP gateway advertises
  a narrow, deliberately-scoped set (openid, offline_access, mcp:tools) and
  restricts itself to authorization_code + refresh_token with mandatory PKCE
  S256 and public clients. The underlying Keycloak realm advertises the full
  stock Keycloak surface (13 scopes, 10 grant types including implicit and
  password, and plain PKCE). The gateway's narrower profile is the one that
  governs agent access, and it is the stronger of the two.

summary:
  types:
  - oauth2
  - openIdConnect
  api_key_in: []
  oauth2_flows:
  - authorizationCode
  pkce_required: true
  pkce_methods:
  - S256
  bearer_methods:
  - header
  dynamic_client_registration: true
  public_clients: true

schemes:
- name: PersadoMCPGatewayOAuth
  type: oauth2
  applies_to: https://api.persado.com/mcp
  source: https://api.persado.com/.well-known/oauth-authorization-server
  issuer: https://myaccount.persado.com/realms/persado-portal
  flows:
  - flow: authorizationCode
    authorizationUrl: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/auth
    tokenUrl: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/token
    refreshUrl: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/token
    scopes:
      openid: OpenID Connect authentication
      offline_access: Issue a refresh token for long-lived agent sessions
      mcp:tools: Invoke tools exposed by the Persado MCP Gateway
  jwks_uri: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/certs
  registration_endpoint: https://api.persado.com/register
  registration_spec: RFC 7591 dynamic client registration
  response_types_supported:
  - code
  grant_types_supported:
  - authorization_code
  - refresh_token
  code_challenge_methods_supported:
  - S256
  token_endpoint_auth_methods_supported:
  - none
  note: >-
    token_endpoint_auth_methods "none" plus S256-only PKCE means the gateway
    expects PUBLIC clients using PKCE — the current OAuth 2.1 / MCP
    best-practice shape for agent clients, not a weakness.

- name: PersadoPortalKeycloakOIDC
  type: openIdConnect
  applies_to: https://myaccount.persado.com/realms/persado-portal
  source: https://myaccount.persado.com/realms/persado-portal/.well-known/openid-configuration
  openIdConnectUrl: https://myaccount.persado.com/realms/persado-portal/.well-known/openid-configuration
  issuer: https://myaccount.persado.com/realms/persado-portal
  endpoints:
    authorization: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/auth
    token: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/token
    userinfo: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/userinfo
    jwks: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/certs
    introspection: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/token/introspect
    revocation: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/revoke
    end_session: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/logout
    device_authorization: https://myaccount.persado.com/realms/persado-portal/protocol/openid-connect/auth/device
    registration: https://myaccount.persado.com/realms/persado-portal/clients-registrations/openid-connect
  grant_types_supported:
  - authorization_code
  - client_credentials
  - implicit
  - password
  - refresh_token
  - urn:ietf:params:oauth:grant-type:device_code
  - urn:ietf:params:oauth:grant-type:jwt-bearer
  - urn:ietf:params:oauth:grant-type:token-exchange
  - urn:ietf:params:oauth:grant-type:uma-ticket
  - urn:openid:params:grant-type:ciba
  code_challenge_methods_supported:
  - plain
  - S256
  token_endpoint_auth_methods_supported:
  - private_key_jwt
  - client_secret_basic
  - client_secret_post
  - tls_client_auth
  - client_secret_jwt
  note: >-
    Stock Keycloak realm surface. Includes mutual-TLS client authentication
    (tls_client_auth) and private_key_jwt, both available to enterprise
    integrations. The MCP gateway does not use these.

undocumented:
  developer_docs: >-
    Persado publishes no public authentication documentation, no developer
    portal and no API reference. Everything above was read from discovery
    documents, not from prose. A provider-published auth guide would be the
    single highest-value addition to this surface.
  legacy_enterprise_api: >-
    Persado's platform pages describe a "Lite API", server-side API
    integration and a client-side JavaScript snippet, and the persado/
    GitHub org ships an Enterprise API Mobile SDK, but the authentication
    model for that older Enterprise API is not published anywhere public.