October 27, 2026
Delete an AI Perceptions workspace’s custom channel
DELETE /workspaces/{id} can now also delete the custom channel associated
with an AI Perceptions workspace in the same request.
Once a workspace’s custom channel has been deleted, POST /customChannels/{channelId}/mentions answers 410 for it; the channel’s existing mentions stay searchable where they were already visible.
October 21, 2026
Narratives retirement complete
The narratives retirement announced on October 5 is now complete. Use the upgraded Landscapes product instead.October 6, 2026
Sort mentions by an integer custom enrichment
GET /workspaces/{workspaceId}/mentions can now order its results by the value
of one of your team’s integer custom enrichments.
GET /workspaces/{workspaceId}/mentions—sortacceptscustom_enrichment_id:{enrichment_id}in addition tocreated,publishedandconfidence. Combine withorder=ascororder=descas before. Mentions with no value for the enrichment are returned after every mention that has one, in either order. Only integer enrichments can be sorted on; a categorical enrichment id is rejected with a400.
GET /customEnrichments. sort and order continue
to be ignored when randomization_key is set.
October 5, 2026
Narratives retire on October 21, 2026
We’re retiring narratives in favor of the upgraded Landscapes product. The following parameters and fields are deprecated now and will be fully removed on Wednesday, October 21, 2026:GET /workspaces/{workspaceId}/narratives— the endpoint is removed.narratives.id— no longer accepted as a filter onGET /workspaces/{workspaceId}/mentions,GET /workspaces/{workspaceId}/analytics/timeline, orGET /workspaces/{workspaceId}/analytics/distribution. Requests that still sendnarratives.idget the unfiltered result.narrativeDetection— no longer returned on rows fromGET /workspaces.enrichments.narratives— no longer returned on mention documents fromGET /workspaces/{workspaceId}/mentions.sort=confidenceonGET /workspaces/{workspaceId}/mentions— returns a400.
Reach and integer custom enrichments on the analytics endpoints
GET /workspaces/{workspaceId}/analytics/timeline and
GET /workspaces/{workspaceId}/analytics/distribution accept a new optional metric
parameter:
mentions(default) — mention counts, exactly as before.reach— each time bucket or group is the summed reach of its mentions.custom_enrichment_sum:{enrichment_id}— each time bucket or group is the sum of an integer custom enrichment’s values, using theenrichment_idfromGET /customEnrichments. Only integer enrichments provisioned for your team are accepted.
metric set, count and totalCount report the
summed value of that metric instead of mention counts, and distribution percentages and
ordering follow it. All filters and group_by work alongside metric.
September 23, 2026
Normalized location field across all channels
Mentions across every channel — news and social — now resolve against a normalized six-level location taxonomy:region, subregion, country, state, county, and
city. state and county are United States only; mentions outside the US resolve to a
country and, where the source is specific enough, a city.
GET /locations— a new endpoint for discovering the taxonomy and the ids the location filters take.- Filtering — the six
locations.*parameters are accepted byGET /workspaces/{workspaceId}/mentions,/analytics/timeline,/analytics/distribution, and/narratives. Selecting a location automatically includes everything beneath it, so filtering on a state also returns the cities inside it. - Grouping — the same six
locations.*keys work asgroup_bydimensions on/analytics/timelineand/analytics/distribution. - Mentions — items from
GET /workspaces/{workspaceId}/mentionscarry alocationobject whose ids feed straight back into thelocations.*filters.
GET /workspaces/{workspaceId}/available-filters does not list location options, because
the taxonomy is far too large to enumerate; use GET /locations instead.
Upcoming Deprecation: news-only location fields
The news-only publisher geography fields are deprecated and will be removed on December 1, 2026. Use the location taxonomy instead — it covers every channel rather than news alone.- Query parameters
publisher_geography.source_country,publisher_geography.source_region, andpublisher_geography.source_sub_region→ uselocations.country,locations.region, andlocations.subregion. - The matching
publisher_geography.*group_byvalues → use the equivalentlocations.*values. - The
publisherGeographyobject onGET /workspaces/{workspaceId}/mentions→ use the newlocationobject.
September 15, 2026
Create, edit, and delete custom enrichments
You can now manage your team’s custom enrichments directly through the API, without contacting support:POST /customEnrichments— create an enrichment and get back theenrichment_idto push values with.PUT /customEnrichments/{enrichmentId}— rename an enrichment or update its option list. The list you send replaces the current one, so send the full intended list.DELETE /customEnrichments/{enrichmentId}— retire an enrichment you no longer need.
categorical, integer, or multivalue_categorical — the new
multi-value type, which holds several values per mention on one field and takes an array
of strings in PUT /mentions/customEnrichments.
September 14, 2026
New multivalue_categorical custom enrichment type
Custom enrichments can now hold several values per mention on one field when they have type: "multivalue_categorical".
To write to a multi-value enrichment, send the value in PUT /mentions/customEnrichments
as a non-empty array of strings (up to 100 per item) rather than a single string — for
example "value": ["Pricing", "Support"]. Like single-value categorical enrichments, new
options auto-register on write (up to 5,000 per enrichment), and the array you send fully
replaces the mention’s values for that field.
September 2, 2026
Higher daily quota for custom enrichment writes
PUT /mentions/customEnrichments now accepts 50,000 requests per day, up from 5,000.
The per-minute limit (50 requests per rolling 60-second window), the midnight-UTC reset,
and the rule that only 2xx responses count toward the limit are unchanged.
August 14, 2026
Workspace, folder, and channel management
TheGET /workspaces endpoint has been extended with full lifecycle write operations, and folder and channel endpoints have been added.
POST /workspaces— create a workspace withtitle,query,channels, and an optionalfolder.PUT /workspaces/{id}— fully replace an existing workspace (all four modifiable fields required).DELETE /workspaces/{id}— delete a workspace.GET /folders,POST /folders,PUT /folders/{id},DELETE /folders/{id}— full CRUD for workspace folders.GET /channels— list the channels available to your team.
July 22, 2026
Integer Custom Enrichments
TheGET /customEnrichments endpoint now returns enrichments with type: "integer" alongside the existing categorical type. Integer enrichments store numeric values and have constraints.enum always set to []. They cannot be used in filters or aggregations.
June 16, 2026
Custom Enrichments API
You can now attach your own custom enrichments to mentions in PeakMetrics with two new endpoints:GET /customEnrichments— list the custom enrichments provisioned for your team, including each one’senrichment_id,name,type, andconstraints.PUT /mentions/customEnrichments— push values for up to 100 mentions per request. Supports both standard and custom channel mentions, including historical mentions already in the platform.
May 12, 2026
Tweet Engagement Tracking Data on Mentions
TheGET /workspaces/{workspaceId}/mentions endpoint now returns a new
enrichments.engagement object.
enrichments.engagement.historyis an array of timestamped snapshots (measured_at,views,retweets,quotes,replies,favorites,bookmarks) captured on a backoff schedule during the first week after a Tweet’s published date, for Twitter / X mentions that have been opted into engagement tracking.- For mentions that aren’t being tracked — including mentions on channels that can’t be
tracked, like non-Twitter mentions —
historyis returned as an empty array.
May 8, 2026
Randomized Sampling on Mentions Endpoint
TheGET /workspaces/{workspaceId}/mentions endpoint now supports an optional randomization_key query parameter. When provided, the endpoint returns a randomized sample (up to 500 mentions across all pages).
Key features:
- Stable pagination via
randomization_key— reuse the same key across requests to paginate through a consistent randomized pool (cached for 5 minutes) - All standard workspace mention filters are supported, and mentions are randomly pulled from the full time range
May 1, 2026
Sentiment Fields Deprecation Now in Effect
The deprecation of sentiment fields announced on March 23 is now live. The following fields are deprecated and return0 for all responses:
/workspaces/{id}/mentions—enrichments.sentiment.polaritynow returns0/workspaces/{id}/mentions—enrichments.sentiment.versionnow returns0/workspaces/{id}/narratives—aggregations.avgSentimentnow returns0
/workspaces/{id}/narratives, avgSentiment is no longer accepted as an option for the sort query param.
March 23, 2026
Upcoming Deprecation of Sentiment Fields
For an upgraded sentiment metric, you can set up a custom favorability smart category tailored to your workspace. Contact support@peakmetrics.com to get started.
- The
/workspaces/{id}/mentionsendpoint will return0forsentiment.polarityandsentiment.version - The
/workspaces/{id}/narrativesendpoint will return0foraggregations.avgSentiment