Base URL https://api.echonova.ai

Developers

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.view permission.
  • 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 example ek_…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.

The Trends tab compares this period with the one before it, day by day.

  1. Pick a measure: Credits, Requests, Characters or Minutes.
  2. Read the line chart. This period and Previous period share one axis.
  3. 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 /v1 with a known key: 200, 402, 403 for a scope or a plan check, 404, 415, 422, the first per-key 429 of each limit window and 4xx or 5xx after 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 malformed Authorization header, an unknown, disabled or deleted key, or a closed workspace. EchoNova cannot tell which workspace it belongs to.
  • The per-IP 429 that fires before the key is known.
  • Any later per-key 429 in the same limit window, after the first one.
  • A body rejected before the key is checked: 413 for a JSON body over 100 KB, and 400 for 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.