Hadrian is experimental alpha software. Do not use in production.
Hadrian

Usage

Query usage statistics for API keys including token counts, costs, and breakdowns by date, model, or referer.

Get usage summary for an API key

GET
/admin/v1/api-keys/{key_id}/usage
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

key_id*string

API key ID

Formatuuid

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/api-keys/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage"
{
  "first_request_at": "string",
  "last_request_at": "string",
  "request_count": 0,
  "total_cost": 0.1,
  "total_tokens": 0
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by date for an API key

GET
/admin/v1/api-keys/{key_id}/usage/by-date
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

key_id*string

API key ID

Formatuuid

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/api-keys/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage/by-date"
[
  {
    "date": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by model for an API key

GET
/admin/v1/api-keys/{key_id}/usage/by-model
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

key_id*string

API key ID

Formatuuid

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/api-keys/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage/by-model"
[
  {
    "model": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by referer for an API key

GET
/admin/v1/api-keys/{key_id}/usage/by-referer
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

key_id*string

API key ID

Formatuuid

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/api-keys/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage/by-referer"
[
  {
    "http_referer": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get cost forecast for an API key

GET
/admin/v1/api-keys/{key_id}/usage/forecast
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

key_id*string

API key ID

Formatuuid

Query Parameters

lookback_days?integer|null

Number of days of historical data to use (default: 30)

Formatint32
forecast_days?integer|null

Number of days to forecast ahead (default: 7)

Range0 <= value

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/api-keys/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage/forecast"
{
  "avg_daily_spend": 0.1,
  "budget_limit": 0,
  "budget_period": "string",
  "budget_utilization_percent": 0,
  "current_spend": 0.1,
  "days_until_exhaustion": 0,
  "days_until_exhaustion_lower": 0,
  "days_until_exhaustion_upper": 0,
  "projected_exhaustion_date": "string",
  "projected_period_spend": 0,
  "sample_days": 0,
  "std_dev_daily_spend": 0.1,
  "time_series_forecast": {}
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage summary for a project

GET
/admin/v1/organizations/{org_slug}/projects/{project_slug}/usage
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

org_slug*string

Organization slug

project_slug*string

Project slug

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/projects/string/usage"
{
  "first_request_at": "string",
  "last_request_at": "string",
  "request_count": 0,
  "total_cost": 0.1,
  "total_tokens": 0
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by date for a project

GET
/admin/v1/organizations/{org_slug}/projects/{project_slug}/usage/by-date
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

org_slug*string

Organization slug

project_slug*string

Project slug

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/projects/string/usage/by-date"
[
  {
    "date": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by model for a project

GET
/admin/v1/organizations/{org_slug}/projects/{project_slug}/usage/by-model
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

org_slug*string

Organization slug

project_slug*string

Project slug

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/projects/string/usage/by-model"
[
  {
    "model": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get cost forecast for a project

GET
/admin/v1/organizations/{org_slug}/projects/{project_slug}/usage/forecast
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

org_slug*string

Organization slug

project_slug*string

Project slug

Query Parameters

lookback_days?integer|null

Number of days of historical data to use (default: 30)

Formatint32
forecast_days?integer|null

Number of days to forecast ahead (default: 7)

Range0 <= value

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/projects/string/usage/forecast"
{
  "avg_daily_spend": 0.1,
  "budget_limit": 0,
  "budget_period": "string",
  "budget_utilization_percent": 0,
  "current_spend": 0.1,
  "days_until_exhaustion": 0,
  "days_until_exhaustion_lower": 0,
  "days_until_exhaustion_upper": 0,
  "projected_exhaustion_date": "string",
  "projected_period_spend": 0,
  "sample_days": 0,
  "std_dev_daily_spend": 0.1,
  "time_series_forecast": {}
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage summary for an organization

GET
/admin/v1/organizations/{slug}/usage
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

slug*string

Organization slug

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/usage"
{
  "first_request_at": "string",
  "last_request_at": "string",
  "request_count": 0,
  "total_cost": 0.1,
  "total_tokens": 0
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by date for an organization

GET
/admin/v1/organizations/{slug}/usage/by-date
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

slug*string

Organization slug

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/usage/by-date"
[
  {
    "date": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by model for an organization

GET
/admin/v1/organizations/{slug}/usage/by-model
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

slug*string

Organization slug

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/usage/by-model"
[
  {
    "model": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by provider for an organization

GET
/admin/v1/organizations/{slug}/usage/by-provider
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

slug*string

Organization slug

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/usage/by-provider"
[
  {
    "provider": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get cost forecast for an organization

GET
/admin/v1/organizations/{slug}/usage/forecast
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

slug*string

Organization slug

Query Parameters

lookback_days?integer|null

Number of days of historical data to use (default: 30)

Formatint32
forecast_days?integer|null

Number of days to forecast ahead (default: 7)

Range0 <= value

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/organizations/string/usage/forecast"
{
  "avg_daily_spend": 0.1,
  "budget_limit": 0,
  "budget_period": "string",
  "budget_utilization_percent": 0,
  "current_spend": 0.1,
  "days_until_exhaustion": 0,
  "days_until_exhaustion_lower": 0,
  "days_until_exhaustion_upper": 0,
  "projected_exhaustion_date": "string",
  "projected_period_spend": 0,
  "sample_days": 0,
  "std_dev_daily_spend": 0.1,
  "time_series_forecast": {}
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage summary for a provider

GET
/admin/v1/providers/{provider}/usage
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

provider*string

Provider name

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

curl -X GET "https://loading/admin/v1/providers/string/usage"
{
  "first_request_at": "string",
  "last_request_at": "string",
  "request_count": 0,
  "total_cost": 0.1,
  "total_tokens": 0
}

Get usage by date for a provider

GET
/admin/v1/providers/{provider}/usage/by-date
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

provider*string

Provider name

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

curl -X GET "https://loading/admin/v1/providers/string/usage/by-date"
[
  {
    "date": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]

Get usage by model for a provider

GET
/admin/v1/providers/{provider}/usage/by-model
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

provider*string

Provider name

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

curl -X GET "https://loading/admin/v1/providers/string/usage/by-model"
[
  {
    "model": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]

Get cost forecast for a provider

GET
/admin/v1/providers/{provider}/usage/forecast
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

provider*string

Provider name

Query Parameters

lookback_days?integer|null

Number of days of historical data to use (default: 30)

Formatint32
forecast_days?integer|null

Number of days to forecast ahead (default: 7)

Range0 <= value

Response Body

application/json

curl -X GET "https://loading/admin/v1/providers/string/usage/forecast"
{
  "avg_daily_spend": 0.1,
  "budget_limit": 0,
  "budget_period": "string",
  "budget_utilization_percent": 0,
  "current_spend": 0.1,
  "days_until_exhaustion": 0,
  "days_until_exhaustion_lower": 0,
  "days_until_exhaustion_upper": 0,
  "projected_exhaustion_date": "string",
  "projected_period_spend": 0,
  "sample_days": 0,
  "std_dev_daily_spend": 0.1,
  "time_series_forecast": {}
}

Get usage summary for a user

GET
/admin/v1/users/{user_id}/usage
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

user_id*string

User ID

Formatuuid

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage"
{
  "first_request_at": "string",
  "last_request_at": "string",
  "request_count": 0,
  "total_cost": 0.1,
  "total_tokens": 0
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by date for a user

GET
/admin/v1/users/{user_id}/usage/by-date
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

user_id*string

User ID

Formatuuid

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage/by-date"
[
  {
    "date": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get usage by model for a user

GET
/admin/v1/users/{user_id}/usage/by-model
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

user_id*string

User ID

Formatuuid

Query Parameters

start_date?string|null

Start date (YYYY-MM-DD)

end_date?string|null

End date (YYYY-MM-DD)

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage/by-model"
[
  {
    "model": "string",
    "request_count": 0,
    "total_cost": 0.1,
    "total_tokens": 0
  }
]
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}

Get cost forecast for a user

GET
/admin/v1/users/{user_id}/usage/forecast
AuthorizationBearer <token>

API key authentication using Bearer token format

In: header

Path Parameters

user_id*string

User ID

Formatuuid

Query Parameters

lookback_days?integer|null

Number of days of historical data to use (default: 30)

Formatint32
forecast_days?integer|null

Number of days to forecast ahead (default: 7)

Range0 <= value

Response Body

application/json

application/json

curl -X GET "https://loading/admin/v1/users/497f6eca-6276-4993-bfeb-53cbbbba6f08/usage/forecast"
{
  "avg_daily_spend": 0.1,
  "budget_limit": 0,
  "budget_period": "string",
  "budget_utilization_percent": 0,
  "current_spend": 0.1,
  "days_until_exhaustion": 0,
  "days_until_exhaustion_lower": 0,
  "days_until_exhaustion_upper": 0,
  "projected_exhaustion_date": "string",
  "projected_period_spend": 0,
  "sample_days": 0,
  "std_dev_daily_spend": 0.1,
  "time_series_forecast": {}
}
{
  "error": {
    "code": "budget_exceeded",
    "message": "Budget limit exceeded for monthly period",
    "param": null,
    "request_id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "invalid_request_error"
  }
}