> ## Documentation Index
> Fetch the complete documentation index at: https://docs.magna.so/llms.txt
> Use this file to discover all available pages before exploring further.

# OAuth Submission

> Initiates the OAuth flow for a given provider to associate with an airdrop participant.



## OpenAPI

````yaml /apis/portal/openapi.json get /api/v2/{portalId}/submission/oauth/{provider}/authorize-url
openapi: 3.0.2
info:
  title: Magna Portal API
  version: 1.0.0
servers: []
security: []
tags:
  - name: Auth
    description: Authentication related endpoints
  - name: Token
    description: Token claiming
  - name: Config
    description: Portal configuration
  - name: Misc
    description: Miscellaneous operational endpoints
  - name: Staking
    description: Staking pool operations
  - name: Compliance
    description: Wallet compliance operations
paths:
  /api/v2/{portalId}/submission/oauth/{provider}/authorize-url:
    get:
      tags:
        - Submission
      summary: OAuth Submission
      description: >-
        Initiates the OAuth flow for a given provider to associate with an
        airdrop participant.
      parameters:
        - name: portalId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: unique portal id (provided by Magna)
        - name: provider
          in: path
          required: true
          schema:
            type: string
          description: OAuth provider
        - name: callbackUrl
          in: query
          description: URL to redirect back to after authorization
          required: true
          schema:
            type: string
            format: uri
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  redirectUrl:
                    type: string
                    format: uri
                    description: provider oauth authorize url
                  codeVerifier:
                    type: string
                    description: >-
                      code verifier for PKCE flow; needed in the verification
                      flow
                required:
                  - redirectUrl
                  - codeVerifier
                description: Ok
        '400':
          description: Client Error
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      errors:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            message:
                              type: string
                          required:
                            - path
                            - message
                    required:
                      - errors
                  - type: object
                    properties:
                      error:
                        oneOf:
                          - type: string
                            enum:
                              - DISTRIBUTION_NOT_FOUND
                              - HUMANITY_CHECK_INCOMPLETE
                              - DISTRIBUTION_NOT_STARTED
                              - STAKING_POOL_NOT_FOUND
                              - STAKE_NOT_FOUND
                          - type: string
                    required:
                      - error
                description: Client Error
                example:
                  errors:
                    - path: query.wallet
                      message: Required
        '401':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: error message
                required:
                  - error
                description: Bad Request
                example:
                  error: X auth not enabled
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: error message
                required:
                  - error
                description: Server Error
                example:
                  error: internal server error

````