Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

YouScan Mentions API

Retrieve and update mentions collected in a topic.### How to effectively retrieve large sets of mentionsCommon scenarios are:* Load all the mentions from a given topic for a given period* Periodically poll a topic to get new mentions (see the next section)Every list response contains:- `total` — the number of mentions matching your filters, across all pages;- `mentions` — one page of results, at most `size` of them (default 10, max 1000);- `lastSeq` — a sequence-number high-water mark (see the cursor loop below).If `total` exceeds the number of mentions you received, there is more to fetch. Usethe `sinceSeq` cursor: every mention has a `seq` number, assigned in the ordermentions were saved to the topic, and cursor paging over it has no depth limit andnever skips or duplicates mentions.The cursor loop:1. Start the session: ``` GET https://api.youscan.io/api/external/topics/{topicId}/mentions?from=2018-01-01&size=1000&orderBy=seqAsc ``` `orderBy=seqAsc` returns mentions in the order they were saved to the topic.2. Take the highest `seq` value from the returned `mentions` array and repeat the request with `&sinceSeq={that value}`. `sinceSeq` is exclusive — the next page starts right after it: ``` GET https://api.youscan.io/api/external/topics/{topicId}/mentions?from=2018-01-01&size=1000&sinceSeq=8541234&orderBy=seqAsc ```3. Stop when a response returns fewer than `size` mentions.### Polling for new mentionsMentions are discovered with a delay — minutes to hours after publication — andhistory collection can add much older mentions at any time. Because `from`/`to` filterby *publication* date, repeatedly fetching a fixed window such as "yesterday 22:00 —today 07:00" misses every mention that was published inside the window but collectedafter your request ran; such mentions never show up in any later window either.Poll with the cursor instead:1. Run the cursor loop above once and persist the highest `seq` you received.2. On every subsequent run, start with `sinceSeq={persisted value}&orderBy=seqAsc`, drain the pages, and persist the new high-water mark.A mention gets its `seq` when it is saved to the topic, so late-arriving mentions arealways picked up by your next poll, no matter when they were published. Two additions:- If you also need fields that change *after* a mention is saved — engagement counts, corrected sentiment, added tags — periodically re-fetch a trailing window (say, the last 72 hours), or use the `engagementCollectedFrom` / `addedFrom` filters.- If you'd rather not poll at all, configure a webhook (see the Webhook section) and receive each new mention the moment it is saved.### Dates and time zonesDate filters match mentions by their **publication date**. Two rules save a lot ofconfusion:- **Date values without an explicit UTC offset are interpreted in the API key owner's time zone** — the time zone configured in the profile of the user the key belongs to. To make requests unambiguous, always pass explicit offsets (`from=2026-06-01T00:00Z`) or set the `timeZone` parameter.- **`to` is inclusive**: the effective upper bound is `to` plus one day. `to=2026-06-21` includes the whole of June 21.The platform UI always shows periods in the signed-in user's time zone. To reproduce anumber seen in the UI, request the same period with `timeZone` set to that user's zone —or convert the period boundaries to UTC yourself.### Deleted dataThe API returns the current state of the topic at the moment of the request:- a deleted topic returns `404` (`message: "Theme not found"`) — its mentions are no longer accessible;- deleted tags disappear from mention responses — there is no "deleted" marker;- mentions moved to the Bin are excluded unless you pass `deleted=true`.Data you exported earlier is not updated retroactively. If you keep a local copy,reconcile it periodically against the current *List topics* and *List tags* responses.### Data limitations> **Mentions from Reddit, Quora and several other forums and review websites are not accessible**> via the list mentions endpoint.> **Twitter data limitations**: We are limiting the data which can be accessed for mentions collected> from Twitter. The following adjustments are applied:> - Mention's Text and Full Text properties are removed> - Mention URL is removed> - Author URL, Author Name and Author AvatarUrl are removed> - Profile ID of the author is added to Author information (the ID itself is the ID of the Twitter Profile)> - Post ID is the ID of the Tweet> - Combining Profile ID and Post ID allows you to navigate to the exact Tweet which was collected> as the corresponding mention.### Why API data may differ from the platform UIThe API and the platform read the same storage — for the same query they return thesame data. Almost every reported discrepancy turns out to be one of the causesdescribed above:1. **Time zones.** The UI uses the viewer's time zone; your request may be using a different one — see *Dates and time zones*.2. **Sources not available via API.** Reddit, Quora and several other sources are visible in the UI but never returned by the API. Exclude them in the UI search before comparing counts — see *Data limitations*.3. **Pagination.** One request returns at most 1,000 mentions. Compare the response `total` with the UI count, not the number of rows you fetched — see *How to effectively retrieve large sets of mentions*.4. **Collection delays.** A period you fetched an hour ago may contain more mentions now — see *Polling for new mentions*.5. **Twitter restrictions.** Twitter mentions come without text, URL and author details, which makes row-by-row comparison with UI exports misleading — see *Data limitations*.6. **Deleted data.** Deleted topics, tags and binned mentions disappear from responses, while copies you saved earlier keep them — see *Deleted data*.If the numbers still differ after checking all of the above, capture the exact requestURL, the time you sent it, and the raw response — and contact support with thosedetails.

YouScan Mentions API is one of 8 APIs that YouScan publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include Mentions. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 4 operations across 3 paths, and defines 12 schemas. It is described by OpenAPI 3.1.0, at version 1.0.

Requests are made against a single base URL, https://api.youscan.io/api/external.

4 operations 3 paths 12 schemas 2 GET2 POST

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.0
API Version
1.0
Base URL
https://api.youscan.io/api/external
Authentication
API Key, API Key
Resource Areas
1

Authentication & Security 2

YouScan Mentions API declares 2 security schemes for authenticating requests. An API key is passed in the header as X-API-KEY (ApiKeyHeader). An API key is passed in the query as apiKey (ApiKeyQuery). By default, every request must be authenticated.

  • ApiKeyHeader — API key authentication. The recommended way to authenticate requests.
  • ApiKeyQuery — API key as a query parameter. For testing purposes only.

Paths & Operations 4

Across 3 paths, the API surfaces 4 operations — 2 GET, 2 POST. Each is listed below with its method, path, parameters, and response codes.

Mentions 4

Retrieve and update mentions collected in a topic. How to effectively retrieve large sets of mentions Common scenarios are: Load all the mentions from a given topic for a given pe…

GET
/topics/{topicId}/mentions
List mentions
listMentions 34 params → 200400404429401
GET
/topics/{topicId}/get-mentions
Get mentions by IDs
getMentionsByIds 3 params → 200400404401
POST
/topics/{topicId}/get-mentions
Get mentions by IDs (POST)
getMentionsByIdsPost 1 param body → 200400404401
POST
/topics/{topicId}/mentions/bulkupdate
Bulk update mentions
bulkUpdateMentions 1 param body → 200400403404401

Schemas 12

The contract defines 12 schemas that model the data the API accepts and returns. The most detailed are Mention (49 properties), MentionProfile (12 properties), MentionEngagement (11 properties), Reactions (7 properties). Each schema is shown below with its type and property counts.

SubCategory
object
2 properties
ValidationError
object
3 properties
Error
object
3 properties
MentionProfile
object
12 properties
SourceTypeFilter
string
SourceSpecificFormat
string
Source-specific format of the post.
Reactions
object
7 properties
MentionEngagement
object
11 properties
Category
object
3 properties
PostType
string
Sentiment
string
Mention
object
49 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

youscan-mentions-api-openapi.yml Raw ↑

Other APIs YouScan publishes across the network.

YouScan Data Import API
YouScan History API
YouScan Spaces API
YouScan Statistics API
YouScan Tags API
YouScan Topics API
YouScan Webhook API