# GET /v1/providers/config

Source: <https://everruns.com/docs/api/operations/provider_config/>

GET

/v1/providers/config

Select code samplecURL (shell:curl)

```js
const url = 'https://app.everruns.com/api/v1/providers/config';
const options = {method: 'GET'};


try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request GET \
  --url https://app.everruns.com/api/v1/providers/config
```

* Production APIapp.everruns.com/api/v1/providers/config

## Responses

### 200

Resource config for providers

Media typeapplication/json

Provider resource config: caller policies plus the credential schemas the UI renders per driver.

object

**drivers**

required

Per-driver credential schemas, ordered by driver id.

Array\<object>

A driver’s declared credential schema, so the Settings UI can render discrete typed inputs (multi-field AWS keys, Entra OAuth fields) instead of one opaque password field.

object

**credential\_schema**

required

The fields and instructions to render for this driver’s credential.

object

**fields**

required

Input fields to render.

Array\<object>

A single form field.

object

**default\_value**

Default value the UI pre-fills (e.g. an OAuth scope or AWS region). The stored credential omits unfilled optional fields, so drivers still apply their own defaults; this only seeds the form input.

string | null

**env**

Environment variables this field can be read from in standalone/dev use, most preferred first.

Declared by the driver, because only the driver knows what its vendor’s own SDK reads: `AWS_ACCESS_KEY_ID` for Bedrock, `AZURE_TENANT_ID` for MAI’s Entra group, `ANTHROPIC_API_KEY` for Anthropic. Later entries are alternates the vendor also honors (`GOOGLE_API_KEY`, `AWS_DEFAULT_REGION`), not a second field.

Empty means the field cannot be supplied from the environment, so a group containing a required field with no variable never resolves from env alone. Server credential resolution ignores this entirely.

Array\<string>

**field\_type**

required

Input type.

string

Allowed values: password text url

**group**

Mutually-exclusive group label this field belongs to. Fields sharing a label are one alternative credential method (e.g. “API key” vs “OAuth”); ungrouped fields are always part of the credential. `None` for the common single-method case.

string | null

**help\_text**

Help text shown below the input.

string | null

**label**

required

Label shown next to the input.

string

**name**

required

Field name used as the key when submitting (e.g. “api\_key”).

string

**placeholder**

Placeholder text inside the input.

string | null

**required**

required

Whether the field is required.

boolean

**instructions\_markdown**

required

Markdown instructions shown above the form (how to get the key, etc.).

string

**driver**

required

Driver id (e.g. `openai`, `bedrock`, `mai`).

string

**services**

required

Array\<string>

Allowed values: chat decisions embeddings realtime images rerank

**supports\_oauth**

required

Whether the driver declares an interactive “Connect with …” OAuth flow.

boolean

**policies**

required

Map of policy ID → whether the caller satisfies it.

object

***key***

additional properties

boolean

##### Example

```json
{
  "drivers": [
    {
      "credential_schema": {
        "fields": [
          {
            "field_type": "password"
          }
        ]
      },
      "services": [
        "chat"
      ]
    }
  ]
}
```