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

# Set End User Oauth Credentials

> Set the app's OAuth client for one social sign-in provider in one environment.

The secret goes straight to Neon Auth; floo keeps no copy and never returns it.
Declare the provider in ``[managed.<name>.users].methods`` to offer it.



## OpenAPI

````yaml https://api.getfloo.com/openapi.json put /v1/apps/{app_id}/end-users/oauth/{provider}
openapi: 3.1.0
info:
  title: floo API
  version: 0.1.0
servers:
  - url: https://api.getfloo.com
security: []
paths:
  /v1/apps/{app_id}/end-users/oauth/{provider}:
    put:
      tags:
        - end-users
      summary: Set End User Oauth Credentials
      description: >-
        Set the app's OAuth client for one social sign-in provider in one
        environment.


        The secret goes straight to Neon Auth; floo keeps no copy and never
        returns it.

        Declare the provider in ``[managed.<name>.users].methods`` to offer it.
      operationId: end_users_set_end_user_oauth_credentials
      parameters:
        - name: provider
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/EndUserOAuthProvider'
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: App Id
        - name: env
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/EnvironmentName'
            description: 'Environment: dev or prod.'
          description: 'Environment: dev or prod.'
        - $ref: '#/components/parameters/X-Floo-Org-Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetEndUserOAuthCredentialsRequest'
      responses:
        '204':
          description: Successful Response
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    EndUserOAuthProvider:
      type: string
      enum:
        - google
        - github
        - microsoft
        - vercel
      title: EndUserOAuthProvider
      description: |-
        Social sign-in providers that take the app's own OAuth client.

        Google works without one (Neon's shared app); the others need it.
    EnvironmentName:
      type: string
      enum:
        - dev
        - prod
        - preview
      title: EnvironmentName
      description: >-
        Enumerate the persisted development, production, and preview environment
        names.
    SetEndUserOAuthCredentialsRequest:
      properties:
        client_id:
          type: string
          maxLength: 512
          minLength: 1
          title: Client Id
        client_secret:
          type: string
          maxLength: 8192
          minLength: 1
          title: Client Secret
      additionalProperties: false
      type: object
      required:
        - client_id
        - client_secret
      title: SetEndUserOAuthCredentialsRequest
      description: The app's OAuth client for one provider; the secret is write-only.
    ErrorResponse:
      properties:
        detail:
          $ref: '#/components/schemas/ErrorDetail'
      type: object
      required:
        - detail
      title: ErrorResponse
      description: Body of every error response except request validation (422).
    ErrorDetail:
      properties:
        code:
          type: string
          title: Code
        message:
          type: string
          title: Message
      additionalProperties: true
      type: object
      required:
        - code
        - message
      title: ErrorDetail
      description: Standard error envelope with operation-specific JSON context.
  parameters:
    X-Floo-Org-Id:
      name: X-Floo-Org-Id
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Organization to act in; defaults to the one joined most recently.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: A `floo_` API key.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.