curl -X GET "https://api-integration.ollang.com/integration/consumption?pageOptions[page]=1&pageOptions[take]=10&pageOptions[orderBy]=occurredAt&pageOptions[orderDirection]=desc" \
-H "X-Api-Key: <your-api-key>"
curl -X GET "https://api-integration.ollang.com/integration/consumption" \
-H "X-Api-Key: <your-api-key>" \
-G \
-d "pageOptions[page]=1" \
-d "pageOptions[take]=20" \
-d "filter[from]=2026-01-01T00:00:00Z" \
-d "filter[to]=2026-01-31T23:59:59Z" \
-d "filter[provider]=elevenlabs" \
-d "filter[orderType]=document" \
-d "filter[createdBy]=jane@acme.com" \
-d "filter[tag]=Energy Studio"
const params = new URLSearchParams({
"pageOptions[page]": "1",
"pageOptions[take]": "10",
"pageOptions[orderBy]": "occurredAt",
"pageOptions[orderDirection]": "desc",
});
const response = await fetch(
`https://api-integration.ollang.com/integration/consumption?${params}`,
{
method: "GET",
headers: {
"X-Api-Key": "<your-api-key>",
},
}
);
const params = new URLSearchParams({
"pageOptions[page]": "1",
"pageOptions[take]": "20",
"filter[from]": "2026-01-01T00:00:00Z",
"filter[to]": "2026-01-31T23:59:59Z",
"filter[provider]": "elevenlabs",
"filter[orderType]": "document",
"filter[createdBy]": "jane@acme.com",
"filter[tag]": "Energy Studio",
});
const response = await fetch(
`https://api-integration.ollang.com/integration/consumption?${params}`,
{
headers: {
"X-Api-Key": "<your-api-key>",
},
}
);
import requests
params = {
'pageOptions[page]': 1,
'pageOptions[take]': 10,
'pageOptions[orderBy]': 'occurredAt',
'pageOptions[orderDirection]': 'desc'
}
headers = {
'X-Api-Key': '<your-api-key>'
}
response = requests.get(
'https://api-integration.ollang.com/integration/consumption',
params=params,
headers=headers
)
import requests
params = {
'pageOptions[page]': 1,
'pageOptions[take]': 20,
'filter[from]': '2026-01-01T00:00:00Z',
'filter[to]': '2026-01-31T23:59:59Z',
'filter[provider]': 'elevenlabs',
'filter[orderType]': 'document',
'filter[createdBy]': 'jane@acme.com',
'filter[tag]': 'Energy Studio'
}
headers = {
'X-Api-Key': '<your-api-key>'
}
response = requests.get(
'https://api-integration.ollang.com/integration/consumption',
params=params,
headers=headers
)
$params = http_build_query([
'pageOptions' => [
'page' => 1,
'take' => 10,
'orderBy' => 'occurredAt',
'orderDirection' => 'desc'
]
]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-integration.ollang.com/integration/consumption?' . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'X-Api-Key: <your-api-key>'
),
));
$response = curl_exec($curl);
curl_close($curl);
package main
import (
"fmt"
"net/http"
"net/url"
)
func main() {
baseURL := "https://api-integration.ollang.com/integration/consumption"
params := url.Values{}
params.Add("pageOptions[page]", "1")
params.Add("pageOptions[take]", "10")
params.Add("pageOptions[orderBy]", "occurredAt")
params.Add("pageOptions[orderDirection]", "desc")
req, _ := http.NewRequest("GET", baseURL + "?" + params.Encode(), nil)
req.Header.Set("X-Api-Key", "<your-api-key>")
client := &http.Client{}
resp, _ := client.Do(req)
}
String params = "pageOptions[page]=1&pageOptions[take]=10&pageOptions[orderBy]=occurredAt&pageOptions[orderDirection]=desc";
HttpResponse<String> response = Unirest.get("https://api-integration.ollang.com/integration/consumption?" + params)
.header("X-Api-Key", "<your-api-key>")
.asString();
{
"data": [
{
"id": "cons_60b8d6f1e1b9b1d8c6c0d8e1",
"orderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"orderName": "Sample Project - Episode 1",
"createdBy": {
"id": "user_abc123",
"name": "Jane Doe",
"email": "jane@acme.com"
},
"orderType": "document",
"creditsUsed": 9923,
"usdEquivalent": 9.92,
"provider": "Elevenlabs",
"providerKey": "elevenlabs",
"service": "Text to Speech",
"tags": ["Energy Studio"],
"occurredAt": "2026-01-15T10:30:00Z",
"projectId": "proj_xyz789"
}
],
"meta": {
"page": 1,
"take": 10,
"itemCount": 1,
"pageCount": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
}
{
"error": "Unauthorized",
"message": "Invalid or missing API key",
"code": "UNAUTHORIZED"
}
{
"error": "Access denied",
"message": "The API key user lacks the client_owner or client_accessBillings role",
"code": "ACCESS_DENIED"
}
Ollang API Reference
List Consumption
Retrieve a paginated list of AI credit consumption line items with filtering
GET
/
integration
/
consumption
curl -X GET "https://api-integration.ollang.com/integration/consumption?pageOptions[page]=1&pageOptions[take]=10&pageOptions[orderBy]=occurredAt&pageOptions[orderDirection]=desc" \
-H "X-Api-Key: <your-api-key>"
curl -X GET "https://api-integration.ollang.com/integration/consumption" \
-H "X-Api-Key: <your-api-key>" \
-G \
-d "pageOptions[page]=1" \
-d "pageOptions[take]=20" \
-d "filter[from]=2026-01-01T00:00:00Z" \
-d "filter[to]=2026-01-31T23:59:59Z" \
-d "filter[provider]=elevenlabs" \
-d "filter[orderType]=document" \
-d "filter[createdBy]=jane@acme.com" \
-d "filter[tag]=Energy Studio"
const params = new URLSearchParams({
"pageOptions[page]": "1",
"pageOptions[take]": "10",
"pageOptions[orderBy]": "occurredAt",
"pageOptions[orderDirection]": "desc",
});
const response = await fetch(
`https://api-integration.ollang.com/integration/consumption?${params}`,
{
method: "GET",
headers: {
"X-Api-Key": "<your-api-key>",
},
}
);
const params = new URLSearchParams({
"pageOptions[page]": "1",
"pageOptions[take]": "20",
"filter[from]": "2026-01-01T00:00:00Z",
"filter[to]": "2026-01-31T23:59:59Z",
"filter[provider]": "elevenlabs",
"filter[orderType]": "document",
"filter[createdBy]": "jane@acme.com",
"filter[tag]": "Energy Studio",
});
const response = await fetch(
`https://api-integration.ollang.com/integration/consumption?${params}`,
{
headers: {
"X-Api-Key": "<your-api-key>",
},
}
);
import requests
params = {
'pageOptions[page]': 1,
'pageOptions[take]': 10,
'pageOptions[orderBy]': 'occurredAt',
'pageOptions[orderDirection]': 'desc'
}
headers = {
'X-Api-Key': '<your-api-key>'
}
response = requests.get(
'https://api-integration.ollang.com/integration/consumption',
params=params,
headers=headers
)
import requests
params = {
'pageOptions[page]': 1,
'pageOptions[take]': 20,
'filter[from]': '2026-01-01T00:00:00Z',
'filter[to]': '2026-01-31T23:59:59Z',
'filter[provider]': 'elevenlabs',
'filter[orderType]': 'document',
'filter[createdBy]': 'jane@acme.com',
'filter[tag]': 'Energy Studio'
}
headers = {
'X-Api-Key': '<your-api-key>'
}
response = requests.get(
'https://api-integration.ollang.com/integration/consumption',
params=params,
headers=headers
)
$params = http_build_query([
'pageOptions' => [
'page' => 1,
'take' => 10,
'orderBy' => 'occurredAt',
'orderDirection' => 'desc'
]
]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-integration.ollang.com/integration/consumption?' . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'X-Api-Key: <your-api-key>'
),
));
$response = curl_exec($curl);
curl_close($curl);
package main
import (
"fmt"
"net/http"
"net/url"
)
func main() {
baseURL := "https://api-integration.ollang.com/integration/consumption"
params := url.Values{}
params.Add("pageOptions[page]", "1")
params.Add("pageOptions[take]", "10")
params.Add("pageOptions[orderBy]", "occurredAt")
params.Add("pageOptions[orderDirection]", "desc")
req, _ := http.NewRequest("GET", baseURL + "?" + params.Encode(), nil)
req.Header.Set("X-Api-Key", "<your-api-key>")
client := &http.Client{}
resp, _ := client.Do(req)
}
String params = "pageOptions[page]=1&pageOptions[take]=10&pageOptions[orderBy]=occurredAt&pageOptions[orderDirection]=desc";
HttpResponse<String> response = Unirest.get("https://api-integration.ollang.com/integration/consumption?" + params)
.header("X-Api-Key", "<your-api-key>")
.asString();
{
"data": [
{
"id": "cons_60b8d6f1e1b9b1d8c6c0d8e1",
"orderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"orderName": "Sample Project - Episode 1",
"createdBy": {
"id": "user_abc123",
"name": "Jane Doe",
"email": "jane@acme.com"
},
"orderType": "document",
"creditsUsed": 9923,
"usdEquivalent": 9.92,
"provider": "Elevenlabs",
"providerKey": "elevenlabs",
"service": "Text to Speech",
"tags": ["Energy Studio"],
"occurredAt": "2026-01-15T10:30:00Z",
"projectId": "proj_xyz789"
}
],
"meta": {
"page": 1,
"take": 10,
"itemCount": 1,
"pageCount": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
}
{
"error": "Unauthorized",
"message": "Invalid or missing API key",
"code": "UNAUTHORIZED"
}
{
"error": "Access denied",
"message": "The API key user lacks the client_owner or client_accessBillings role",
"code": "ACCESS_DENIED"
}
Returns a paginated list of AI credit consumption line items — one row per provider run — equivalent to the dashboard Consumption Breakdown export. Each line includes the credits used, the USD equivalent under your account rate, the provider and service, the requestor who created the order, and the requestor’s program tags.
This endpoint is restricted to account owners and billing managers. The API key must belong to a user with the
client_owner or client_accessBillings role, otherwise the request is rejected with 403.curl -X GET "https://api-integration.ollang.com/integration/consumption?pageOptions[page]=1&pageOptions[take]=10&pageOptions[orderBy]=occurredAt&pageOptions[orderDirection]=desc" \
-H "X-Api-Key: <your-api-key>"
curl -X GET "https://api-integration.ollang.com/integration/consumption" \
-H "X-Api-Key: <your-api-key>" \
-G \
-d "pageOptions[page]=1" \
-d "pageOptions[take]=20" \
-d "filter[from]=2026-01-01T00:00:00Z" \
-d "filter[to]=2026-01-31T23:59:59Z" \
-d "filter[provider]=elevenlabs" \
-d "filter[orderType]=document" \
-d "filter[createdBy]=jane@acme.com" \
-d "filter[tag]=Energy Studio"
const params = new URLSearchParams({
"pageOptions[page]": "1",
"pageOptions[take]": "10",
"pageOptions[orderBy]": "occurredAt",
"pageOptions[orderDirection]": "desc",
});
const response = await fetch(
`https://api-integration.ollang.com/integration/consumption?${params}`,
{
method: "GET",
headers: {
"X-Api-Key": "<your-api-key>",
},
}
);
const params = new URLSearchParams({
"pageOptions[page]": "1",
"pageOptions[take]": "20",
"filter[from]": "2026-01-01T00:00:00Z",
"filter[to]": "2026-01-31T23:59:59Z",
"filter[provider]": "elevenlabs",
"filter[orderType]": "document",
"filter[createdBy]": "jane@acme.com",
"filter[tag]": "Energy Studio",
});
const response = await fetch(
`https://api-integration.ollang.com/integration/consumption?${params}`,
{
headers: {
"X-Api-Key": "<your-api-key>",
},
}
);
import requests
params = {
'pageOptions[page]': 1,
'pageOptions[take]': 10,
'pageOptions[orderBy]': 'occurredAt',
'pageOptions[orderDirection]': 'desc'
}
headers = {
'X-Api-Key': '<your-api-key>'
}
response = requests.get(
'https://api-integration.ollang.com/integration/consumption',
params=params,
headers=headers
)
import requests
params = {
'pageOptions[page]': 1,
'pageOptions[take]': 20,
'filter[from]': '2026-01-01T00:00:00Z',
'filter[to]': '2026-01-31T23:59:59Z',
'filter[provider]': 'elevenlabs',
'filter[orderType]': 'document',
'filter[createdBy]': 'jane@acme.com',
'filter[tag]': 'Energy Studio'
}
headers = {
'X-Api-Key': '<your-api-key>'
}
response = requests.get(
'https://api-integration.ollang.com/integration/consumption',
params=params,
headers=headers
)
$params = http_build_query([
'pageOptions' => [
'page' => 1,
'take' => 10,
'orderBy' => 'occurredAt',
'orderDirection' => 'desc'
]
]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api-integration.ollang.com/integration/consumption?' . $params,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => array(
'X-Api-Key: <your-api-key>'
),
));
$response = curl_exec($curl);
curl_close($curl);
package main
import (
"fmt"
"net/http"
"net/url"
)
func main() {
baseURL := "https://api-integration.ollang.com/integration/consumption"
params := url.Values{}
params.Add("pageOptions[page]", "1")
params.Add("pageOptions[take]", "10")
params.Add("pageOptions[orderBy]", "occurredAt")
params.Add("pageOptions[orderDirection]", "desc")
req, _ := http.NewRequest("GET", baseURL + "?" + params.Encode(), nil)
req.Header.Set("X-Api-Key", "<your-api-key>")
client := &http.Client{}
resp, _ := client.Do(req)
}
String params = "pageOptions[page]=1&pageOptions[take]=10&pageOptions[orderBy]=occurredAt&pageOptions[orderDirection]=desc";
HttpResponse<String> response = Unirest.get("https://api-integration.ollang.com/integration/consumption?" + params)
.header("X-Api-Key", "<your-api-key>")
.asString();
Authorizations
This endpoint requires API key authentication. Include your API key in the request header:- Header name:
X-Api-Key - Header value: Your API key from the Ollang dashboard
- Format:
X-Api-Key: your-api-key-here
client_owner or client_accessBillings role. Requests from keys without one of these billing roles are rejected with 403.
Query Parameters
Pagination Parameters
number
default:"1"
The page number to retrieve. Must be 1 or greater.
number
default:"10"
The number of items per page. Must be between 1 and 50.
Sorting Parameters
string
default:"id"
The field to sort the results by. Common values:
occurredAt, creditsUsed,
provider.string
default:"desc"
The direction to sort the results. Options:
asc, desc.Search Parameters
string
A search term to filter the results across relevant fields.
Filter Parameters
string
Search by order name (case-insensitive contains).
string
Include consumption from this date onward (inclusive, ISO 8601 format).
string
Include consumption up to this date (inclusive, ISO 8601 format).
string
Filter by provider key, for example
openai, gemini, or elevenlabs. Use
the providerKey value returned on each line item.string
Filter by order type. Values:
cc, subtitle, document, aiDubbing,
studioDubbing, proofreading, other, revision (see
Order Types).string
Filter by requestor. Accepts a user id or an email address.
string
Filter by a single order id.
string
Filter by a single program tag value, for example
Energy Studio.Response
array
Array of consumption line items — one row per provider run.
Show Consumption Line Item Properties
Show Consumption Line Item Properties
string
Stable consumption line id.
string
Id of the order this consumption line belongs to.
string
Display name of the order.
object
string
Type of the order. Possible values:
cc, subtitle, document, aiDubbing,
studioDubbing, proofreading, other, revision.number
Credits consumed for this line. Unit: credits.
number
USD equivalent under the account commercial rate (credits / 1000). Unit: USD.
string
Provider display name (for example
Elevenlabs).string
Raw provider key used for filtering (for example
elevenlabs).string
Service / pipeline stage (for example
Text to Speech).array
Program tags of the requestor.
string
ISO 8601 timestamp of when the consumption occurred.
string
Id of the project the order belongs to. Optional.
object
{
"data": [
{
"id": "cons_60b8d6f1e1b9b1d8c6c0d8e1",
"orderId": "60b8d6f1e1b9b1d8c6c0d8e1",
"orderName": "Sample Project - Episode 1",
"createdBy": {
"id": "user_abc123",
"name": "Jane Doe",
"email": "jane@acme.com"
},
"orderType": "document",
"creditsUsed": 9923,
"usdEquivalent": 9.92,
"provider": "Elevenlabs",
"providerKey": "elevenlabs",
"service": "Text to Speech",
"tags": ["Energy Studio"],
"occurredAt": "2026-01-15T10:30:00Z",
"projectId": "proj_xyz789"
}
],
"meta": {
"page": 1,
"take": 10,
"itemCount": 1,
"pageCount": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
}
{
"error": "Unauthorized",
"message": "Invalid or missing API key",
"code": "UNAUTHORIZED"
}
{
"error": "Access denied",
"message": "The API key user lacks the client_owner or client_accessBillings role",
"code": "ACCESS_DENIED"
}
Was this page helpful?
⌘I