Checking Consumption
Every time you pull data from Daloopa, it counts against your account's allowances. The Consumption endpoints let you monitor that usage programmatically so you can track spend and see which companies your team has been working with.
There are four endpoints, each answering a different question:
| Endpoint | Path | Answers | Response |
|---|---|---|---|
| Usage summary | GET /consumption | How many datapoints have I used this period, and what is my limit? | Single object |
| Access events | GET /consumption/events | What was each pull? | Paginated list |
| Accessed companies | GET /consumption/companies | Which companies have I pulled data from? | Paginated list |
| Series access | GET /consumption/series-access | How many series have I accessed for a company, and what is my per-company limit? | Single object |
Use the usage summary for a quick balance check, access events for an itemized ledger, accessed companies for a distinct list of everything you have touched, and series access to track the per-company series cap.
Before you start
- Base URL:
https://app.daloopa.com/api/v2 - Authentication: All Consumption endpoints require HTTP Basic authentication with your email and API key. See API Authentication for how to build the header. Every example below assumes you have set it.
What counts as a datapoint?A datapoint is a single value pulled from a company model (one metric, for one period). Consumption is measured in datapoints, not in API calls.
Two kinds of limitsYour account has a monthly datapoint allowance (tracked by
GET /consumption) and a separate series-per-company allowance (tracked byGET /consumption/series-access). A series is the time series for one metric of one company, so the series limit caps how many distinct line items you can open per company.
1. Usage summary
GET /consumption
Returns your datapoint consumption for a date window alongside your monthly limit. This is the fastest way to answer "how much of my allowance have I used?"
Reference: Get Datapoint Consumption
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
start_at | date (YYYY-MM-DD) | No | Start of the window. Defaults to the first day of the current month. |
end_at | date (YYYY-MM-DD) | No | End of the window. Defaults to today. |
Example request
curl "https://app.daloopa.com/api/v2/consumption?start_at=2026-02-01&end_at=2026-02-28" \
-H "Authorization: Basic <base64(email:apiKey)>"Example response
{
"monthly_limit": "3000",
"consumption": 1847,
"initial_date": "2026-02-01",
"final_date": "2026-02-28"
}| Field | Type | Description |
|---|---|---|
monthly_limit | string | Your monthly datapoint allowance. The string "Unlimited" if your plan has no cap. |
consumption | integer | Datapoints consumed within the requested window. |
initial_date | date | Start date used for the calculation. |
final_date | date | End date used for the calculation. |
monthly_limitis your allowance for a full calendar month. If you query a custom window, compare it againstconsumptionwith that context in mind.
2. Access events
GET /consumption/events
Returns an itemized, paginated log of every datapoint access in the window, ordered by time. Each row tells you how many datapoints were pulled, when, from where, and by whom. This is the endpoint to use for per-user attribution and for reconciling a usage total down to individual events.
Reference: List Datapoint Access Events
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
start_at | date (YYYY-MM-DD) | No | Start of the window. Defaults to the first day of the current month. |
end_at | date (YYYY-MM-DD) | No | End of the window. Defaults to today. |
limit | integer | No | Page size (default and max 500). |
offset | integer | No | Records to skip. |
Example request
curl "https://app.daloopa.com/api/v2/consumption/events?start_at=2026-02-01&end_at=2026-02-28&limit=500" \
-H "Authorization: Basic <base64(email:apiKey)>"Example response
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"source": "FundamentalsAPI",
"number_of_datapoints": 120,
"user_identifier": "[email protected]",
"timestamp": "2026-02-03T09:12:44Z"
},
{
"source": "MCP",
"number_of_datapoints": 45,
"user_identifier": "[email protected]",
"timestamp": "2026-02-11T16:30:02Z"
}
]
}| Field | Type | Description |
|---|---|---|
source | string | Which Daloopa surface the datapoints were pulled from. One of FundamentalsAPI, FundamentalsSeriesAPI, ExportAPI, or MCP. |
number_of_datapoints | integer | Datapoints consumed in this single event. |
user_identifier | string | Identifier of the user who triggered the event. |
timestamp | datetime | When the event occurred (UTC). |
Results are ordered by timestamp ascending.
3. Accessed companies
GET /consumption/companies
Returns the distinct list of companies you have previously pulled data from, one entry per company, paginated. Use it to see the breadth of your coverage or to drive a UI that lets users jump back to companies they have worked with.
Reference: List Accessed Companies
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Page size (default and max 500). |
offset | integer | No | Records to skip. |
Example request
curl "https://app.daloopa.com/api/v2/consumption/companies?limit=500" \
-H "Authorization: Basic <base64(email:apiKey)>"Example response
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"company_id": 2,
"company_name": "Apple Inc.",
"ticker": "AAPL",
"first_accessed_at": "2025-01-15T08:30:00Z"
},
{
"company_id": 139,
"company_name": "NIKE, Inc.",
"ticker": "NKE",
"first_accessed_at": "2025-12-13T08:30:00Z"
}
]
}| Field | Type | Description |
|---|---|---|
company_id | integer | Daloopa identifier for the company. Use it with the company endpoints (for example GET /companies/fundamentals) or with GET /consumption/series-access. |
company_name | string | Company name. |
ticker | string | Ticker symbol. |
first_accessed_at | datetime | When you first pulled data from this company (UTC). |
Results are ordered by company_id ascending.
4. Series access for a company
GET /consumption/series-access
Returns how many distinct series you have accessed for a single company, your per-company series limit, and the list of series accessed. Use it to check whether a user is approaching the series cap for a company before pulling more. Get a company_id from GET /consumption/companies or the company endpoints.
Reference: Get Series Access Consumption
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
company_id | integer | Yes | The company to report series access for. |
Example request
curl "https://app.daloopa.com/api/v2/consumption/series-access?company_id=2" \
-H "Authorization: Basic <base64(email:apiKey)>"Example response
{
"company_id": 2,
"current_series_per_company_limit": "500",
"number_of_series_accessed_for_company": 37,
"series_accessed": [
{ "series_id": 10432, "full_series_name": "Apple Inc. | Income Statement | Total Net Sales" },
{ "series_id": 10433, "full_series_name": "Apple Inc. | Income Statement | iPhone Revenue" }
]
}| Field | Type | Description |
|---|---|---|
company_id | integer | The company the report is for. |
current_series_per_company_limit | string | Your per-company series allowance. The string "Unlimited" if your plan has no cap. |
number_of_series_accessed_for_company | integer | Count of distinct series you have accessed for this company. |
series_accessed | array | The series you have accessed, each with a series_id (integer) and full_series_name (string). |
Common workflows
How much of my monthly allowance is left?
Call GET /consumption with no parameters (month-to-date) and subtract:
remaining = monthly_limit - consumption
If monthly_limit is "Unlimited", there is nothing to subtract.
Build a per-user usage report
Page through GET /consumption/events for the window you care about and sum number_of_datapoints grouped by user_identifier. This gives you a seat-by-seat breakdown that reconciles to the total from the usage summary.
Reconcile a total to individual events
For the same window, the sum of number_of_datapoints across all pages of GET /consumption/events equals consumption from GET /consumption. Use this to drill into a period's usage.
List every company you have worked with
Page through GET /consumption/companies until next is null, collecting results. Each company_id can then be fed into the data endpoints to re-pull, or into GET /consumption/series-access to check series usage.
Am I near the series limit for a company?
Call GET /consumption/series-access?company_id=<id> and compare number_of_series_accessed_for_company against current_series_per_company_limit. If the limit is "Unlimited", there is nothing to compare. Run this before bulk-pulling series for a company to avoid hitting the cap mid-job.
Errors
| Status | Meaning |
|---|---|
400 Bad Request | Invalid query parameters (for example, a malformed date, start_at after end_at, or a missing/non-integer company_id on series access). The body includes an error object, a message, and status_code. |
401 Unauthorized / 403 Forbidden | Missing or invalid API key, or the request came from a disallowed IP. |
429 Too Many Requests | You exceeded the 120 requests-per-minute rate limit. |
Updated about 3 hours ago