GLM-5.2, MiniMax M3 and Opus 5 are now live. Try them now
EUrouter

BYOK

Bring-your-own-key provider credential management

OpenAPI JSON

List BYOK provider credentials

GET
/api/v1/byok

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Query Parameters

offset?integer

Number of records to skip for pagination

Range-9007199254740991 <= value <= 9007199254740991
limit?integer

Maximum number of records to return (max 100)

Range-9007199254740991 <= value <= 9007199254740991
provider?string

Optional provider slug to filter by (e.g. openai, anthropic, aws-bedrock).

Response Body

application/json

curl -X GET "https://api.eurouter.ai/api/v1/byok"
{
  "data": [
    {
      "allowed_api_key_hashes": [
        "string"
      ],
      "allowed_models": [
        "string"
      ],
      "always_use": true,
      "created_at": "string",
      "disabled": true,
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "is_fallback": true,
      "label": "string",
      "last_used": "string",
      "name": "string",
      "provider": "string",
      "sort_order": -9007199254740991
    }
  ],
  "total_count": -9007199254740991
}

Create a BYOK provider credential

POST
/api/v1/byok

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://api.eurouter.ai/api/v1/byok" \  -H "Content-Type: application/json" \  -d '{    "key": "string",    "provider": "string"  }'
{
  "data": {
    "allowed_api_key_hashes": [
      "string"
    ],
    "allowed_models": [
      "string"
    ],
    "always_use": true,
    "created_at": "string",
    "disabled": true,
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "is_fallback": true,
    "label": "string",
    "last_used": "string",
    "name": "string",
    "provider": "string",
    "sort_order": -9007199254740991
  }
}

Test a BYOK provider credential before saving it

POST
/api/v1/byok/test

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://api.eurouter.ai/api/v1/byok/test" \  -H "Content-Type: application/json" \  -d '{    "key": "string",    "provider": "string"  }'
{
  "data": {
    "checks": [
      {
        "latency_ms": -9007199254740991,
        "message": "string",
        "ok": true,
        "target": "string"
      }
    ],
    "provider": "string",
    "success": true
  }
}

Get current BYOK subscription-period usage

GET
/api/v1/byok/usage

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Response Body

application/json

curl -X GET "https://api.eurouter.ai/api/v1/byok/usage"
{
  "data": {
    "period_start": "2019-08-24T14:15:22Z",
    "period_end": "2019-08-24T14:15:22Z",
    "successful_requests": 0,
    "settled_requests": 0,
    "pending_settlement_requests": 0,
    "free_request_allowance": 0,
    "allowance_used": 0,
    "allowance_remaining": 0,
    "chargeable_requests": 0,
    "estimated_upstream_cost_eur": "string",
    "eurouter_platform_fee_eur": "string",
    "eurouter_platform_fee_charged_eur": "string",
    "eurouter_platform_fee_pending_eur": "string",
    "platform_fee_rate": "string"
  }
}

Get BYOK provider credential

GET
/api/v1/byok/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Path Parameters

id*string

The BYOK credential ID (UUID).

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Response Body

application/json

curl -X GET "https://api.eurouter.ai/api/v1/byok/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "data": {
    "allowed_api_key_hashes": [
      "string"
    ],
    "allowed_models": [
      "string"
    ],
    "always_use": true,
    "created_at": "string",
    "disabled": true,
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "is_fallback": true,
    "label": "string",
    "last_used": "string",
    "name": "string",
    "provider": "string",
    "sort_order": -9007199254740991
  }
}

Update BYOK provider credential

PATCH
/api/v1/byok/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Path Parameters

id*string

The BYOK credential ID (UUID).

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X PATCH "https://api.eurouter.ai/api/v1/byok/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "allowed_api_key_hashes": [
      "string"
    ],
    "allowed_models": [
      "string"
    ],
    "always_use": true,
    "created_at": "string",
    "disabled": true,
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "is_fallback": true,
    "label": "string",
    "last_used": "string",
    "name": "string",
    "provider": "string",
    "sort_order": -9007199254740991
  }
}

Delete BYOK provider credential

DELETE
/api/v1/byok/{id}

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Path Parameters

id*string

The BYOK credential ID (UUID).

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Response Body

application/json

curl -X DELETE "https://api.eurouter.ai/api/v1/byok/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{
  "deleted": true
}

Test a stored BYOK provider credential

POST
/api/v1/byok/{id}/test

Authorization

bearerAuth
AuthorizationBearer <token>

API key in format: eur_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Path Parameters

id*string

The BYOK credential ID (UUID).

Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Response Body

application/json

curl -X POST "https://api.eurouter.ai/api/v1/byok/497f6eca-6276-4993-bfeb-53cbbbba6f08/test"
{
  "data": {
    "checks": [
      {
        "latency_ms": -9007199254740991,
        "message": "string",
        "ok": true,
        "target": "string"
      }
    ],
    "provider": "string",
    "success": true
  }
}

Was this page helpful?

Still stuck? Contact support