Chief Tools Logo
Bill.DO API v1

Account

id
​integer · required

Account ID.

Example: 42
name
​string · required
​object · required
connected
​boolean · required

Whether Bill.DO can access the DigitalOcean account, false once it needs to be reconnected in the Bill.DO dashboard.

imported_at
​string | null · required

When the first full import of the account finished, null while it is importing.

invoiced_up_to
​string | null · required

The end of the last invoice period that was imported.

stats
​object | null · required

Spend in USD as last calculated by Bill.DO, about every hour. Null while spending reports are not available on the team's plan, or before the first calculation. Use the usage endpoint for figures calculated on request and per resource type or project.

created_at
​string · required

Alert

id
​integer · required

Alert ID.

Example: 17
account_id
​integer · required

ID of the account the alert watches.

Example: 42
type
​string · required

What the alert compares to its limit: hourly (current spend per hour), daily_actual (spend so far today), daily_predicted (predicted spend today), monthly_actual (spend so far this month) or monthly_predicted (predicted spend this month).

Example: monthly_predicted
type_name
​string · required
limit
​number · required

The limit in USD, the alert triggers once the current value exceeds it.

Example: 250
resources
​string[] · required

The resource types whose spend counts towards the alert.

Example: ["droplet","database"]
current_value
​number · required

The current value in USD of what the alert watches.

percentage
​number · required

The current value as a percentage of the limit.

is_alarming
​boolean · required

Whether the alert is triggered: the current value exceeded the limit and did not drop below it since. Recipients are emailed when this changes.

last_checked_at
​string | null · required
last_state_change_at
​string | null · required
created_at
​string | null · required

CreateAlertRequest

type
​string · enum · required

What the alert compares to its limit: hourly (current spend per hour), daily_actual (spend so far today), daily_predicted (predicted spend today), monthly_actual (spend so far this month) or monthly_predicted (predicted spend this month).

Enum values:
hourly
daily_actual
daily_predicted
monthly_actual
monthly_predicted
Example: monthly_predicted
limit
​number · min: 0.0001 · max: 100000000 · required

The limit in USD, the alert triggers once the current value exceeds it.

Example: 250
resources
​string[] · minItems: 1 · unique · required

The resource types whose spend counts towards the alert: app, database, droplet, load_balancer, snapshot or volume.

Enum values:
app
volume
droplet
database
snapshot
load_balancer
Example: ["droplet","database"]

Invoice

id
​string · required

DigitalOcean invoice UUID.

Example: 8a4bc9a2-2f4e-4c1b-9d7e-3b2a1c0d9e8f
period
​string · required

The month the invoice is for.

Example: 2026-09
amount
​number · required

Invoiced amount in USD.

Example: 123.45
preview
​boolean · required

Whether this is a preview of the current month with the costs up to now instead of the final invoice.

url
​string · required

Link to the invoice in the DigitalOcean control panel.

Project

id
​string · required

DigitalOcean project UUID.

Example: 4e1bfbc3-dc3e-41f2-a18f-1b4d7ba71679
name
​string · required
description
​string · required
purpose
​string · required
environment
​string | null · enum · required

Production, Staging or Development, null when not set.

Enum values:
Production
Staging
Development
is_default
​boolean · required

Whether this is the default project of the DigitalOcean team, which holds the resources not assigned to another project.

url
​string · required

Link to the project in the DigitalOcean control panel.

stats
​object | null · required

Spend in USD of the project as last calculated by Bill.DO, about every hour. Null while the team's plan does not include the project filter, or before the first calculation.

created_at
​string | null · required
deleted_at
​string | null · required

When Bill.DO noticed the project was removed from DigitalOcean, null while it exists.

Resource

type
​string · required

app, database, droplet, load_balancer, snapshot or volume.

Example: droplet
id
​string · required

DigitalOcean ID of the resource, unique within its type.

Example: 312409876
name
​string · required
region
​string · required

DigitalOcean region slug, null for resources without a region.

Example: ams3
project_id
​string | null · required

UUID of the DigitalOcean project the resource is assigned to.

Example: 4e1bfbc3-dc3e-41f2-a18f-1b4d7ba71679
tags
​string[] · required
​object · required

The cost in USD, null when Bill.DO has no price for the size of the resource.

​object · required

The specifications of the resource, which depend on its type.

created_at
​string | null · required

When the resource was created at DigitalOcean.

deleted_at
​string | null · required

When Bill.DO noticed the resource was removed from DigitalOcean, null while it exists.

Team

slug
​string · required

Team slug, the value of the X-Chief-Team header.

Example: acme
name
​string · required
timezone
​string | null · required

Timezone of the team.

Example: Europe/Amsterdam
​object · required

The plan limits of the team. A null limit is unlimited.

project_filter
​boolean · required

Whether the plan includes usage per project and filtering usage, history and resources on a project.

spending_reports
​boolean · required

Whether spending reports (usage, history, projects and resources) are available, false while the monthly spend is above the plan limit.

can_create_alerts
​boolean · required

Whether another alert can be created within the plan limit.

UpdateAlertRequest

The fields of an alert to change, fields left out keep their value.
type
​string · enum

What the alert compares to its limit: hourly (current spend per hour), daily_actual (spend so far today), daily_predicted (predicted spend today), monthly_actual (spend so far this month) or monthly_predicted (predicted spend this month).

Enum values:
hourly
daily_actual
daily_predicted
monthly_actual
monthly_predicted
Example: monthly_predicted
limit
​number · min: 0.0001 · max: 100000000

The limit in USD, the alert triggers once the current value exceeds it.

Example: 250
resources
​string[] · minItems: 1 · unique

The resource types whose spend counts towards the alert: app, database, droplet, load_balancer, snapshot or volume.

Enum values:
app
volume
droplet
database
snapshot
load_balancer
Example: ["droplet","database"]

UsageRange

string · enum
Enum values:
today
yesterday
past_7_days
past_30_days
past_90_days
month
past_month
year

The time ranges usage history can be requested for, matching the ranges of the dashboard graph.