Supabase OAuth API

OAuth social login provider endpoints.

OpenAPI Specification

supabase-oauth-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Supabase Auth Admin OAuth API
  description: The Supabase Auth API (based on GoTrue) is a JWT-based API for managing users and issuing access tokens. It provides endpoints for user signup, signin with email/password, magic links, one-time passwords, OAuth social login, token refresh, user management, multi-factor authentication, and SAML-based single sign-on. When deployed on Supabase, the server requires an apikey header containing a valid Supabase-issued API key.
  version: 2.0.0
  contact:
    name: Supabase Support
    url: https://supabase.com/support
  termsOfService: https://supabase.com/terms
servers:
- url: https://{project_ref}.supabase.co/auth/v1
  description: Supabase Project Auth Server
  variables:
    project_ref:
      description: Your Supabase project reference ID
      default: your-project-ref
security:
- apiKeyAuth: []
tags:
- name: OAuth
  description: OAuth social login provider endpoints.
paths:
  /authorize:
    get:
      operationId: authorizeOAuth
      summary: Initiate OAuth login
      description: Redirects the user to the specified OAuth provider's authorization page. After the user grants access, they are redirected back to the application with an authorization code or tokens.
      tags:
      - OAuth
      parameters:
      - name: provider
        in: query
        required: true
        schema:
          type: string
          enum:
          - google
          - github
          - gitlab
          - bitbucket
          - azure
          - facebook
          - apple
          - twitter
          - discord
          - twitch
          - spotify
          - slack
          - linkedin
          - notion
          - zoom
          - keycloak
          - workos
          - figma
          - kakao
          - fly
        description: The OAuth provider to authenticate with
      - name: redirect_to
        in: query
        schema:
          type: string
          format: uri
        description: URL to redirect to after authentication
      - name: scopes
        in: query
        schema:
          type: string
        description: Space-separated list of OAuth scopes to request
      responses:
        '302':
          description: Redirect to OAuth provider
        '400':
          description: Bad request - invalid provider
  /callback:
    get:
      operationId: oauthCallback
      summary: OAuth callback
      description: Receives the OAuth callback from the provider after user authorization. Exchanges the authorization code for tokens and creates or updates the user account.
      tags:
      - OAuth
      parameters:
      - name: code
        in: query
        schema:
          type: string
        description: Authorization code from the OAuth provider
      - name: state
        in: query
        schema:
          type: string
        description: State parameter for CSRF protection
      responses:
        '303':
          description: Redirect to application with session
        '400':
          description: Invalid callback parameters
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: apikey
      description: Supabase project API key (anon key for public operations, service_role key for admin operations).
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token obtained from a successful authentication.
externalDocs:
  description: Supabase Auth Documentation
  url: https://supabase.com/docs/guides/auth