https://api.echonova.aiDevelopers
Read your API activity
Open Developers Activity, read the Overview, Trends, Explore and Logs tabs, and know exactly which requests and credits the page counts.
The Activity page shows what your API keys did and the credits they spent.
It counts only developer API usage: calls to /v1 made with an API key, and
the credits charged to an API key. That is Text to Speech, Speech
to Text and Sound Cleaning. You see credits, requests, speech and audio,
split by API key, service and voice. Use it to find the key that spends the
most, the day a spike began, and the requests that failed.
Portal pages such as the playground, and agents, do not show on Activity. That covers Sada voice and chat, EchoReader, voice cloning, the knowledge base, the agent builder and database tools. Their credits show in your Credits history.
What you need
- An EchoNova account and a workspace with at least one API key. See Get an API key.
- The workspace owner's access, which includes the
developer_api.viewpermission. - Some activity. Until a key makes a request, every card reads 0 and the charts are empty.
Open Activity
Open Developers in the portal and select the Activity by key quick
link, or go to /developers/activity. The page opens on the Overview tab
with the 30 days period.
The header
The header controls every tab at once. Each choice is saved in the page address, so a reload keeps your view.
| Control | What it does |
|---|---|
| Time zone chip | A label, not a button. It shows your browser's offset, for example GMT+4. Days, weeks and months group in your browser's zone. There is no switch to UTC. |
| Filter | Opens a panel with API key, Service and Voice. Each is set to All until you pick one. A chip appears for each filter you set. |
| Period | 7 days, 30 days, 90 days or 1 year. |
| Export CSV | Downloads daily totals per API key, service and voice as a CSV file named echonova-activity-<from>-to-<to>.csv, with the columns date, api_key, key_prefix, service, voice, requests, failed, units, unit, credits and usd_at_plan_rate. unit is minutes for Speech to Text and Sound Cleaning, and characters for Text to Speech. The toast says CSV downloaded. |
| Copy link | Copies a link to this exact view: tab, period and filters. The zone is not in the link; whoever opens it sees days in their own browser's zone. The toast says Link to this view copied. |
Select Clear all in the filter panel to remove every filter, or select a chip to remove one.
Overview
The Overview tab answers where the credits went in the period.
- Five cards: Credits used, Requests, Speech generated, Audio processed and Success rate. Each compares with the previous period of the same length. Credits used also shows the cost as ≈ $x at your {plan} rate, for example ≈ $12.40 at your Growth rate, or ≈ $x at your trial rate on a trial. The line is hidden when there is no rate.
- Audio processed counts audio sent to Speech to Text and Sound Cleaning. Generated speech counts as characters, not audio. Under one minute it shows in seconds, for example 9 s.
- A bar chart of the selected card by day. Use Group by to split it by Service, API key or Voice. Hover a bar for the breakdown. Select a bar to open that day on the Logs tab.
- Top API keys and Top voices, ranked by credits. Select a key to
filter every tab. A key with its last 4 characters stored shows as
ek_…and those 4 characters, for exampleek_…c21d. A key without them stored shows its prefix. - Failed requests, by API key, with the key that has the highest failure rate. Failed requests are never charged.
- Plan credits this cycle. The plan line shows the whole plan: the credits granted, the credits used by every product and the period end. Every product shares the plan, so this card includes portal and agent use, while every other figure on the page is API usage only. It shows only when the workspace has a plan. Each key's use of its own credit limit shows when that key has a credit limit. A key at 80% or more of its limit shows Near limit.
Trends
The Trends tab compares this period with the one before it, day by day.
- Pick a measure: Credits, Requests, Characters or Minutes.
- Read the line chart. This period and Previous period share one axis.
- Read Biggest movers, the keys, services or voices that changed most. Use Show to switch between All, API keys, Services and Voices. Select a row to filter the Overview.
A key, service or voice with no activity in the previous period shows new.
Explore
The Explore tab builds your own chart. Set these controls:
| Control | Choices |
|---|---|
| Measure | Credits, Spend ($), Requests, Characters, Audio minutes, Errors |
| Group by | API key, Service, Voice or None. Then by adds a second split. |
| Per | Day, Week, Month or None (ranking) |
| Show | Top 3, Top 5 or Top 8; the rest is grouped as Other |
| Chart type | Bars, Lines or Dots |
Turn on Running total for a cumulative line. The Try: presets, for example Spend per key, weekly, set the controls for you. A Data table under the chart lists the same numbers.
Logs
The Logs tab lists the requests behind the numbers, 25 per page, with
Previous and Next. It follows the header filters and the period. Select
a day bar on the Overview to see only that day. Turn on Failed only to
hide the successful ones. Pick No voice in the Voice filter to see only
requests that used no voice. Paste an X-Request-Id into Find by request ID
to see that call from the last 365 days, whatever the period and filters. Clear
the box to go back. The line above the list counts the requests, for
example 12 requests. It ends with · logs keep 365 days only when the
period is 1 year.
| Column | What it shows |
|---|---|
| Time | Date and time of the request. |
| API key | The key's name. |
| Endpoint | The method and path, for example POST /v1/text-to-speech/sync. |
| Status | The status your client received. A successful call shows 200, and so does an accepted asynchronous job. A failed request shows its exact status. |
| Credits | The credits the request was billed. |
| Time taken | How long the API took to answer. |
Select a row to expand it:
| Field | What it shows |
|---|---|
| Request id | The value of the X-Request-Id header on the response. Quote it when you contact support. |
| Service | Text to Speech, Speech to Text or Sound Cleaning. |
| Voice | The voice used, or No voice. |
| Billed | Characters or minutes, and credits. |
| errorMessage | For a failed request, the message your client received. Nothing was charged. follows it. |
Every API response carries an X-Request-Id header. Log it on your side and
look it up here.
What counts as a request
Activity counts every call to /v1 made with a known API key, whatever the
method and whatever the answer. That includes GET and DELETE calls, such
as polling a job or listing voices. GET calls charge no credits.
- Every call to
/v1with a known key:200,402,403for a scope or a plan check,404,415,422, the first per-key429of each limit window and4xxor5xxafter the key is accepted. - The credits charged to an API key, for Text to Speech, Speech to Text and Sound Cleaning.
Portal runs and agent usage are not requests and have no rows. Credits they spend show in Credits history, not here.
Older rows can still show 201 for a successful POST until they expire after 365 days.
A row records the status your client received. A successful call shows 200,
and an accepted asynchronous job shows 200 too.
A synchronous call that fails is refunded in the same hour, so the credits net
out. An asynchronous job that fails later is refunded too, but its log row
keeps 200, the status your client received when the job was accepted.
What is not counted
- Any
401: a missing or malformedAuthorizationheader, an unknown, disabled or deleted key, or a closed workspace. EchoNova cannot tell which workspace it belongs to. - The per-IP
429that fires before the key is known. - Any later per-key
429in the same limit window, after the first one. - A body rejected before the key is checked:
413for a JSON body over 100 KB, and400for a body that is not valid JSON. - Portal runs, such as the playground, and agent usage: Sada voice and chat, EchoReader, voice cloning, the knowledge base, the agent builder and database tools. They have no rows and add no credits to the page. See Credits history.
The credits of a period equal the credit history's API key charges minus refunds for that period. The plan card is the one exception: it shows the whole plan.
Limits
| Limit | Value | Applies to |
|---|---|---|
| History start | The day this page shipped. Earlier activity is not backfilled. | Charts and totals |
| Daily totals kept | 800 days | Overview, Trends, Explore |
| Request log rows | 365 days | Logs tab |
| Rows per page | 25 | Logs tab |
| Periods | 7 days, 30 days, 90 days or 1 year | The header |
| Recorded per row | Method, path, status, time taken, key, service, voice, billed units, error message | Every log row |
| Not recorded | Request body, text, audio, headers, query string, client IP address | Every log row |
FAQ
Why is my total lower than I expected?
History starts the day this page shipped. Earlier credits are not shown. Also check the Filter chips under the header. Every call counts as a request, but only charged calls add credits, so a script that mostly polls adds requests and no credits.
Why does a failed job show a success status?
The API accepted the job and answered 200, so the row keeps that status.
When the job fails later, its credits are refunded and the totals net out, but
the row does not change.
Where are my 401 requests?
They are not counted. A 401 means the key was missing, malformed, unknown,
disabled or deleted, or the workspace is closed, so there is no workspace to
show it in.
Does the page include the portal or agents?
No. Activity shows API key usage only. Portal pages such as the playground, and agents, do not show here. Their credits show in Credits history. The plan card still shows the whole plan, because every product shares it.
Which time zone does the page use?
Your browser's. The chip beside Filter shows its offset, for example
GMT+4, and days group in that zone. There is no UTC switch, and the zone is
not part of a copied link.
Who can see Activity?
The workspace owner, whose role has the developer_api.view permission.