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

# Relay a provider callback to the dashboard

> Compatibility URL for provider registrations that still target the API host. It forwards the browser to the dashboard callback with a fixed legacy marker. The authenticated endpoint uses that marker only to echo the old redirect URL during token exchange. This endpoint never exchanges a provider code or changes connector data. New provider registrations use `https://<APP_HOST>/api/connectors/{provider}/callback` for the matching environment. The dashboard posts the current Bearer token to the authenticated callback completion method. 



## OpenAPI

````yaml https://raw.githubusercontent.com/agentsfleet/agentsfleet/main/public/openapi.json get /v1/connectors/{provider}/callback
openapi: 3.1.0
info:
  title: agentsfleet Control Plane API
  description: API for managing workspaces, fleets, triggers, and runs.
  contact:
    name: agentsfleet
    url: https://agentsfleet.net
  license:
    name: MIT
    identifier: MIT
  version: 1.0.0
servers:
  - url: https://api.agentsfleet.net
    description: Production
security: []
paths:
  /v1/connectors/{provider}/callback:
    get:
      tags:
        - Connectors
      summary: Relay a provider callback to the dashboard
      description: >-
        Compatibility URL for provider registrations that still target the API
        host. It forwards the browser to the dashboard callback with a fixed
        legacy marker. The authenticated endpoint uses that marker only to echo
        the old redirect URL during token exchange. This endpoint never
        exchanges a provider code or changes connector data. New provider
        registrations use
        `https://<APP_HOST>/api/connectors/{provider}/callback` for the matching
        environment. The dashboard posts the current Bearer token to the
        authenticated callback completion method. 
      operationId: connector_callback
      parameters:
        - name: provider
          in: path
          description: Provider identifier, such as `slack` or `github`.
          required: true
          schema:
            type: string
        - name: state
          in: query
          description: Signed one-time value supplied through the connection URL.
          required: true
          schema:
            type: string
        - name: code
          in: query
          description: Authorization code supplied by the provider when required.
          required: false
          schema:
            type: string
        - name: installation_id
          in: query
          description: Installation identifier supplied by providers such as GitHub.
          required: false
          schema:
            type: string
        - name: location
          in: query
          description: >-
            Provider data-center location supplied by multi-region providers
            such as Zoho.
          required: false
          schema:
            type: string
      responses:
        '302':
          description: Redirect back to the caller that began the flow
        '400':
          description: The request could not be read
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '404':
          description: No such resource, or none this caller may see
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '429':
          description: The instance is at its ceiling
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '500':
          description: The daemon failed to answer
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
        '503':
          description: A dependency this route needs is unreachable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemBody'
      security: []
components:
  schemas:
    ProblemBody:
      type: object
      description: The body every refusal carries, under `application/problem+json`.
      required:
        - docs_uri
        - title
        - detail
        - error_code
        - request_id
      properties:
        action_id:
          type:
            - string
            - 'null'
          description: 'On that 409 only: the action the gate held.'
        current_state:
          type:
            - string
            - 'null'
          description: 'On a 409 only: the state that forbade the transition.'
        detail:
          type: string
          description: One sentence on what was refused and why.
        docs_uri:
          type: string
          description: Where the error code is documented.
        error_code:
          type: string
          description: The registry code, stable across releases.
        etag:
          type:
            - string
            - 'null'
          description: >-
            On a 412 only: the resource's current entity tag, to refetch and
            retry.
        gate_id:
          type:
            - string
            - 'null'
          description: 'On an answered approval gate''s 409 only: the gate that was answered.'
        missing_secrets:
          type:
            - array
            - 'null'
          items:
            type: string
          description: 'On a 424 only: the credentials this workspace has yet to store.'
        outcome:
          type:
            - string
            - 'null'
          description: 'On that 409 only: the answer that stands.'
        request_id:
          type: string
          description: The request this refusal answers, for support.
        resolved_at:
          type:
            - integer
            - 'null'
          format: int64
          description: 'On that 409 only: when the standing answer was given.'
        resolved_by:
          type:
            - string
            - 'null'
          description: 'On that 409 only: who gave it.'
        title:
          type: string
          description: A short name for the refusal, safe to show a person.
        user_message:
          type:
            - string
            - 'null'
          description: A curated sentence for end users, where the code has one.

````