Reference
Changelog
Ver em MarkdownNesta página
Changes to the REST API and the MCP server. Version 1 only grows: new operations, parameters and fields are added; nothing is removed or renamed without a new version and a notice here first.
The version is in the OpenAPI document (info.version) and in the MCP server's serverInfo.
2026-10-21 — monthly quota, the Max plan
The API now has two counters per account, shared by every key, REST and MCP together: the one-minute window it already had and a calendar-month quota. Both come from the plan.
Added with the monthly quota
- Monthly quota by plan: 10,000 requests a month on Pro, 50,000 on Max (UTC calendar month; a contract may have no monthly limit). A refused request counts against neither counter.
X-Quota-Limit,X-Quota-Remaining,X-Quota-Reseton every authenticated response, next to theX-RateLimit-*headers of the minute window.quota_exceededaserror.codeon a429whoseerror.typeisrate_limit, withRetry-Afterset to the 1st of next month; the minute window keepsrate_limit_exceeded. MCP tool errors name the counter that refused.- EarlyWave Max: 300 requests a minute and 50,000 a month; Pro stays at 60 a minute and now 10,000 a month. Settings › API & MCP shows the month's count and reset date.
Changed with the monthly quota
- The rate limit is set by the plan (60 a minute on Pro, 300 on Max) rather than one default for every account.
2026-10-19 — v1.1.0
The contract is now declared once and published as OpenAPI 3.1 at https://api.earlywave.ai/api/v1/openapi.json. REST and MCP serve the same operations.
Added
- 18 operations, each a REST
GETand an MCP tool of the same name as itsx-mcp-tool. - Trend filters on
GET /trends(list_trends):country(the story is about it),publisher_country,category,stage,reach,since_hours,query, andsort(signal,recent,sources). GET /trends/{trend_id}/articles(get_trend_articles): every article of a trend with its source and country, newest or oldest first.GET /trends/{trend_id}/coverage(get_trend_coverage): publisher countries and languages, and the last 7 days hour by hour.- New trend fields:
url(the trend page),reach,subject_countries,publisher_countries; on one trend,publisher_languages. - Named keys with scopes: several keys per account, each with a name and the scopes
restand/ormcp, created and revoked in Settings › API & MCP. Keys are stored hashed and shown once (ew_live_…). X-Request-Idon every response;X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reseton every authenticated one;Retry-Afteron429.
Changed
- Errors are now
{"error": {"type", "code", "message"}}with a stabletypeand the matching HTTP status. Invalid parameters answer400with every problem indetails. - Paging is the same on every list:
limitfrom 1 to 100 (it was capped at 20), default 20,offset, andhas_morein the answer. - Trends are the whole catalogue:
list_trendsno longer depends on the account's feeds, and itstotalis the number of matching trends. - MCP: the server is named
earlywaveand is stateless — eachPOST /mcpstands alone, so there is no session to keep.GETandDELETEanswer405. Tools now receive their arguments and advertise them in their input schema. - The rate limit (60 requests per minute per account by default) is counted once across REST and MCP and across all servers.
Compatibility
- Keys created before this release (
sk-smrz_…) keep working, with the scope of the surface they were made for. - Every tool name of the previous MCP server is still there.
- If you parsed
erroras a string, readerror.messageinstead. - In
get_trend, each ofsourcesnow hasurl(it wascanonical_url).