Billing Public API

Query saldo akun, penggunaan model, dan biaya model dari alat billing Anda

Billing Public API digunakan untuk membaca data billing Atlas Cloud dari script, dashboard, dan sistem keuangan.

Base URL: https://api.atlascloud.ai/public/v1

Endpoint

EndpointDeskripsi
GET /balanceSaldo akun saat ini dan ringkasan credit grant
GET /model-usageBucket penggunaan model harian
GET /model-costsBucket biaya model harian

Schema lengkap tersedia di API reference:

Authentication

Kirim Atlas Cloud API Key di header Authorization:

Authorization: Bearer apikey-...

Buat API Key dari API Keys. Secret key diawali dengan apikey-.

Beberapa response dan filter menggunakan API Key public ID seperti ak_.... ID ini aman untuk ditampilkan di laporan billing, tetapi bukan credential.

Permissions

/model-usage dan /model-costs memakai scope=self secara default dan mengembalikan penggunaan yang dikaitkan dengan user terautentikasi, termasuk API Key yang dimilikinya.

Gunakan scope=account untuk query penggunaan dan biaya seluruh akun. Scope ini memerlukan account-level model billing read permission. /balance selalu memakai account scope dan memerlukan account balance read permission.

Owner personal account dapat membaca data billing akunnya sendiri. Untuk team account, gunakan role Account Admin atau Finance.

Query Balance

curl "https://api.atlascloud.ai/public/v1/balance" \
  -H "Authorization: Bearer apikey-..."

Nilai uang dikembalikan sebagai string enam desimal dengan currency:

{
  "value": "125.500000",
  "currency": "usd"
}

Usage and Cost Query Parameters

start_date dan end_date wajib diisi sebagai tanggal UTC dengan format YYYY-MM-DD. end_date bersifat exclusive, dan rentang maksimal adalah 180 hari.

Parameter umum untuk /model-usage dan /model-costs. Jika group_by[] tidak dikirim, respons berisi total harian:

ParameterDeskripsi
start_dateTanggal mulai UTC inklusif dalam format YYYY-MM-DD
end_dateTanggal akhir UTC eksklusif dalam format YYYY-MM-DD; rentang maksimal 180 hari
scopeself atau account; default self
group_by[]Pengelompokan opsional. Set yang didukung: model_type, model, api_key, atau model plus api_key; gunakan group_by[]=model untuk rincian per model
model_types[]Ulangi dengan text, image, atau video
model_ids[]Filter berdasarkan model ID; maksimal 100 nilai
api_key_ids[]Filter berdasarkan public ID ak_...; maksimal 100 nilai
limitBaris per halaman, 1 sampai 1000; default 100
pageCursor opaque dari next_page

Gunakan parameter berulang untuk array. Nilai yang dipisahkan koma akan ditolak.

Query Usage

Respons default mengembalikan total penggunaan harian.

curl "https://api.atlascloud.ai/public/v1/model-usage?start_date=2026-05-01&end_date=2026-05-08" \
  -H "Authorization: Bearer apikey-..."

Query Costs

/model-costs memakai rentang tanggal, scope, filter, pengelompokan, dan parameter paginasi yang sama seperti /model-usage. Jika group_by[] tidak dikirim, respons berisi total biaya harian.

curl "https://api.atlascloud.ai/public/v1/model-costs?start_date=2026-05-01&end_date=2026-05-08&scope=account&group_by[]=model&group_by[]=api_key" \
  -H "Authorization: Bearer apikey-..."

Pagination

Saat has_more bernilai true, kirim next_page apa adanya sebagai parameter query page. Cursor bersifat opaque; jangan decode, dan jangan ubah parameter query lainnya.

Errors and Rate Limits

Error memakai envelope stabil:

{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_date",
    "message": "start_date must be YYYY-MM-DD",
    "param": "start_date"
  },
  "request_id": "req_..."
}

Response yang terkena rate limit mengembalikan 429 rate_limit_error dan dapat menyertakan header Retry-After.