---
title: "Test provider draft"
method: POST
path: "/api/v1/user/config/providers/test"
tags: ["Provider Configuration"]
---

# Test provider draft

`POST /api/v1/user/config/providers/test`

## Request

- Base URL: `https://www.devspeak.dev`
- URL: `https://www.devspeak.dev/api/v1/user/config/providers/test`
- Auth: HTTP bearer

Validates a provider draft without persisting changes. Requires Firebase auth and the customProvider feature.

## Request body

- ProviderConfigRequest
  - `providerType` 'gemini' | 'openai' | 'anthropic' | 'openai-compatible', required
  - `providerName` string, required
  - `apiKey` string
  - `isExistingKey` boolean
  - `baseURL` string, uri
  - `modelIdentifier` string

## Response `200`

Validation result

- ProviderConfigurationEnvelope
  - `success` true, required
  - `data` ProviderConfiguration, required
    - `providerType` 'gemini' | 'openai' | 'anthropic' | 'openai-compatible', required
    - `providerName` string, required
    - `apiEndpoint` string, nullable, required
    - `metadata` object, required
      - `model` string, nullable, required
      - `label` string, nullable, required
      - `keyPreview` string, nullable, required
      - `endpointHost` string, nullable, required
    - `enabled` boolean, required
    - `updatedAt` string, nullable, required
    - `lastValidatedAt` string, nullable, required
    - `status` 'unconfigured' | 'invalid' | 'active', required
    - `validationMessage` string, nullable, required

## Other responses

- `400`: Validation error
- `401`: Missing or invalid credentials

---

[API](https://skmtc.dev/devspeak/apis/devspeak-api-v1.md) · [All operations](https://skmtc.dev/devspeak/apis/devspeak-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/devspeak/apis/devspeak-api-v1/revisions/7000833a5bbf?raw)
