Skip to main content

Reading Your Call Log and Exporting Usage

Written by Kadri - RichAPI Support Team

The RichAPI call log lists one row for every API call your workspace made. The log lives in the Recent Calls tab of the Usage & Credits page. Each row shows the endpoint, the time, the HTTP status, a Billable or Free badge, and the credits charged. Export CSV emails a file with one row per call for a range of up to 90 days.

This article covers the per-call log and the CSV export. For the credit formulas, the three billing models, and the GET /usage endpoint, read Tracking Credit Usage and Billing.

How to open the call log

The call log is a tab inside the Activity section of the Usage & Credits page.

  1. Open your workspace.

  2. Select Usage & Credits in the navigation.

  3. Scroll to the Activity section.

  4. Select the Recent Calls tab.

  5. Set the date range in the picker at the top right of the page.

The page URL is /home/<workspace-slug>/usage. The log covers every API key in the workspace, not only the key you last used. Every member of the workspace can read the log and request an export. Reading the log and exporting it cost no credits.

RichAPI Usage Activity Table

What does each call log column mean?

The Recent Calls table shows six columns. Rows are sorted newest first.

Column

Meaning

Endpoint

The endpoint name, shown in title case. enrich_profile shows as Enrich Profile.

Called

Relative time. Under one minute shows just now. Older calls show 12m ago, 5h ago, or 3d ago.

Status

The HTTP status. A green badge marks 200 to 299. A red badge marks every other status. Unknown marks a missing status.

Billable

Billable for a call that consumed credits. Free for a call that consumed none.

Credits

Credits charged for this one call. A Free row always shows 0.

Details

Expands the row. Select Details again to collapse it.

Point at the value in the Called column to read the exact UTC timestamp of the call.

What is in the Details panel of a call?

Details expands one row of the call log into six fields. A field with no value shows an em dash.

Field

Meaning

Latency

Elapsed milliseconds for the call, for example 842ms.

Provider

Not reported. The field always shows an em dash.

Cache hit

Yes for a response served from cache. No for a fresh response.

Results

The number of results the response returned. Populated for per-result endpoints.

Your price

The dollar price of the call, to four decimal places, for example $0.0200.

Job ID

The asynchronous job the call belongs to.

Cache hit and Your price are visible only here. Neither field ships in the CSV export.

Which date ranges can the call log show?

The date range picker sits at the top right of the Usage & Credits page, beside Export CSV. The picker drives the call log, the charts, and the totals together. The default range is the last 30 days.

Preset

Range

Today

The current day.

Last 7 days

Today and the six days before it.

Last 30 days

Today and the 29 days before it.

This month

The first day of the current month through today.

Last month

The whole previous calendar month.

For a custom range, select a start date and an end date in the two-month calendar. A future date is not selectable.

CAUTION: A range longer than 90 days fails to load. The page shows Couldn't load usage for this range. Try again or pick a different range. Pick a shorter range.

How to search and filter the call log

The search box and the status control sit above the Recent Calls table. Both filters apply to the rows the page already loaded.

  1. Type an endpoint name in the Search endpoint... box.

  2. Select all, ok, or error in the status control.

  3. Select Load more to add another 25 rows.

Control

Effect

Search endpoint...

Keeps rows whose endpoint name contains the text. The match runs against the system name, in lower case with underscores.

all

Keeps every row.

ok

Keeps rows with a status from 200 to 299.

error

Keeps every other row, including rows with an Unknown status.

The search matches the system name, so enrich matches Enrich Profile and Enrich Profile matches nothing. Type one word, or type the name with underscores.

How many calls does the call log show?

The call log loads at most 500 calls for the selected range. The table then shows 25 of those rows at a time.

Limit

Value

Calls loaded per range

500

Rows shown before Load more

25

Rows added by Load more

25

The table shows no total for the range. The search box and the status control filter only those 500 loaded rows. For the complete set of calls, export the range to CSV.

How to read a failure in the call log

A failure is a row with a red Status badge. RichAPI charges no credits for a failure, so the row also shows Free and 0 credits.

  1. Select error in the status control to keep only failures.

  2. Read the number in the Status badge.

  3. Select Details to read Latency and Job ID.

  4. Correct the request with the table below.

  5. Send the request again.

Status

Meaning

What to do

400

The request body failed validation.

Correct the parameter that the error message names.

401

The API key is missing, wrong, or revoked.

Send a valid key in the x-api-key header.

402

The organization has too few credits, or the team reached its monthly spend limit.

Ask an organization owner to buy credits on the Plans & Billing page, or to raise the team's spend limit.

403

Endpoint not available on your plan. This key has no access to that endpoint.

Check the key in API Keys. Check the endpoint in the catalog.

404

The endpoint name in the URL is unknown.

Correct the path.

405

The endpoint accepts POST only.

Send the request as POST.

429

Too many requests for the rate tier.

Wait, then send the request again.

500

RichAPI failed.

Send the request again. If the failure repeats, write to [email protected].

502

The data provider failed.

Send the request again.

504

The data provider timed out.

Send the request again.

Unknown

RichAPI recorded no status for the call.

Match the call by time and endpoint in the CSV export.

A row with a green status badge and a Free badge is not a failure. RichAPI records 0 credits for an asynchronous job status poll. It also records 0 credits for an email or phone lookup that found nothing. A per-result search with no base price and no results also costs 0.

How to export the call log as a CSV

The export produces one row per API call, oldest first. RichAPI builds the file in the background and emails a download link. Any member of the workspace can request an export.

  1. Open the Usage & Credits page.

  2. Select Export CSV at the top right.

  3. Check the Date range field in the Export Usage dialog.

  4. Select All data in this range, or select Filtered data.

  5. For Filtered data, pick an Endpoint and a Billable value.

  6. Select Export.

The dialog opens with the date range the page currently shows. Change the range inside the dialog for a different period. The dialog range and the page range are independent.

RichAPI Export Usage Modal

CAUTION: An export range must not exceed 90 days. The dialog counts the days, disables Export, and shows Range is <n> days — exports are limited to 90 days. Pick a shorter range.

After you select Export, a message confirms the address the file goes to. The email arrives at the account email of the person who requested the export. RichAPI takes that address from your signed-in account, so an export never goes to a typed address.

Which filters does the export apply?

The export dialog has two filters. Both filters apply only to a Filtered data export.

Filter

Values

Effect

Endpoint

Any endpoint, or one endpoint from the catalog.

Keeps calls to that one endpoint.

Billable

Any, Billable only, Free only.

Keeps calls that consumed credits, or calls that consumed none.

The dialog states this rule as well: only the endpoint filter and the billable filter apply to an export. The Search endpoint... text and the all / ok / error control in the call log do not carry over. To export a single endpoint, set it in the Endpoint filter.

What is in the export email?

RichAPI sends one email for every export request, for a success and for a failure alike.

  • Subject on success: Your usage export for <start> to <end> is ready

  • Subject on failure: Your usage export for <start> to <end> could not be completed

  • File name: usage_<start>_<end>.csv.gz

  • Format: Gzip-compressed CSV

  • Body: the call count, the file size, the download link, and the expiry date

  • Link lifetime: 7 days

WARNING: The download link is a password. Anyone who holds the link can download the file with no sign-in and no API key. Do not forward the email.

Which columns does the usage CSV contain?

The export file holds these 11 columns, in this order, with one row per API call.

CSV column

Meaning

called_at

The time of the call, as an ISO 8601 UTC timestamp.

api_name

The system name of the endpoint, for example enrich_profile.

api_key_name

The name of the API key that sent the call. The cell is empty for a key that no longer exists.

status_code

The HTTP status the call returned.

billable

True for a call that consumed credits. False for a call that consumed none.

credits

Credits charged for this one call. 0 for a non-billable call.

job_id

The asynchronous job the call belongs to. Empty for a synchronous call.

request_id

The correlation id for the call. Quote this value in a support request.

latency_ms

Elapsed milliseconds for the call.

result_count

The number of results the response returned. 0 for a per-call endpoint.

plan_credits

The Enrichment Pass credits that the call used. Empty when bundle credits paid for the whole call. credits always holds the whole charge.

Rows run oldest first, because an export is a statement of a period. The file covers every API key in the workspace. Group by api_key_name to split the spend per key.

A cell that starts with =, +, -, @, a tab, or a carriage return arrives with a leading apostrophe. Excel and Google Sheets read such a cell as a formula, and the apostrophe marks it as text instead. The apostrophe is part of the protection, not part of your data.

Which fields does the usage export leave out?

The CSV carries the facts a customer needs to audit a charge. RichAPI leaves out three kinds of field on purpose.

Left out of the CSV

Why

Where to read it instead

The dollar price of a call

credits is the charged amount. One credit is worth $0.02, so the dollars are one multiplication away.

Your price in the Details panel of a call log row.

The cache-hit flag

A cached response is a successful response and costs the same, so the flag changes no charge.

Cache hit in the Details panel.

The status-poll flag

A job status poll is always non-billable and always 0 credits, so it cannot move a credit total.

The Free badge and 0 credits in the call log.

credits holds the whole charge for each call. plan_credits shows the part of that charge that Enrichment Pass credits paid. At list price, multiply credits by 0.02 for the dollar value of a range.

How to reconcile the call log against an invoice

A RichAPI invoice charges for credits you bought. The call log accounts for credits you spent. Reconciliation is therefore two comparisons, not one. Read the invoice in the Stripe billing portal, which opens from Manage Payment Method on the Plans & Billing page. Only an organization owner can open the billing portal.

  1. Read the period on the invoice.

  2. Set the date range picker to the same first day and last day.

  3. Read Credits Used in the Overview card.

  4. Select Export CSV, keep the same range, and select All data in this range.

  5. Open the emailed file and sum the credits column.

  6. Compare that sum against Credits Used. The two describe the same calls.

  7. Multiply the sum by 0.02 for the dollar value of the spend.

  8. Compare the credits the invoice added against the purchase rows in Transaction History on the Plans & Billing page.

The CSV sum and the dashboard total read the same stored rows, so a difference always has one of the causes below.

Symptom

Cause

What to do

The CSV sum and Credits Used differ in the last decimal.

The dashboard total is rounded to two decimals. The CSV rows are not.

Trust the CSV sum.

A day at the edge of the range is missing or extra.

RichAPI records and aggregates in UTC. A local-time day starts at a different instant.

Compare called_at, which is UTC, against the invoice period.

The invoice total does not equal the credits spent.

An invoice charges for credits bought. Credits carry over between periods.

Compare the invoice against the purchase rows in Transaction History, not against Credits Used.

The CSV holds far more rows than the call log showed.

The call log loads at most 500 calls per range. The export holds every call.

Use the CSV for any count or any total.

The spend is higher than one key explains.

The workspace bills every API key together.

Group the CSV by api_key_name.

Many rows show 0 in the credits column.

RichAPI charges only for a 2xx response that is not a job status poll.

Filter the CSV to billable = True to see the charged calls alone.

A search cost less than the request asked for.

A per-result endpoint charges for the results returned, not the results requested.

Read result_count on that row.

How to fix an export that does not arrive

Symptom

Cause

What to do

Export stays disabled.

The selected range is longer than 90 days.

Shorten the range. The dialog names the day count.

The dialog reports too many exports already running.

RichAPI limits how many exports run at one time.

Wait 60 seconds, then request the export again.

The email says the range holds too many calls.

One export file holds up to 10,000,000 calls.

Split the period into shorter ranges, or set the Endpoint filter.

The email reports a failure with no reason.

The export failed while RichAPI built the file.

Request the export again. If the failure repeats, write to [email protected].

The download link returns "invalid or has expired".

A download link is valid for 7 days.

Request a new export.

No email arrives at all.

The file goes to the account email of the person who requested it.

Check that address, and check the spam folder.

The call log shows no rows.

The range holds no calls, or a filter excludes them all.

Select all in the status control and clear the search box.

Frequently asked questions

Where do I find the RichAPI call log?

The RichAPI call log is the Recent Calls tab in the Activity section of the Usage & Credits page, at /home/<workspace-slug>/usage. The log shows one row per API call, newest first, for every API key in the workspace.

Why does my call log show only 500 calls?

The call log loads at most 500 calls for the selected date range, and shows 25 of them at a time behind a Load more button. Export the range to CSV for every call.

Why does searching the call log for an endpoint name return nothing?

The search box matches the system name of the endpoint, in lower case with underscores. enrich matches Enrich Profile, and Enrich Profile matches nothing. Type a single word, or type the name with underscores.

How long a period can I export from RichAPI?

One export covers up to 90 days. The dialog counts the days, disables the Export button, and names the day count for a longer range. Request several exports to cover a longer period.

Which columns are in the RichAPI usage CSV?

The file holds 11 columns in this order: called_at, api_name, api_key_name, status_code, billable, credits, job_id, request_id, latency_ms, result_count, plan_credits. credits holds the whole charge for each call.

Does the usage export include the dollar cost of each call?

No. credits is the charged amount. At list price, multiply credits by 0.02 for dollars, or read Your price in the Details panel of a call log row.

Can I export only failed calls?

No. The export filters are Endpoint and Billable only. Export the range with All data in this range, then filter the CSV on status_code. A failed call always carries billable = False and credits = 0.

Who receives the RichAPI usage export email?

RichAPI emails the download link to the account email of the person who requested the export. Any workspace member can request one. The link works for 7 days with no sign-in, so treat it as a password.

Related articles

Did this answer your question?