Skip to main content
Enterprise customers can use User API Keys to programmatically query their Remark data via the GraphQL API. This covers dashboard statistics, conversation history, smart tags, order data, and more.

Authentication

Create and use API keys to authenticate requests.

Dashboard Statistics

Query chat volume, revenue, conversion rates, and leaderboards.

Conversations

List conversations, fetch details, and inspect associated customer events.

Smart Tags

Aggregate smart tag counts across conversations.

Authentication

Creating an API Key

1

Navigate to API Keys

Go to Settings > Personal API Keys in the Remark dashboard.
2

Create a key

Click Create API Key, give it a name and optional expiry date.
3

Copy the token

Copy the token immediately — it is only shown once. Token format: rmrk_u_ followed by a secure hash.

Using the API Key

All requests go to the GraphQL endpoint:
Include your token in the Authorization header:
The key inherits the full permissions of the user who created it. Keys can be revoked at any time from the dashboard.

Example Request


Dashboard Statistics

The main analytics entry point. All stats are nested under vendorById > conversationAggregateStatistics and support filtering by date range and optionally by channel.
Permission required: VIEW_CONVERSIONS (for revenue/conversion fields)

All-in-One Dashboard Query

Fetches the most commonly used KPIs in a single request:

Variables

Example Response

Period-over-Period Comparison

Use GraphQL aliases to fetch current and previous periods in one request:

Smart Tag Aggregation

Count how often each smart tag was applied to conversations in a time range. Useful for tracking trending topics, common customer issues, or product interest over time.
Permission required: VIEW_CONVERSATIONS

Count Tags in a Period

Example Response

List Available Smart Tags


Conversation Listing

Paginated list of conversations with filtering and sorting. Uses cursor-based pagination.
Permission required: VIEW_CONVERSATIONS

Variables

Filter Options

Sort Options

For exports, backfills, and other long pagination jobs, explicitly sort by created. The default sort is lastMessageDate, which can change when an older conversation receives a new message and may make cursor pagination less stable over time.

Pagination

Use cursor-based pagination to iterate through results:

Conversation Detail

Fetch a single conversation with its full message history.
Permission required: VIEW_CONVERSATIONS

Conversation Customer Events

Use customerEvent to fetch the browsing and shopping events associated with a conversation’s session. This is the right place to look for product views, category page views, searches, and cart activity that happened around a chat.
Permission required: VIEW_CONVERSATIONS

Event Types


Session & Order Data

Look up browsing sessions and conversion/order details for a customer.
Permission required: VIEW_CONVERSIONS

Key Fields


Permissions Reference

Your API key inherits the permissions of the user who created it. Different data requires different permissions: An admin or vendor owner will have all permissions for their vendor.

Rate Limits & Best Practices

  • Rate limiting: Rate limits may be enforced to prevent abuse and maintain quality of service
  • Request only what you need: GraphQL lets you select specific fields — smaller queries are faster
  • Use pagination: Always paginate conversation and session lists rather than fetching everything at once
  • Cache where appropriate: Dashboard statistics don’t change in real time; polling every few minutes is sufficient
  • Time ranges: Always provide start/end for dashboard stats queries — omitting them returns lifetime data which is slower
  • Timezone: Pass your local IANA timezone (e.g. America/New_York) for time series and histogram queries to get correctly bucketed data