Coresignal · Authentication Profile

Coresignal Authentication

Authentication

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

Agentic SearchB2B DataCompaniesCompany DataData as a ServiceElasticsearchEmployee DataEmployeesEnrichmentFirmographicsJob PostingsJobLead GenerationPeople DataSales IntelligenceTalent IntelligenceWeb Data
Methods: apiKey, oauth2, openIdConnect Schemes: 3 OAuth flows: authorizationCode, clientCredentials, refreshToken API key in: header

Security Schemes

apiKey apiKey
· in: header (apikey)
Coresignal Dashboard OAuth 2.1 oauth2
· flows: authorizationCode, clientCredentials, refreshToken
Coresignal Dashboard OpenID Connect openIdConnect

Source

Authentication Profile

Raw ↑
generated: '2026-08-13'
method: searched
source: >-
  https://docs.coresignal.com/api-introduction/authorization,
  https://docs.coresignal.com/self-service/account-management/authentication-and-api-keys,
  https://docs.coresignal.com/integrations/coresignal-mcp,
  well-known/coresignal-oauth-authorization-server.json,
  well-known/coresignal-oauth-protected-resource.json,
  openapi/_original/*.yml
docs: https://docs.coresignal.com/api-introduction/authorization
note: >-
  Upgraded from a derived spec-only profile. Coresignal runs TWO distinct authentication models on the
  same estate and they should not be conflated: the REST data APIs take a bare 32-character API key in
  an `apikey` header with no scopes and no expiry, while the MCP v2 agent surface takes a full OAuth
  2.1 authorization-code flow against the dashboard and resolves the team's API key server-side.
summary:
  types: [apiKey, oauth2, openIdConnect]
  api_key_in: [header]
  oauth2_flows: [authorizationCode, clientCredentials, refreshToken]
  oauth2_scope: MCP v2 only
  mutual_tls: false
  signed_requests: false
schemes:
  - name: apiKey
    type: apiKey
    in: header
    parameter: apikey
    applies_to: All REST endpoints on https://api.coresignal.com/cdapi/v2/
    format: 32-character alphanumeric string
    issued_at: https://dashboard.coresignal.com/ (API keys section)
    also_issued_by: account manager or sales representative on request for an API plan
    multiple_keys: true
    rotatable: true
    revocable: true
    expiry: none documented
    scopes: none
    note: >-
      Entitlement is the plan attached to the account, not the key. Keys can be generated, regenerated
      and deleted from the dashboard; issuing a key per environment or per downstream tenant is the
      only isolation mechanism available, since there is no least-privilege model.
    example_header: 'apikey: <API_Key>'
    sources:
      - openapi/_original/coresignal-multi-source-company-api-openapi.yml
      - openapi/_original/coresignal-multi-source-employee-api-openapi.yml
      - openapi/_original/coresignal-multi-source-jobs-api-openapi.yml
      - https://docs.coresignal.com/api-introduction/authorization
  - name: Coresignal Dashboard OAuth 2.1
    type: oauth2
    applies_to: https://mcp.coresignal.com/mcp/v2 (MCP server)
    issuer: https://dashboard.coresignal.com/api/auth
    flows:
      - flow: authorizationCode
        authorizationUrl: https://dashboard.coresignal.com/api/auth/oauth2/authorize
        tokenUrl: https://dashboard.coresignal.com/api/auth/oauth2/token
        pkce_required: S256
        scopes: [openid, profile, email, offline_access]
      - flow: clientCredentials
        tokenUrl: https://dashboard.coresignal.com/api/auth/oauth2/token
      - flow: refreshToken
        tokenUrl: https://dashboard.coresignal.com/api/auth/oauth2/token
    dynamic_client_registration: https://dashboard.coresignal.com/api/auth/oauth2/register
    introspection: https://dashboard.coresignal.com/api/auth/oauth2/introspect
    revocation: https://dashboard.coresignal.com/api/auth/oauth2/revoke
    protected_resource_metadata: https://mcp.coresignal.com/.well-known/oauth-protected-resource/mcp/v2
    resource_scopes_supported: []
    bearer_methods_supported: [header]
    token_endpoint_auth_methods: [none, client_secret_basic, client_secret_post]
    note: >-
      The MCP server verifies the signed token on each request and retrieves the team's API key
      server-side, so no key is stored on the server or in client config. Because the protected
      resource advertises an EMPTY scope list, a valid token grants every tool including the
      credit-spending ones.
    sources:
      - well-known/coresignal-oauth-authorization-server.json
      - well-known/coresignal-oauth-protected-resource.json
      - https://docs.coresignal.com/integrations/coresignal-mcp
  - name: Coresignal Dashboard OpenID Connect
    type: openIdConnect
    applies_to: Dashboard sign-in (identity layer under the OAuth 2.1 flow above)
    openIdConnectUrl: https://dashboard.coresignal.com/.well-known/openid-configuration
    jwks_uri: https://dashboard.coresignal.com/api/auth/jwks
    userinfo_endpoint: https://dashboard.coresignal.com/api/auth/oauth2/userinfo
    end_session_endpoint: https://dashboard.coresignal.com/api/auth/oauth2/end-session
    id_token_signing_alg: [RS256]
    subject_types: [public]
    claims: [sub, iss, aud, exp, iat, sid, scope, azp, email, email_verified, name, picture, family_name, given_name]
    prompt_values: [login, consent, create, select_account, none]
    acr_values: ['urn:mace:incommon:iap:bronze']
    sources: [well-known/coresignal-openid-configuration.json]
legacy_mcp:
  endpoint: https://mcp.coresignal.com/mcp
  scheme: apiKey
  header: apikey
  note: >-
    The legacy MCP endpoint takes the same REST API key as a header (commonly passed through the
    `mcp-remote` bridge). Its tools/list is anonymously introspectable. Coresignal states it will
    eventually be deprecated in favour of the OAuth-protected v2 endpoint.
failures:
  - status: 401
    meaning: No valid API Key was provided (REST), or no/invalid bearer token (MCP v2).
    body_rest: '{"detail": "..."}'
    body_mcp: '{"error": "invalid_token", "error_description": "Authentication required"}'
    challenge_mcp: >-
      WWW-Authenticate: Bearer error="invalid_token",
      resource_metadata="https://mcp.coresignal.com/.well-known/oauth-protected-resource/mcp/v2"
transport:
  https_required: true
  note: >-
    All requests must be made over HTTPS; HTTP requests fail or are redirected. See
    security/coresignal-domain-security.yml for TLS/HSTS posture.
gaps:
  - No scopes or least-privilege model on either surface.
  - No documented key expiry or forced rotation.
  - No mTLS, no request signing, no IP allowlisting documented.