Artsy · Authentication Profile

Artsy Authentication

Authentication

Artsy secures its APIs with apiKey and oauth2 across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode, password, and custom-oauth_token-exchange flow(s).

ArtMarketplaceArtistsCollectorsGalleriesAuctionsMuseumsArt MarketCultureImages
Methods: apiKey, oauth2 Schemes: 3 OAuth flows: authorizationCode, password, custom-oauth_token-exchange API key in: header

Security Schemes

XappToken apiKey
· in: header ()
UserAccessToken apiKey
· in: header ()
OAuth2 oauth2
· flows: authorizationCode, password, token-exchange

Source

Authentication Profile

Raw ↑
generated: '2026-09-07'
method: searched
source: https://developers.artsy.net/v2/docs/authentication
docs: https://developers.artsy.net/v2/docs/authentication
note: >-
  The harvested Swagger 2.0 contract at https://api.artsy.net/api/docs/ declares NO securityDefinitions,
  so derive-authentication.py found nothing to aggregate. This profile is read from the provider's own
  authentication documentation instead, which describes four token mechanisms in prose. Nothing here is
  inferred: every scheme, endpoint, header name and lifetime below is stated on that page.
summary:
  types: [apiKey, oauth2]
  api_key_in: [header]
  oauth2_flows: [authorizationCode, password, custom-oauth_token-exchange]
  spec_declares_security: false
credentials:
  registration: https://developers.artsy.net/v2/docs/getting-started
  console: https://developers.artsy.net/client_applications
  issued: client_id + client_secret, per client application
schemes:
  - name: XappToken
    type: apiKey
    in: header
    parameter_name: X-Xapp-Token
    description: >-
      Anonymous application-level token. Obtained by POSTing client_id and client_secret to
      /api/tokens/xapp_token; the response carries type, token and expires_at. This is the token most
      public-domain read traffic uses — no user account required.
    token_endpoint: https://api.artsy.net/api/tokens/xapp_token
    source_operation: openapi/artsy-public-api-openapi.yml#postApiTokensXappToken
    sources: [https://developers.artsy.net/v2/docs/authentication]
  - name: UserAccessToken
    type: apiKey
    in: header
    parameter_name: X-Auth-Token
    description: >-
      User-scoped token returned by every /oauth2/access_token grant below. Revoked by
      DELETE /api/tokens/access_token.
    revocation_operation: openapi/artsy-public-api-openapi.yml#deleteApiTokensAccessToken
    sources: [https://developers.artsy.net/v2/docs/authentication]
  - name: OAuth2
    type: oauth2
    description: >-
      Artsy acts as an OAuth 2 provider for user login. Redirect URIs are NOT restricted per
      application and the provider states users are prompted to trust the application on every login
      — documented as a known limitation, not a configuration option.
    flows:
      - flow: authorizationCode
        authorizationUrl: https://api.artsy.net/oauth2/authorize
        tokenUrl: https://api.artsy.net/oauth2/access_token
        grant_type: authorization_code
        parameters: [client_id, client_secret, code, grant_type, state, scope]
      - flow: password
        tokenUrl: https://api.artsy.net/oauth2/access_token
        grant_type: credentials
        parameters: [client_id, client_secret, grant_type, email, password, scope]
        note: >-
          Email/password exchange. The provider's own documentation says this is "not recommended".
      - flow: token-exchange
        tokenUrl: https://api.artsy.net/oauth2/access_token
        grant_type: oauth_token
        parameters: [client_id, client_secret, grant_type, oauth_token, oauth_token_secret, oauth_provider]
        note: >-
          Non-standard grant that exchanges a Facebook or Twitter social token for an Artsy token.
          oauth_provider is either "facebook" or "twitter".
    sources: [https://developers.artsy.net/v2/docs/authentication]
token_lifetime:
  default: 60 days
  offline_access: 25 years
  note: >-
    Verbatim from the provider: setting scope to "offline_access" requests a token that expires in
    25 years instead of the standard 60 days. XAPP tokens carry their own expires_at in the response.
error_envelope:
  fields: [error, error_description]
  note: OAuth 2 error code plus a human-readable description, per the authentication page.

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/artsy-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.