Billing
List lifetime settled credit consumption
Last updated 30 October 2026
/v1/billing/credit-ledgerRequires billing.read and owner access. Lists all retained settled consumption without a recent-history cutoff, ordered by settledAt and ID descending. Excludes pending/released holds, top-up purchases and balances. Attribution status distinguishes missing evidence from unavailable lookups. initiatedBy is null when unknown. Cursor binds organization/product/time range and freezes until; omitted filters inherit it. No count or total aggregation is required.
Authentication
- bearerAuth
bearerAuth: http / bearer — Use an Inth API key or OAuth access token in the Authorization header. Product operations need a capability. Feedback intake only requires authentication. An OAuth access token carries the capabilities it was granted as scopes; an organization API key carries a fixed set (`organizations.read`, `projects.read`, `projects.write`, `api-keys.read`, `inbox.read`, `billing.read`), so writes that name the person who made them, such as `inbox.write` and `vendors.write`, need a user token. A credential without the capability an operation needs is answered with `403 INSUFFICIENT_SCOPE`. `GET /v1/me` reports the capabilities of the calling credential. OAuth scopes: - `organizations.read`: List the organizations you belong to. - `organizations.write`: Create organizations you will own. - `projects.read`: Read projects, their consent configuration, and the vendors seen on them. - `projects.write`: Create, update, and delete projects and their consent configuration. - `members.read`: Read member names, email addresses, profile images, roles, and pending invitation email addresses. - `members.write`: Invite members, change member roles, remove members, and cancel invitations. - `api-keys.read`: List organization API keys. - `api-keys.write`: Create, roll, and delete organization API keys. - `code-audit.read`: Read Code Audit scans, their findings, and connected repositories. - `code-audit.write`: Start Code Audit scans and unlock their reports. - `inbox.read`: Read Inbox findings. - `inbox.write`: Change Inbox status or assignment and open GitHub issues for findings. - `vendors.write`: Approve or ignore vendors detected on your projects, which resolves their Inbox findings. - `billing.read`: Read the plan and credit balance of an organization. - `billing.details.read`: Read invoices, billing profiles, and payment method summaries for organizations you own. - `consent.read`: Read consent records, analytics, configuration, and runtime status. - `consent.write`: Update consent settings, translations, IAB configuration, and policies. - `consent.keys.read`: Read consent runtime key metadata. Secret values are never returned. - `website-audit.read`: Read website audit targets, scans, reports, cookies, and evidence. - `website-audit.write`: Manage website audit targets, verify domains, review findings, and start scans. - `account.read`: Read your account profile. - `notifications.read`: Read your notification preferences and organization routing. - `organization-retention.read`: Read organization provider data retention policy. - `support.read`: Read support conversations you own or can access through sharing. - `support.write`: Create support conversations, send messages, share or close them, and upload support attachments. - `consent.lifecycle.write`: Update, upgrade or delete Consent runtimes. - `consent.keys.write`: Create, rotate and revoke Consent runtime keys. - `billing.write`: Preview and change plans, buy credits, manage billing details and subscriptions, and open hosted payment flows. - `account.security.read`: Read your active browser sessions and connected device grants. - `account.security.write`: Revoke your browser sessions and connected device grants. - `integrations.read`: Read connected integration accounts, repositories, provider properties and project links. - `integrations.write`: Connect and sync providers, manage repository settings, project links and paid pull request monitoring. - `account.write`: Update your name, avatar and PII masking preference. - `account.delete`: Permanently delete your account after ownership checks and confirmation. - `notifications.write`: Update your notification preferences. - `notifications.routing.write`: Manage organization notification routing. - `organization-retention.write`: Change organization provider data retention policy. - `organizations.settings.write`: Update organization name, logo and slug. - `organizations.delete`: Permanently delete organizations you own after confirmation. - `agents.read`: Read your Inth Agent chats and chats shared with your organization. - `agents.write`: Start Inth Agent chats, send messages, share your chats with the organization, and delete your chats. Agent replies use organization credits.
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
organizationId | string | Optional | Organization ID. Pass an explicit ID for stable automation; defaults to the active organization. |
cursor | string | Optional | Opaque nextCursor from this operation and organization. |
limit | integer | Optional | — |
product | "agent" | "code-audit" | "website-audit" | Optional | — |
since | string (date-time) | Optional | — |
until | string (date-time) | Optional | — |
Responses
200
List lifetime settled credit consumption
Content type application/json
| Property | Type | Required | Description |
|---|---|---|---|
success | boolean | Required | — |
data | object | Required | — |
data.organizationId | string | Required | — |
data.items | object[] | Required | — |
data.items[].id | string | Required | — |
data.items[].activity | string | Required | — |
data.items[].credits | integer | Required | — |
data.items[].detail | string | null | Required | — |
data.items[].groupKey | string | null | Required | — |
data.items[].href | string | null | Required | — |
data.items[].product | "agent" | "code-audit" | "website-audit" | Required | — |
data.items[].productLabel | string | Required | — |
data.items[].settledAt | string | Required | — |
data.items[].initiatedBy | object | null | Required | — |
data.items[].attribution | object | Required | — |
data.items[].attribution.evidenceStatus | "available" | "missing" | "unavailable" | Required | — |
data.items[].attribution.initiatorStatus | "known" | "unknown" | "unavailable" | Required | — |
data.pageSize | integer | Required | — |
data.nextCursor | string | null | Required | — |
data.window | object | Required | — |
data.window.since | string | null | Required | — |
data.window.until | string | Required | — |
data.coverage | "retained-settled-consumption" | Required | — |
View JSON schema
400
The request payload or parameters are invalid.
Content type application/json
| Property | Type | Required | Description |
|---|---|---|---|
success | boolean | Required | — |
error | object | Required | — |
error.code | "UNAUTHORIZED" | "FORBIDDEN" | "INSUFFICIENT_SCOPE" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "INSUFFICIENT_CREDITS" | "SCAN_IN_PROGRESS" | "UNLOCK_REQUIRED" | "REPOSITORY_NOT_LINKED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR" | Required | — |
error.message | string | Required | — |
error.details | unknown | Optional | Optional structured error details. |
View JSON schema
401
Authentication is missing, invalid, or expired.
Content type application/json
| Property | Type | Required | Description |
|---|---|---|---|
success | boolean | Required | — |
error | object | Required | — |
error.code | "UNAUTHORIZED" | "FORBIDDEN" | "INSUFFICIENT_SCOPE" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "INSUFFICIENT_CREDITS" | "SCAN_IN_PROGRESS" | "UNLOCK_REQUIRED" | "REPOSITORY_NOT_LINKED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR" | Required | — |
error.message | string | Required | — |
error.details | unknown | Optional | Optional structured error details. |
View JSON schema
403
The credential is valid but may not perform the operation. `INSUFFICIENT_SCOPE`: the credential was never granted the capability the operation needs. `details.requiredScope` names it, and the `WWW-Authenticate` header carries `Bearer error="insufficient_scope"`. An OAuth client fixes this by requesting the scope; an organization API key cannot gain it. `FORBIDDEN`: the capability is present but the membership behind the credential lacks the role, or the resource belongs to another organization.
Content type application/json
| Property | Type | Required | Description |
|---|---|---|---|
success | boolean | Required | — |
error | object | Required | — |
error.code | "UNAUTHORIZED" | "FORBIDDEN" | "INSUFFICIENT_SCOPE" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "INSUFFICIENT_CREDITS" | "SCAN_IN_PROGRESS" | "UNLOCK_REQUIRED" | "REPOSITORY_NOT_LINKED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR" | Required | — |
error.message | string | Required | — |
error.details | unknown | Optional | Optional structured error details. |
View JSON schema
Headers
| Name | Type | Description |
|---|---|---|
WWW-Authenticate | string | Present on `INSUFFICIENT_SCOPE`: `Bearer error="insufficient_scope", scope="<required scope>"`. |
404
The requested resource was not found.
Content type application/json
| Property | Type | Required | Description |
|---|---|---|---|
success | boolean | Required | — |
error | object | Required | — |
error.code | "UNAUTHORIZED" | "FORBIDDEN" | "INSUFFICIENT_SCOPE" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "INSUFFICIENT_CREDITS" | "SCAN_IN_PROGRESS" | "UNLOCK_REQUIRED" | "REPOSITORY_NOT_LINKED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR" | Required | — |
error.message | string | Required | — |
error.details | unknown | Optional | Optional structured error details. |
View JSON schema
503
The capability is temporarily paused by an operator. Retry later.
Content type application/json
| Property | Type | Required | Description |
|---|---|---|---|
success | boolean | Required | — |
error | object | Required | — |
error.code | "UNAUTHORIZED" | "FORBIDDEN" | "INSUFFICIENT_SCOPE" | "PLAN_LIMIT_REACHED" | "PLAN_REQUIRED" | "INVALID_ORIGIN" | "INVALID_REGION" | "INVALID_PAYLOAD" | "NOT_FOUND" | "CONFLICT" | "KEY_LIMIT_REACHED" | "INSUFFICIENT_CREDITS" | "SCAN_IN_PROGRESS" | "UNLOCK_REQUIRED" | "REPOSITORY_NOT_LINKED" | "PAYLOAD_TOO_LARGE" | "RATE_LIMITED" | "SERVICE_UNAVAILABLE" | "INTERNAL_ERROR" | Required | — |
error.message | string | Required | — |
error.details | unknown | Optional | Optional structured error details. |
View JSON schema
Related
- REST API overview: Every operation in this API.