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

# List saved AI providers

> Lists saved provider/model/API key combinations for the authenticated user. API keys are redacted.



## OpenAPI

````yaml /spec.json get /ai-providers
openapi: 3.1.1
info:
  title: Reactive Resume
  version: 6.0.3
  description: >-
    Reactive Resume API. Mutations do not support Idempotency-Key. Do not
    automatically retry POST, PUT, PATCH or DELETE requests after a timeout:
    first read the resource to determine whether the operation succeeded.
    Existing enum values and response shapes are retained for compatibility.
  license:
    name: MIT
    url: https://github.com/reactive-resume/reactive-resume/blob/main/LICENSE
  contact:
    name: Amruth Pillai
    email: amruth@rxresu.me
    url: https://amruthpillai.com
servers:
  - url: https://rxresu.me/api/openapi
security:
  - apiKey: []
  - bearerAuth: []
  - cookieAuth: []
externalDocs:
  url: https://docs.rxresu.me
  description: Reactive Resume Documentation
paths:
  /ai-providers:
    get:
      tags:
        - AI Providers
      summary: List saved AI providers
      description: >-
        Lists saved provider/model/API key combinations for the authenticated
        user. API keys are redacted.
      operationId: listAiProviders
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            description: >-
              Maximum results (1–100). Omit both pagination fields for the
              legacy complete list.
          allowEmptyValue: true
          allowReserved: true
        - name: offset
          in: query
          schema:
            type: integer
            minimum: 0
            maximum: 9007199254740991
            description: >-
              Zero-based offset. Defaults to 0; limit defaults to 20 when only
              offset is given.
          allowEmptyValue: true
          allowReserved: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    managed:
                      type: boolean
                    id:
                      type: string
                    label:
                      type: string
                    provider:
                      enum:
                        - openai
                        - anthropic
                        - gemini
                        - vercel-ai-gateway
                        - openrouter
                        - mistral
                        - cohere
                        - xai
                        - groq
                        - deepseek
                        - togetherai
                        - fireworks
                        - cerebras
                        - perplexity
                        - ollama
                        - openai-compatible
                      type: string
                    model:
                      type: string
                    baseURL:
                      anyOf:
                        - type: string
                        - type: 'null'
                    enabled:
                      type: boolean
                    isDefault:
                      type: boolean
                    testStatus:
                      type: string
                    testError:
                      anyOf:
                        - type: string
                        - type: 'null'
                    apiKeyPreview:
                      type: string
                    apiKeyFingerprint:
                      type: string
                    lastTestedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          x-native-type: date
                        - type: 'null'
                    lastUsedAt:
                      anyOf:
                        - type: string
                          format: date-time
                          x-native-type: date
                        - type: 'null'
                    createdAt:
                      type: string
                      format: date-time
                      x-native-type: date
                    updatedAt:
                      type: string
                      format: date-time
                      x-native-type: date
                  required:
                    - managed
                    - id
                    - label
                    - provider
                    - model
                    - baseURL
                    - enabled
                    - isDefault
                    - testStatus
                    - testError
                    - apiKeyPreview
                    - apiKeyFingerprint
                    - lastTestedAt
                    - lastUsedAt
                    - createdAt
                    - updatedAt
          headers:
            X-Total-Count:
              description: Total matching results before pagination.
              schema:
                type: integer
            X-Limit:
              description: Page size, when pagination is requested.
              schema:
                type: integer
            X-Offset:
              description: Zero-based offset, when pagination is requested.
              schema:
                type: integer
        '412':
          description: '412'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: PRECONDITION_FAILED
                      status:
                        const: 412
                      message:
                        type: string
                        default: AI agent workspace is not configured.
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        default:
          description: >-
            Structured API error. See status and code; do not branch on message
            text.
          content:
            application/json:
              schema:
                type: object
                required:
                  - defined
                  - code
                  - status
                  - message
                properties:
                  defined:
                    type: boolean
                  code:
                    type: string
                  status:
                    type: integer
                  message:
                    type: string
                  data: {}
      security:
        - apiKey: []
        - bearerAuth: []
        - cookieAuth: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: >-
            curl "https://rxresu.me/api/openapi/ai-providers" --header
            "x-api-key: <api-key>"
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: x-api-key
      in: header
      description: The API key to authenticate requests.
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: An OAuth access token issued by this instance for its API/MCP resource.
    cookieAuth:
      type: apiKey
      in: cookie
      name: better-auth.session_token
      description: >-
        Browser session (secure deployments use the __Secure- prefix). Cookie
        requests must originate from this instance.

````

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