Archive API
The Archive API gives you programmatic access to enriched community data collected and maintained by Archive.
A "community" in Archive is the set of social profiles that interact with your brand across platforms (for example Instagram, TikTok, and YouTube). For each profile and piece of content, Archive aggregates and enriches data such as:
- Social profile details (handles, names, followers)
- Posts, Reels, Stories, Shorts and other media content
- Engagement metrics (views, plays, likes, comments, shares, EMV)
- Custom attributes and CRM-style metadata
GraphQL
The Archive API is built on the GraphQL query language (graphql.org).
- All requests are sent as
POSTrequests to the GraphQL endpoint:https://app.archive.com/api/v2 - You control which data is returned by selecting fields on the
Querytype. - Pagination follows the standard Relay-style cursor pattern.
API Endpoints
POST: https://app.archive.com/api/v2
Headers
# Contact [email protected] to obtain credentials or manage tokens.
Authorization: Bearer <YOUR_TOKEN_HERE>
# Required for workspace-scoped queries.
WORKSPACE-ID: 7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63
Authentication
All requests to the Archive API must be authenticated.
Access token
Obtain an API access token from the Archive team or your account representative. Include the token as a bearer token in the Authorization header on every request:
Authorization: Bearer arch_live_9f8b3c7a12d94e0f9e2c4b1d0a3f5c87
Workspace-scoped requests
Most data in Archive is scoped to a specific workspace (for example a single brand or region).
For workspace-scoped queries (such as workspace, items, and transcriptions), you must also provide a WORKSPACE-ID header with the UUID of the workspace you want to query:
WORKSPACE-ID: 7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63
You can obtain workspace IDs from the Archive UI or from the workspaces query, which returns all workspaces the current token can access.
Note: Some queries (for example listing all accessible workspaces) do not require the WORKSPACE-ID header and only rely on the access token.
Queries
campaigns
Description
List and paginate campaigns for the current workspace, ordered newest first. Workflow-type rows are excluded to match the in-app CRM listing.
Response
Returns a CampaignConnection!
Example
Query
query campaigns(
$after: String,
$first: Int
) {
campaigns(
after: $after,
first: $first
) {
edges {
cursor
node {
createdAt
id
name
}
}
nodes {
createdAt
id
name
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{"after": null, "first": 20}
Response
{
"data": {
"campaigns": {
"edges": [CampaignEdge],
"nodes": [Campaign],
"pageInfo": PageInfo,
"totalCount": 3
}
}
}
collection
Description
Return a single Collection by ID for the current workspace, or null if no such Collection exists here.
Response
Returns a Collection
Arguments
| Name | Description |
|---|---|
id - ID!
|
ID of the Collection to fetch, as returned by the collections query for this workspace. |
Example
Query
query collection($id: ID!) {
collection(id: $id) {
createdAt
group {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"collection": {
"createdAt": "2024-12-31T21:00:00Z",
"group": ViewGroup,
"id": "122321ce-843e-5b07-9f56-94323c0ae39e",
"itemCount": 3,
"name": "Best Sellers",
"updatedAt": "2024-12-31T21:00:00Z"
}
}
}
collections
Description
List Collections (saved tag sets) for the current workspace, in the workspace's saved order. Returns at most 1000 rows; this field is not paginated.
Response
Returns [Collection!]!
Example
Query
query collections {
collections {
createdAt
group {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
}
Response
{
"data": {
"collections": [
{
"createdAt": "2024-12-31T21:00:00Z",
"group": ViewGroup,
"id": "122321ce-843e-5b07-9f56-94323c0ae39e",
"itemCount": 3,
"name": "Best Sellers",
"updatedAt": "2024-12-31T21:00:00Z"
}
]
}
}
competitorBrand
Description
Return a single Competitor Insights brand by ID for the current workspace, or null if no brand with that ID is tracked here. Also resolves the workspace's own-brand entry by its stable id. Pair with competitorBrandItems(brandId:, filter:, …) to paginate the brand's media items. If aggregate metrics are unavailable, roster data remains and the response includes a SERVICE_UNAVAILABLE error; match on extensions.code and retry later.
Response
Returns a CompetitorBrand
Arguments
| Name | Description |
|---|---|
date - DateWithZone
|
Anchor date (e.g. 2025-06-01) for the aggregation window. Defaults to today. Default = null |
id - ID!
|
Competitor Insights brand ID. Also resolves the workspace's own-brand entry by its stable id. |
period - CompetitorBrandStatsPeriod
|
Aggregation window for the metric fields (WEEK or MONTH). Defaults to MONTH. Default = MONTH |
Example
Query
query competitorBrand(
$date: DateWithZone,
$id: ID!,
$period: CompetitorBrandStatsPeriod
) {
competitorBrand(
date: $date,
id: $id,
period: $period
) {
earnedMediaValue
engagementsTotal
id
impressions
influencersCount
isOwnBrand
name
ownMetricsStatus
postsCount
reach
}
}
Variables
{
"date": null,
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"period": "MONTH"
}
Response
{
"data": {
"competitorBrand": {
"earnedMediaValue": 987.65,
"engagementsTotal": 123.45,
"id": "28add94e-9994-54b2-9aaa-528e6606efe9",
"impressions": 123.45,
"influencersCount": 123,
"isOwnBrand": true,
"name": "Verdant Co.",
"ownMetricsStatus": "AVAILABLE",
"postsCount": 987,
"reach": 123.45
}
}
}
competitorBrandItems
Description
Paginate Competitor Insights posts for a brand within a required filter.takenAt window. Posts for a given month become queryable on day 9 of the following month.
Response
Returns a CompetitorBrandItemConnection!
Arguments
| Name | Description |
|---|---|
after - String
|
Opaque cursor for fetching the next page of results. Cursors are positional: reuse one only with identical brandId, filter and sorting arguments. A malformed cursor — including one minted by an earlier release — is rejected with an Invalid cursor error. Pagination depth is capped at 10,000 posts per query; narrow the takenAt window to page beyond that. Default = null |
brandId - ID!
|
Competitor Insights brand UUID. If the brand is not tracked by the current workspace, the query returns an empty connection. |
filter - CompetitorBrandItemFilterInput!
|
Filter criteria. A takenAt time window is required; unbounded queries are not supported. |
first - Int
|
Number of posts to return (page size). Default = 20 |
sorting - [CompetitorBrandItemSortingInput!]
|
Sort configuration. Currently accepts a list of at most one entry; multiple entries are rejected. The list shape exists for forward compatibility — a future release may honor compound sort additively without a breaking schema change. Defaults to [{ sortKey: TAKEN_AT, sortOrder: DESC }] when omitted. NOTE: EARNED_MEDIA_VALUE ranks posts as a single ordering across the entire requested takenAt window. Tie-breaker is the post identifier ascending. Default = [{sortKey: TAKEN_AT, sortOrder: DESC}] |
Example
Query
query competitorBrandItems(
$after: String,
$brandId: ID!,
$filter: CompetitorBrandItemFilterInput!,
$first: Int,
$sorting: [CompetitorBrandItemSortingInput!]
) {
competitorBrandItems(
after: $after,
brandId: $brandId,
filter: $filter,
first: $first,
sorting: $sorting
) {
edges {
cursor
node {
archivePublicUrl
caption
currentEngagement {
comments
earnedMediaValue
impressions
likes
linearViralityScore
shares
views
}
externalId
hashtags
id
mentions
originalUrl
provider
socialProfile {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
...SocialProfileFragment
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
takenAt
transcriptions {
mediaContentId
transcript
}
type
}
}
nodes {
archivePublicUrl
caption
currentEngagement {
comments
earnedMediaValue
impressions
likes
linearViralityScore
shares
views
}
externalId
hashtags
id
mentions
originalUrl
provider
socialProfile {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
...CreatorFragment
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
takenAt
transcriptions {
mediaContentId
transcript
}
type
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{
"after": null,
"brandId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"filter": CompetitorBrandItemFilterInput,
"first": 20,
"sorting": [{"sortKey": "TAKEN_AT", "sortOrder": "DESC"}]
}
Response
{
"data": {
"competitorBrandItems": {
"edges": [CompetitorBrandItemEdge],
"nodes": [CompetitorBrandItem],
"pageInfo": PageInfo,
"totalCount": 30
}
}
}
competitorBrands
Description
List Competitor Insights brands tracked by the current workspace, ordered newest first, with aggregate metrics over a period/date window (default month). The workspace's own-brand entry is returned as one additional pinned node on the first page (flagged isOwnBrand), in addition to up to first competitor brands, so self-vs-competitor Share of Voice is computable in-query; totalCount counts tracked competitor brands only. Pair with competitorBrandItems(brandId:, filter:, …) to paginate a brand's media items. If aggregate metrics are unavailable, roster data remains and the response includes a SERVICE_UNAVAILABLE error; match on extensions.code and retry later.
Response
Returns a CompetitorBrandConnection!
Arguments
| Name | Description |
|---|---|
after - String
|
Cursor for fetching the next page of results. Default = null |
date - DateWithZone
|
Anchor date (e.g. 2025-06-01) for the aggregation window. Defaults to today. Default = null |
first - Int
|
Number of competitor brands to return (page size). The own-brand entry is additional. Default = 20 |
period - CompetitorBrandStatsPeriod
|
Aggregation window for the metric fields (WEEK or MONTH). Defaults to MONTH. Default = MONTH |
Example
Query
query competitorBrands(
$after: String,
$date: DateWithZone,
$first: Int,
$period: CompetitorBrandStatsPeriod
) {
competitorBrands(
after: $after,
date: $date,
first: $first,
period: $period
) {
edges {
cursor
node {
earnedMediaValue
engagementsTotal
id
impressions
influencersCount
isOwnBrand
name
ownMetricsStatus
postsCount
reach
}
}
nodes {
earnedMediaValue
engagementsTotal
id
impressions
influencersCount
isOwnBrand
name
ownMetricsStatus
postsCount
reach
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{"after": null, "date": null, "first": 20, "period": "MONTH"}
Response
{
"data": {
"competitorBrands": {
"edges": [CompetitorBrandEdge],
"nodes": [CompetitorBrand],
"pageInfo": PageInfo,
"totalCount": 3
}
}
}
contentView
Description
Return a single saved content (media deck) view by ID for the current workspace, or null if no such view exists here. Pair with items(presetId:) to fetch the items belonging to a view.
Response
Returns a ContentView
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the content view to fetch. |
Example
Query
query contentView($id: ID!) {
contentView(id: $id) {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"contentView": {
"createdAt": "2024-12-31T18:00:00Z",
"customAttributeConditions": {},
"filters": {},
"group": ViewGroup,
"id": "eaa824b8-374f-5db8-bee2-51dfd8c3776c",
"name": "All Northwind Content",
"showReportingStats": true,
"sort": {},
"updatedAt": "2024-12-31T18:00:00Z"
}
}
}
contentViews
Description
List saved content (media deck) views for the current workspace, ordered by most-recently-updated first. Pair with items(presetId:) to fetch the items belonging to a view. Returns at most 1000 rows; this field is not paginated.
Response
Returns [ContentView!]!
Arguments
| Name | Description |
|---|---|
filter - ContentViewFilterInput
|
Optional filter criteria. When omitted or empty, returns the current workspace's media_deck views. Default = {} |
Example
Query
query contentViews($filter: ContentViewFilterInput) {
contentViews(filter: $filter) {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
}
Variables
{"filter": {}}
Response
{
"data": {
"contentViews": [
{
"createdAt": "2024-12-31T18:00:00Z",
"customAttributeConditions": {},
"filters": {},
"group": ViewGroup,
"id": "eaa824b8-374f-5db8-bee2-51dfd8c3776c",
"name": "All Northwind Content",
"showReportingStats": true,
"sort": {},
"updatedAt": "2024-12-31T18:00:00Z"
}
]
}
}
creator
Description
Return details for the creator.
Response
Returns a Creator!
Arguments
| Name | Description |
|---|---|
id - ID!
|
Unique identifier for the creator in Archive's system. |
Example
Query
query creator($id: ID!) {
creator(id: $id) {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
...SocialProfileFragment
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"creator": {
"customAttributes": {
"age": null,
"emails": [],
"gender": "52e6750a-79ca-5f7e-9352-228c7b9cb18f",
"location": "Northwind HQ 0",
"full_name": null,
"phone_numbers": []
},
"id": "01f0f8f3-97dd-597c-8cc1-cf75eaabddb0",
"socialProfiles": [SocialProfile]
}
}
}
creatorView
Description
Return a single saved Creator View by ID for the current workspace, or null if no such view exists here. Pair with creators(presetId:) to fetch the creators belonging to a view.
Response
Returns a CreatorView
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the creator view to fetch. |
Example
Query
query creatorView($id: ID!) {
creatorView(id: $id) {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"creatorView": {
"createdAt": "2024-12-31T15:00:00Z",
"customAttributeConditions": {},
"filters": {},
"group": ViewGroup,
"id": "860120e8-3849-56f8-b14e-dd6b2da0b2d9",
"name": "Top Priority Creators",
"showReportingStats": true,
"sort": {},
"updatedAt": "2024-12-31T15:00:00Z"
}
}
}
creatorViews
Description
List saved Creator Views for the current workspace, ordered by most-recently-updated first. Pair with creators(presetId:) to fetch the creators belonging to a view. Returns at most 1000 rows; this field is not paginated.
Response
Returns [CreatorView!]!
Arguments
| Name | Description |
|---|---|
filter - CreatorViewFilterInput
|
Optional filter criteria. When omitted or empty, returns the current workspace's creator views. Default = {} |
Example
Query
query creatorViews($filter: CreatorViewFilterInput) {
creatorViews(filter: $filter) {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
}
Variables
{"filter": {}}
Response
{
"data": {
"creatorViews": [
{
"createdAt": "2024-12-31T15:00:00Z",
"customAttributeConditions": {},
"filters": {},
"group": ViewGroup,
"id": "860120e8-3849-56f8-b14e-dd6b2da0b2d9",
"name": "Top Priority Creators",
"showReportingStats": true,
"sort": {},
"updatedAt": "2024-12-31T15:00:00Z"
}
]
}
}
creators
Description
List and paginate creators for the current workspace, ordered newest first.
Response
Returns a CreatorConnection!
Arguments
| Name | Description |
|---|---|
after - String
|
Cursor for fetching the next page of results. Default = null |
customAttributeConditions - [CustomAttributeConditionInput!]
|
Creator custom attributes conditions. Default = [] |
filter - CreatorFilterInput
|
Filter criteria to narrow down results (e.g. by campaign roster or canonical location). Default = {campaignsIds: []} |
first - Int
|
Number of creators to return (page size). Default = 20 |
presetId - ID
|
Saved Creator View ID. When provided, inline filter and customAttributeConditions are ignored; the view's stored conditions and sortBy drive the result set. The view's stored filters blob is NOT applied — a view whose only narrowing lives in filters returns the whole workspace (see README §13.2). Accepts IDs returned by creatorViews / creatorView (workspace Creator Views, GA), or by campaignCreatorViews(campaignId:) / campaignCreatorView(id:) (campaign-scoped, ALPHA — opt in with the campaign_creator_views header). Non-Creator-View IDs raise a GraphQL error with extensions.code = "WRONG_VIEW_TYPE"; cross-shop or unknown IDs raise with extensions.code = "NOT_FOUND". Default = null |
Example
Query
query creators(
$after: String,
$customAttributeConditions: [CustomAttributeConditionInput!],
$filter: CreatorFilterInput,
$first: Int,
$presetId: ID
) {
creators(
after: $after,
customAttributeConditions: $customAttributeConditions,
filter: $filter,
first: $first,
presetId: $presetId
) {
edges {
cursor
node {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
...SocialProfileFragment
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
}
nodes {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
...CreatorFragment
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{
"after": null,
"customAttributeConditions": [""],
"filter": {"campaignsIds": [""]},
"first": 20,
"presetId": null
}
Response
{
"data": {
"creators": {
"edges": [CreatorEdge],
"nodes": [Creator],
"pageInfo": PageInfo,
"totalCount": 5
}
}
}
customAttributeSchemas
Description
Retrieve custom attribute schemas to interpret customAttributes values. Returns at most 1000 rows; this field is not paginated.
Response
Returns [CustomAttributeSchema!]!
Arguments
| Name | Description |
|---|---|
entity - CustomAttributeSchemaEntity!
|
Entity type to get schemas for (ITEM or CREATOR). |
Example
Query
query customAttributeSchemas($entity: CustomAttributeSchemaEntity!) {
customAttributeSchemas(entity: $entity) {
aiGenerated
key
name
options {
id
name
}
type
}
}
Variables
{"entity": "CREATOR"}
Response
{
"data": {
"customAttributeSchemas": [
{
"aiGenerated": true,
"key": "links",
"name": "Links",
"options": [CustomAttributeOption],
"type": "TEXT_LIST"
}
]
}
}
engagementHistory
Description
Paginated history of engagement metric snapshots for a specific item, ordered newest first.
Response
Returns an EngagementHistoryConnection!
Arguments
| Name | Description |
|---|---|
after - String
|
Cursor for fetching the next page of results. Default = null |
filter - EngagementHistoryFilterInput
|
Filter criteria for engagement history entries. Default = null |
first - Int
|
Number of entries to return (page size). Default = 20 |
itemId - ID!
|
The ID of the item to fetch engagement history for. |
Example
Query
query engagementHistory(
$after: String,
$filter: EngagementHistoryFilterInput,
$first: Int,
$itemId: ID!
) {
engagementHistory(
after: $after,
filter: $filter,
first: $first,
itemId: $itemId
) {
edges {
cursor
node {
at
comments
earnedMediaValue
followers
impressions
likes
linearViralityScore
shares
views
}
}
nodes {
at
comments
earnedMediaValue
followers
impressions
likes
linearViralityScore
shares
views
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{
"after": null,
"filter": null,
"first": 20,
"itemId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"engagementHistory": {
"edges": [EngagementHistoryEntryEdge],
"nodes": [EngagementHistoryEntry],
"pageInfo": PageInfo,
"totalCount": 3
}
}
}
filterPresets
Description
List saved filter presets for items queries in the current workspace. Returns at most 1000 rows; this field is not paginated.
Response
Returns [FilterPreset!]!
Example
Query
query filterPresets {
filterPresets {
accessor
id
name
}
}
Response
{
"data": {
"filterPresets": [
{
"accessor": "COLLECTIONS",
"id": "148529d3-8e44-5bec-b39e-3127ba52cfef",
"name": "Legacy Reels Preset"
}
]
}
}
itemIdsByUrl
Description
Look up item IDs by social media URLs within the current workspace. Accepts any public HTTP(S) URL. INVALID_URL is returned only for malformed / non-HTTP URLs or private/reserved hosts; a valid public URL we cannot resolve (unrecognized shape, short link, or no matching item) returns NOT_FOUND. Recognized shapes (non-exhaustive hint): Instagram (/p/, /reel/, /reels/), TikTok (@user/video/{id}, @user/photo/{id}), and YouTube (/shorts/, /watch?v=, youtu.be/).
Response
Returns [UrlLookupResult!]!
Arguments
| Name | Description |
|---|---|
urls - [String!]!
|
Public HTTP(S) URLs to look up (1-100). Any public URL is accepted; INVALID_URL only for malformed / non-HTTP URLs or private/reserved hosts, otherwise FOUND or NOT_FOUND. |
Example
Query
query itemIdsByUrl($urls: [String!]!) {
itemIdsByUrl(urls: $urls) {
itemId
status
url
}
}
Variables
{"urls": ["xyz789"]}
Response
{
"data": {
"itemIdsByUrl": [
{
"itemId": "63c311c4-32f0-5d8c-ac02-78b160f2290a",
"status": "FOUND",
"url": "https://www.instagram.com/p/docs-item-0/"
}
]
}
}
items
Description
Search and paginate archived items (social content) for the current workspace.
Response
Returns an ItemConnection!
Arguments
| Name | Description |
|---|---|
after - String
|
Cursor for fetching the next page of results. |
customAttributeConditions - [CustomAttributeConditionInput!]
|
Custom attribute filter conditions. Default = [] |
filter - ItemFilterInput
|
Filter criteria to narrow down results. Default = {accountNames: [], campaignsIds: [], collectionsIds: [], ids: [], shopifyProductsIds: [], socialProfileAccountTypes: [], socialProfileIds: [], sourcesIds: [], tagsNames: [], viralityScore: []} |
first - Int
|
Number of items to return (page size). Default = 20 |
presetId - ID
|
Filter preset ID. When provided, sorting, filter, and customAttributeConditions are ignored. Must reference a preset with accessor media_deck or collections — pass IDs returned by contentViews / collections queries. Unknown, cross-workspace, or wrong-accessor preset IDs raise a GraphQL error with extensions.code = "WRONG_VIEW_TYPE_FOR_ITEMS". |
sorting - [ItemSortingInput!]
|
Sorting instructions to apply to the result set. Default = [{sortKey: TAKEN_AT, sortOrder: DESC}] |
Example
Query
query items(
$after: String,
$customAttributeConditions: [CustomAttributeConditionInput!],
$filter: ItemFilterInput,
$first: Int,
$presetId: ID,
$sorting: [ItemSortingInput!]
) {
items(
after: $after,
customAttributeConditions: $customAttributeConditions,
filter: $filter,
first: $first,
presetId: $presetId,
sorting: $sorting
) {
edges {
cursor
node {
aiFilterReasons {
key
reason
}
archivePublicUrl
caption
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
...CreatorFragment
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
currentEngagement {
comments
earnedMediaValue
impressions
likes
linearViralityScore
shares
views
}
customAttributes
externalId
hashtags
id
location {
city
country
formatted
name
state
}
mediaItemId
mentions
originalUrl
provider
socialProfile {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
...SocialProfileFragment
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
takenAt
transcriptions {
mediaContentId
transcript
}
type
}
}
nodes {
aiFilterReasons {
key
reason
}
archivePublicUrl
caption
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
...SocialProfileFragment
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
currentEngagement {
comments
earnedMediaValue
impressions
likes
linearViralityScore
shares
views
}
customAttributes
externalId
hashtags
id
location {
city
country
formatted
name
state
}
mediaItemId
mentions
originalUrl
provider
socialProfile {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
...CreatorFragment
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
takenAt
transcriptions {
mediaContentId
transcript
}
type
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{
"after": "eyJpZCI6IjEyMzQ1Njc4OTAxMjM0NTY3OCJ9",
"customAttributeConditions": [""],
"filter": {
"accountNames": [""],
"campaignsIds": [""],
"collectionsIds": [""],
"ids": [""],
"shopifyProductsIds": [""],
"socialProfileAccountTypes": [""],
"socialProfileIds": [""],
"sourcesIds": [""],
"tagsNames": [""],
"viralityScore": [""]
},
"first": 20,
"presetId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"sorting": {"sortKey": "TAKEN_AT", "sortOrder": "DESC"}
}
Response
{
"data": {
"items": {
"edges": [ItemEdge],
"nodes": [Item],
"pageInfo": PageInfo,
"totalCount": 5
}
}
}
mediaContents
Description
Retrieve media contents (images / videos) for shop items (itemIds) or for CompetitorBrandItem rows (competitorBrandItemIds). Pass exactly one. See the resolver description for routing details.
Response
Returns [MediaContent!]!
Arguments
| Name | Description |
|---|---|
competitorBrandItemIds - [ID!]
|
CompetitorBrandItem UUIDs to fetch contents for. Obtain them from the competitorBrandItems(brandId:, filter:) query. Mutually exclusive with itemIds.
|
itemIds - [ID!]
|
Item (shop-item) UUIDs to fetch contents for. Mutually exclusive with competitorBrandItemIds. |
Example
Query
query mediaContents(
$competitorBrandItemIds: [ID!],
$itemIds: [ID!]
) {
mediaContents(
competitorBrandItemIds: $competitorBrandItemIds,
itemIds: $itemIds
) {
... on Image {
deleted
fileUrl
height
id
mediaItemId
thumbnailUrl
type
width
}
... on Video {
deleted
fileUrl
height
id
mediaItemId
thumbnailUrl
type
videoDuration
width
}
}
}
Variables
{
"competitorBrandItemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"itemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
]
}
Response
{"data": {"mediaContents": [Image]}}
operation
Description
Return details for an operation by ID, including status and progress.
Response
Returns an Operation
Arguments
| Name | Description |
|---|---|
id - ID!
|
Unique identifier for the operation. |
Example
Query
query operation($id: ID!) {
operation(id: $id) {
completedAt
createdAt
failedItemIds
id
operationType
pendingItemIds
processed
status
succeededItemIds
total
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"operation": {
"completedAt": "2025-01-15T10:30:00Z",
"createdAt": "2024-12-31T22:00:00Z",
"failedItemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"id": "aeb032f4-179f-549f-b83c-3db2c5b58a2d",
"operationType": "refetch_engagement",
"pendingItemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"processed": 1,
"status": "COMPLETED",
"succeededItemIds": ["3467594a-79c1-5fa4-8490-8a31646ff716"],
"total": 1
}
}
}
operations
Description
List operations for the current workspace, ordered newest first.
Response
Returns an OperationConnection!
Example
Query
query operations(
$after: String,
$first: Int
) {
operations(
after: $after,
first: $first
) {
edges {
cursor
node {
createdAt
id
operationType
status
total
}
}
nodes {
createdAt
id
operationType
status
total
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{"after": null, "first": 20}
Response
{
"data": {
"operations": {
"edges": [OperationSummaryEdge],
"nodes": [OperationSummary],
"pageInfo": PageInfo,
"totalCount": 2
}
}
}
transcriptions
Description
Fetch transcriptions for one or more media contents belonging to the current workspace.
Response
Returns [Transcription!]!
Example
Query
query transcriptions(
$itemIds: [ID!],
$mediaContentIds: [ID!]
) {
transcriptions(
itemIds: $itemIds,
mediaContentIds: $mediaContentIds
) {
mediaContentId
transcript
}
}
Variables
{
"itemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"mediaContentIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
]
}
Response
{
"data": {
"transcriptions": [
{
"mediaContentId": "2",
"transcript": "Welcome to Northwind Botanicals — plant care tips, take 1."
}
]
}
}
viewGroup
Description
Return a single user-created view group by ID for the current workspace, or null if no such group exists here.
Example
Query
query viewGroup($id: ID!) {
viewGroup(id: $id) {
collections {
createdAt
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"viewGroup": {
"collections": [Collection],
"contentViews": [ContentView],
"createdAt": "2024-12-31T17:00:00Z",
"creatorViews": [CreatorView],
"id": "2e231afc-0359-5154-ba16-4915a7801f73",
"name": "Campaign Shortlists",
"socialProfileViews": [SocialProfileView],
"updatedAt": "2024-12-31T17:00:00Z"
}
}
}
viewGroups
Description
List user-created view groups for the current workspace, ordered oldest-first. Returns at most 1000 rows; this field is not paginated.
Response
Returns [ViewGroup!]!
Example
Query
query viewGroups {
viewGroups {
collections {
createdAt
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
}
Response
{
"data": {
"viewGroups": [
{
"collections": [Collection],
"contentViews": [ContentView],
"createdAt": "2024-12-31T17:00:00Z",
"creatorViews": [CreatorView],
"id": "2e231afc-0359-5154-ba16-4915a7801f73",
"name": "Campaign Shortlists",
"socialProfileViews": [SocialProfileView],
"updatedAt": "2024-12-31T17:00:00Z"
}
]
}
}
webhookDeliveries
Description
Paginate webhook deliveries (dead-letter surface) for the current workspace, newest first. Filter by subscription and/or status. History is retained for 30 days.
Response
Returns a WebhookDeliveryConnection!
Arguments
| Name | Description |
|---|---|
after - String
|
Cursor for fetching the next page of results. Default = null |
filter - WebhookDeliveryFilterInput
|
Filter criteria. Optionally narrow by subscription and/or status. Default = {status: null, subscriptionId: null} |
first - Int
|
Number of deliveries to return (page size). Default = 20 |
Example
Query
query webhookDeliveries(
$after: String,
$filter: WebhookDeliveryFilterInput,
$first: Int
) {
webhookDeliveries(
after: $after,
filter: $filter,
first: $first
) {
edges {
cursor
node {
attemptCount
createdAt
eventId
id
lastAttemptAt
lastError
lastResponseStatus
nextAttemptAt
responseTimeMs
status
subscriptionId
updatedAt
}
}
nodes {
attemptCount
createdAt
eventId
id
lastAttemptAt
lastError
lastResponseStatus
nextAttemptAt
responseTimeMs
status
subscriptionId
updatedAt
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{
"after": null,
"filter": {"status": "null", "subscriptionId": "null"},
"first": 20
}
Response
{
"data": {
"webhookDeliveries": {
"edges": [WebhookDeliveryEdge],
"nodes": [WebhookDelivery],
"pageInfo": PageInfo,
"totalCount": 1
}
}
}
webhookEvents
Description
Paginate webhook events (the outbox) for the current workspace, newest first. Filter by event type. History is retained for 30 days.
Response
Returns a WebhookEventConnection!
Arguments
| Name | Description |
|---|---|
after - String
|
Cursor for fetching the next page of results. Default = null |
filter - WebhookEventFilterInput
|
Filter criteria. Optionally narrow by event type. Default = {eventTypes: null} |
first - Int
|
Number of events to return (page size). Default = 20 |
Example
Query
query webhookEvents(
$after: String,
$filter: WebhookEventFilterInput,
$first: Int
) {
webhookEvents(
after: $after,
filter: $filter,
first: $first
) {
edges {
cursor
node {
createdAt
eventType
eventVersion
id
payload
}
}
nodes {
createdAt
eventType
eventVersion
id
payload
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{"after": null, "filter": {"eventTypes": "null"}, "first": 20}
Response
{
"data": {
"webhookEvents": {
"edges": [WebhookEventEdge],
"nodes": [WebhookEvent],
"pageInfo": PageInfo,
"totalCount": 2
}
}
}
webhookSubscriptions
Description
List outbound-webhook subscriptions for the current workspace, newest first. Returns at most 1000 rows; this field is not paginated.
Response
Returns [WebhookSubscription!]!
Example
Query
query webhookSubscriptions {
webhookSubscriptions {
consecutiveFailures
createdAt
disabledAt
eventTypes
id
lastSuccessAt
metadata
name
status
updatedAt
url
viewIds
}
}
Response
{
"data": {
"webhookSubscriptions": [
{
"consecutiveFailures": 0,
"createdAt": "2025-01-15T10:30:00Z",
"disabledAt": "2024-12-31T13:00:00Z",
"eventTypes": ["content_view.item_added"],
"id": "b24c9093-72a3-504d-b97c-cb023efca979",
"lastSuccessAt": "2025-01-15T10:30:00Z",
"metadata": {"team": "fulfilment"},
"name": "Fulfilment webhook",
"status": "ACTIVE",
"updatedAt": "2025-01-15T10:30:00Z",
"url": "https://hooks.northwind-botanicals.example/archive/new-content",
"viewIds": ["eaa824b8-374f-5db8-bee2-51dfd8c3776c"]
}
]
}
}
webhookSubscriptionsConnection
Description
Cursor-paginated variant of webhookSubscriptions: list outbound-webhook subscriptions for the current workspace, newest first.
Response
Returns a WebhookSubscriptionConnection!
Example
Query
query webhookSubscriptionsConnection(
$after: String,
$first: Int
) {
webhookSubscriptionsConnection(
after: $after,
first: $first
) {
edges {
cursor
node {
consecutiveFailures
createdAt
disabledAt
eventTypes
id
lastSuccessAt
metadata
name
status
updatedAt
url
viewIds
}
}
nodes {
consecutiveFailures
createdAt
disabledAt
eventTypes
id
lastSuccessAt
metadata
name
status
updatedAt
url
viewIds
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{"after": null, "first": 20}
Response
{
"data": {
"webhookSubscriptionsConnection": {
"edges": [WebhookSubscriptionEdge],
"nodes": [WebhookSubscription],
"pageInfo": PageInfo,
"totalCount": 2
}
}
}
workspace
Description
Return details for the current workspace, inferred from the WORKSPACE-ID header.
Response
Returns a Workspace!
Example
Query
query workspace {
workspace {
hashtags {
id
name
provider
type
}
id
integrations {
connectedAt
handle
id
provider
status
}
keywords {
id
name
provider
}
mentions {
id
name
provider
type
}
name
}
}
Response
{
"data": {
"workspace": {
"hashtags": [Tag],
"id": "6ccefa76-e8ba-5ab0-9c60-e48a9e235a4a",
"integrations": [Integration],
"keywords": [Keyword],
"mentions": [Tag],
"name": "Northwind Botanicals"
}
}
}
workspaces
Description
List all workspaces that the current API user has access to.
Response
Returns a WorkspaceConnection!
Example
Query
query workspaces(
$after: String,
$first: Int
) {
workspaces(
after: $after,
first: $first
) {
edges {
cursor
node {
hashtags {
id
name
provider
type
}
id
integrations {
connectedAt
handle
id
provider
status
}
keywords {
id
name
provider
}
mentions {
id
name
provider
type
}
name
}
}
nodes {
hashtags {
id
name
provider
type
}
id
integrations {
connectedAt
handle
id
provider
status
}
keywords {
id
name
provider
}
mentions {
id
name
provider
type
}
name
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
totalCount
}
}
Variables
{"after": null, "first": 20}
Response
{
"data": {
"workspaces": {
"edges": [WorkspaceEdge],
"nodes": [Workspace],
"pageInfo": PageInfo,
"totalCount": 1
}
}
}
Mutations
addItemToCollections
Description
Add an item to one or more collections.
Response
Returns an AddToCollectionsPayload
Arguments
| Name | Description |
|---|---|
autoCreate - Boolean
|
Automatically create collections by name if they do not exist. Default = false |
collectionIds - [ID!]
|
IDs of existing collections, as returned by the collections query for this workspace. Several id forms are accepted depending on how the workspace stores Collections. An id from another workspace, or one this workspace cannot write through this API, rejects the WHOLE call with a userErrors entry naming the offending id under collectionIds. Default = [] |
collectionNames - [String!]
|
Names of collections to add the item to. Default = [] |
itemId - ID!
|
ID of the item to add to collections. |
Example
Query
mutation addItemToCollections(
$autoCreate: Boolean,
$collectionIds: [ID!],
$collectionNames: [String!],
$itemId: ID!
) {
addItemToCollections(
autoCreate: $autoCreate,
collectionIds: $collectionIds,
collectionNames: $collectionNames,
itemId: $itemId
) {
item {
aiFilterReasons {
key
reason
}
archivePublicUrl
caption
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
...SocialProfileFragment
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
currentEngagement {
comments
earnedMediaValue
impressions
likes
linearViralityScore
shares
views
}
customAttributes
externalId
hashtags
id
location {
city
country
formatted
name
state
}
mediaItemId
mentions
originalUrl
provider
socialProfile {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
...CreatorFragment
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
takenAt
transcriptions {
mediaContentId
transcript
}
type
}
userErrors {
field
message
}
}
}
Variables
{
"autoCreate": false,
"collectionIds": [""],
"collectionNames": [""],
"itemId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"addItemToCollections": {
"item": Item,
"userErrors": [UserError]
}
}
}
createCollection
Description
Create a Collection (saved tag set) in the current workspace.
Response
Returns a CreateCollectionPayload
Arguments
| Name | Description |
|---|---|
input - CreateCollectionInput!
|
Mutation input. |
Example
Query
mutation createCollection($input: CreateCollectionInput!) {
createCollection(input: $input) {
collection {
createdAt
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{"input": CreateCollectionInput}
Response
{
"data": {
"createCollection": {
"collection": Collection,
"userErrors": [UserError]
}
}
}
createContentView
Description
Create a saved content (media deck) view for the current workspace.
Response
Returns a CreateContentViewPayload
Arguments
| Name | Description |
|---|---|
input - CreateContentViewInput!
|
Mutation input. |
Example
Query
mutation createContentView($input: CreateContentViewInput!) {
createContentView(input: $input) {
contentView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{"input": CreateContentViewInput}
Response
{
"data": {
"createContentView": {
"contentView": ContentView,
"userErrors": [UserError]
}
}
}
createCreatorView
Description
Create a saved Creator View for the current workspace.
Response
Returns a CreateCreatorViewPayload
Arguments
| Name | Description |
|---|---|
input - CreateCreatorViewInput!
|
Mutation input. |
Example
Query
mutation createCreatorView($input: CreateCreatorViewInput!) {
createCreatorView(input: $input) {
creatorView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{"input": CreateCreatorViewInput}
Response
{
"data": {
"createCreatorView": {
"creatorView": CreatorView,
"userErrors": [UserError]
}
}
}
createSocialProfileView
Description
Create a saved Social Profile view for the current workspace.
Response
Returns a CreateSocialProfileViewPayload
Arguments
| Name | Description |
|---|---|
input - CreateSocialProfileViewInput!
|
Mutation input. |
Example
Query
mutation createSocialProfileView($input: CreateSocialProfileViewInput!) {
createSocialProfileView(input: $input) {
socialProfileView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{"input": CreateSocialProfileViewInput}
Response
{
"data": {
"createSocialProfileView": {
"socialProfileView": SocialProfileView,
"userErrors": [UserError]
}
}
}
createViewGroup
Description
Create a user-created view group for the current workspace.
Response
Returns a CreateViewGroupPayload
Arguments
| Name | Description |
|---|---|
input - CreateViewGroupInput!
|
Mutation input. |
Example
Query
mutation createViewGroup($input: CreateViewGroupInput!) {
createViewGroup(input: $input) {
userErrors {
field
message
}
viewGroup {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
}
}
Variables
{"input": CreateViewGroupInput}
Response
{
"data": {
"createViewGroup": {
"userErrors": [UserError],
"viewGroup": ViewGroup
}
}
}
createWebhookSubscription
Description
Create an outbound-webhook subscription. Returns the signing secret exactly once.
Response
Returns a CreateWebhookSubscriptionPayload
Arguments
| Name | Description |
|---|---|
input - CreateWebhookSubscriptionInput!
|
Mutation input. |
Example
Query
mutation createWebhookSubscription($input: CreateWebhookSubscriptionInput!) {
createWebhookSubscription(input: $input) {
secret
userErrors {
field
message
}
webhookSubscription {
consecutiveFailures
createdAt
disabledAt
eventTypes
id
lastSuccessAt
metadata
name
status
updatedAt
url
viewIds
}
}
}
Variables
{"input": CreateWebhookSubscriptionInput}
Response
{
"data": {
"createWebhookSubscription": {
"secret": "whsec_EXAMPLE_SECRET_SHOWN_ONCE_DO_NOT_USE",
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
}
}
deleteCollection
Description
Delete a Collection (strips the tag from items; does not delete items).
Response
Returns a DeleteCollectionPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the Collection to delete (as returned by collections). Collection management is available only in workspaces whose Collections use the standard storage; where they use an older format the ids collections returns are not accepted here and the call returns a userError without changing anything. |
Example
Query
mutation deleteCollection($id: ID!) {
deleteCollection(id: $id) {
deletedCollectionId
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"deleteCollection": {
"deletedCollectionId": "e51b749b-1344-535f-a4c5-f878b69d143b",
"userErrors": [UserError]
}
}
}
deleteContentView
Description
Hard-delete a saved content (media deck) view.
Response
Returns a DeleteContentViewPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the content view to delete. |
Example
Query
mutation deleteContentView($id: ID!) {
deleteContentView(id: $id) {
deletedContentViewId
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"deleteContentView": {
"deletedContentViewId": "148529d3-8e44-5bec-b39e-3127ba52cfef",
"userErrors": [UserError]
}
}
}
deleteCreatorView
Description
Hard-delete a saved Creator View.
Response
Returns a DeleteCreatorViewPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the creator view to delete. |
Example
Query
mutation deleteCreatorView($id: ID!) {
deleteCreatorView(id: $id) {
deletedCreatorViewId
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"deleteCreatorView": {
"deletedCreatorViewId": "8d6ddb76-8b81-5725-a762-2d2e18432dcf",
"userErrors": [UserError]
}
}
}
deleteSocialProfileView
Description
Hard-delete a saved Social Profile view.
Response
Returns a DeleteSocialProfileViewPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the social profile view to delete. |
Example
Query
mutation deleteSocialProfileView($id: ID!) {
deleteSocialProfileView(id: $id) {
deletedSocialProfileViewId
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"deleteSocialProfileView": {
"deletedSocialProfileViewId": "6f36548f-6fec-5322-96e7-8ae179b96c04",
"userErrors": [UserError]
}
}
}
deleteViewGroup
Description
Hard-delete a user-created view group. Returns the FilterPreset UUIDs whose group membership was removed so clients can invalidate cached views.
Response
Returns a DeleteViewGroupPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the view group to delete. |
Example
Query
mutation deleteViewGroup($id: ID!) {
deleteViewGroup(id: $id) {
deletedViewGroupId
movedViewIds
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"deleteViewGroup": {
"deletedViewGroupId": "8e0f0ff1-8024-5af5-9506-49091f53a920",
"movedViewIds": ["eaa824b8-374f-5db8-bee2-51dfd8c3776c"],
"userErrors": [UserError]
}
}
}
deleteWebhookSubscription
Description
Hard-delete a webhook subscription (cascades its deliveries).
Response
Returns a DeleteWebhookSubscriptionPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the subscription to delete. |
Example
Query
mutation deleteWebhookSubscription($id: ID!) {
deleteWebhookSubscription(id: $id) {
deletedWebhookSubscriptionId
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"deleteWebhookSubscription": {
"deletedWebhookSubscriptionId": "eb418e28-bf9d-5350-b87b-446a6813bca4",
"userErrors": [UserError]
}
}
}
enableWebhookSubscription
Description
Re-enable a subscription auto-disabled by failures; optionally replay the last 24h of failures.
Response
Returns an EnableWebhookSubscriptionPayload
Example
Query
mutation enableWebhookSubscription(
$id: ID!,
$replayFailedSince24h: Boolean
) {
enableWebhookSubscription(
id: $id,
replayFailedSince24h: $replayFailedSince24h
) {
userErrors {
field
message
}
webhookSubscription {
consecutiveFailures
createdAt
disabledAt
eventTypes
id
lastSuccessAt
metadata
name
status
updatedAt
url
viewIds
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"replayFailedSince24h": true
}
Response
{
"data": {
"enableWebhookSubscription": {
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
}
}
moveCollectionToGroup
Description
Move a Collection into a view group, or out (when groupId is null).
Response
Returns a MoveCollectionToGroupPayload
Arguments
| Name | Description |
|---|---|
collectionId - ID!
|
UUID of the Collection to move (as returned by collections). Collection management is available only in workspaces whose Collections use the standard storage; where they use an older format the ids collections returns are not accepted here and the call returns a userError without changing anything. |
groupId - ID
|
Target ViewGroup UUID. Pass null to remove the Collection from any group it currently belongs to. |
Example
Query
mutation moveCollectionToGroup(
$collectionId: ID!,
$groupId: ID
) {
moveCollectionToGroup(
collectionId: $collectionId,
groupId: $groupId
) {
collection {
createdAt
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"collectionId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"moveCollectionToGroup": {
"collection": Collection,
"userErrors": [UserError]
}
}
}
moveContentViewToGroup
Description
Move a saved content (media deck) view into a view group, or out (when groupId is null).
Response
Returns a MoveContentViewToGroupPayload
Example
Query
mutation moveContentViewToGroup(
$groupId: ID,
$viewId: ID!
) {
moveContentViewToGroup(
groupId: $groupId,
viewId: $viewId
) {
contentView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"viewId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"moveContentViewToGroup": {
"contentView": ContentView,
"userErrors": [UserError]
}
}
}
moveCreatorViewToGroup
Description
Move a saved Creator View into a view group, or out (when groupId is null).
Response
Returns a MoveCreatorViewToGroupPayload
Example
Query
mutation moveCreatorViewToGroup(
$groupId: ID,
$viewId: ID!
) {
moveCreatorViewToGroup(
groupId: $groupId,
viewId: $viewId
) {
creatorView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"viewId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"moveCreatorViewToGroup": {
"creatorView": CreatorView,
"userErrors": [UserError]
}
}
}
moveSocialProfileViewToGroup
Description
Move a saved Social Profile view into a view group, or out (when groupId is null).
Response
Returns a MoveSocialProfileViewToGroupPayload
Example
Query
mutation moveSocialProfileViewToGroup(
$groupId: ID,
$viewId: ID!
) {
moveSocialProfileViewToGroup(
groupId: $groupId,
viewId: $viewId
) {
socialProfileView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"viewId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"moveSocialProfileViewToGroup": {
"socialProfileView": SocialProfileView,
"userErrors": [UserError]
}
}
}
redeliverWebhookDelivery
Description
Manually replay a terminal failed delivery (one-shot).
Response
Returns a RedeliverWebhookDeliveryPayload
Arguments
| Name | Description |
|---|---|
deliveryId - ID!
|
UUID of the failed delivery to replay. |
Example
Query
mutation redeliverWebhookDelivery($deliveryId: ID!) {
redeliverWebhookDelivery(deliveryId: $deliveryId) {
userErrors {
field
message
}
webhookDelivery {
attemptCount
createdAt
eventId
id
lastAttemptAt
lastError
lastResponseStatus
nextAttemptAt
responseTimeMs
status
subscriptionId
updatedAt
}
}
}
Variables
{
"deliveryId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"redeliverWebhookDelivery": {
"userErrors": [UserError],
"webhookDelivery": WebhookDelivery
}
}
}
refetchEngagementBulk
Description
Queue a bulk engagement data refresh for the specified items.
Response
Returns a RefetchBulkPayload
Arguments
| Name | Description |
|---|---|
itemIds - [ID!]!
|
IDs of items to refresh engagement data for. Items belonging to other workspaces are silently ignored. Instagram stories are automatically excluded. |
Example
Query
mutation refetchEngagementBulk($itemIds: [ID!]!) {
refetchEngagementBulk(itemIds: $itemIds) {
operationId
processedCount
skippedItemIds
userErrors {
field
message
}
}
}
Variables
{
"itemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
]
}
Response
{
"data": {
"refetchEngagementBulk": {
"operationId": "046a8f4e-686e-5773-9374-eb91cfd0c54c",
"processedCount": 2,
"skippedItemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"userErrors": [UserError]
}
}
}
removeItemFromCollections
Description
Remove an item from one or more collections.
Response
Returns a RemoveFromCollectionsPayload
Arguments
| Name | Description |
|---|---|
collectionIds - [ID!]
|
IDs of collections to remove the item from, as returned by the collections query for this workspace. Several id forms are accepted depending on how the workspace stores Collections. An id from another workspace, or one this workspace cannot write through this API, rejects the WHOLE call with a userErrors entry naming the offending id under collectionIds. Default = [] |
collectionNames - [String!]
|
Names of collections to remove the item from. Default = [] |
itemId - ID!
|
ID of the item to remove from collections. |
Example
Query
mutation removeItemFromCollections(
$collectionIds: [ID!],
$collectionNames: [String!],
$itemId: ID!
) {
removeItemFromCollections(
collectionIds: $collectionIds,
collectionNames: $collectionNames,
itemId: $itemId
) {
item {
aiFilterReasons {
key
reason
}
archivePublicUrl
caption
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
...SocialProfileFragment
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
currentEngagement {
comments
earnedMediaValue
impressions
likes
linearViralityScore
shares
views
}
customAttributes
externalId
hashtags
id
location {
city
country
formatted
name
state
}
mediaItemId
mentions
originalUrl
provider
socialProfile {
accountName
avatar
creator {
customAttributes
id
socialProfiles {
accountName
avatar
creator {
...CreatorFragment
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
}
email
followers
following
fullName
id
originalUrl
phoneNumbers
private
proAccount
provider
verified
}
takenAt
transcriptions {
mediaContentId
transcript
}
type
}
userErrors {
field
message
}
}
}
Variables
{
"collectionIds": [""],
"collectionNames": [""],
"itemId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"removeItemFromCollections": {
"item": Item,
"userErrors": [UserError]
}
}
}
reorderViewsInGroup
Description
Reorder the submitted Content View, Social Profile View, and Creator View ids within the named group. Members omitted from viewIds keep their relative order and sort after the listed views.
Response
Returns a ReorderViewsInGroupPayload
Example
Query
mutation reorderViewsInGroup(
$groupId: ID!,
$viewIds: [ID!]!
) {
reorderViewsInGroup(
groupId: $groupId,
viewIds: $viewIds
) {
userErrors {
field
message
}
viewGroup {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
}
}
Variables
{
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"viewIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
]
}
Response
{
"data": {
"reorderViewsInGroup": {
"userErrors": [UserError],
"viewGroup": ViewGroup
}
}
}
rotateWebhookSubscriptionSecret
Description
Rotate a webhook subscription signing secret. Returns the new secret once.
Response
Returns a RotateWebhookSubscriptionSecretPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the subscription to rotate. |
Example
Query
mutation rotateWebhookSubscriptionSecret($id: ID!) {
rotateWebhookSubscriptionSecret(id: $id) {
secret
userErrors {
field
message
}
webhookSubscription {
consecutiveFailures
createdAt
disabledAt
eventTypes
id
lastSuccessAt
metadata
name
status
updatedAt
url
viewIds
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"rotateWebhookSubscriptionSecret": {
"secret": "whsec_EXAMPLE_SECRET_SHOWN_ONCE_DO_NOT_USE",
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
}
}
sendWebhookTestEvent
Description
Send a signed synthetic ping to a subscription's endpoint and return the settled delivery.
Response
Returns a SendWebhookTestEventPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the subscription to test. |
Example
Query
mutation sendWebhookTestEvent($id: ID!) {
sendWebhookTestEvent(id: $id) {
userErrors {
field
message
}
webhookDelivery {
attemptCount
createdAt
eventId
id
lastAttemptAt
lastError
lastResponseStatus
nextAttemptAt
responseTimeMs
status
subscriptionId
updatedAt
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
Response
{
"data": {
"sendWebhookTestEvent": {
"userErrors": [UserError],
"webhookDelivery": WebhookDelivery
}
}
}
updateCollection
Description
Rename a Collection in the current workspace.
Response
Returns an UpdateCollectionPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the Collection to update (as returned by createCollection / collections). Collection management is available only in workspaces whose Collections use the standard storage; where they use an older format the ids collections returns are not accepted here and the call returns a userError without changing anything. |
input - UpdateCollectionInput!
|
Mutation input. |
Example
Query
mutation updateCollection(
$id: ID!,
$input: UpdateCollectionInput!
) {
updateCollection(
id: $id,
input: $input
) {
collection {
createdAt
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"input": UpdateCollectionInput
}
Response
{
"data": {
"updateCollection": {
"collection": Collection,
"userErrors": [UserError]
}
}
}
updateContentView
Description
Partial-update a saved content (media deck) view.
Response
Returns an UpdateContentViewPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the content view to update. |
input - UpdateContentViewInput!
|
Partial-update input. Only provided fields are updated. |
Example
Query
mutation updateContentView(
$id: ID!,
$input: UpdateContentViewInput!
) {
updateContentView(
id: $id,
input: $input
) {
contentView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"input": UpdateContentViewInput
}
Response
{
"data": {
"updateContentView": {
"contentView": ContentView,
"userErrors": [UserError]
}
}
}
updateCreatorView
Description
Partial-update a saved Creator View.
Response
Returns an UpdateCreatorViewPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the creator view to update. |
input - UpdateCreatorViewInput!
|
Partial-update input. Only provided fields are updated. |
Example
Query
mutation updateCreatorView(
$id: ID!,
$input: UpdateCreatorViewInput!
) {
updateCreatorView(
id: $id,
input: $input
) {
creatorView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"input": UpdateCreatorViewInput
}
Response
{
"data": {
"updateCreatorView": {
"creatorView": CreatorView,
"userErrors": [UserError]
}
}
}
updateSocialProfileView
Description
Partial-update a saved Social Profile view.
Response
Returns an UpdateSocialProfileViewPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
FilterPreset UUID of the social profile view to update. |
input - UpdateSocialProfileViewInput!
|
Partial-update input. Only provided fields are updated. |
Example
Query
mutation updateSocialProfileView(
$id: ID!,
$input: UpdateSocialProfileViewInput!
) {
updateSocialProfileView(
id: $id,
input: $input
) {
socialProfileView {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
...CollectionFragment
}
contentViews {
...ContentViewFragment
}
createdAt
creatorViews {
...CreatorViewFragment
}
id
name
socialProfileViews {
...SocialProfileViewFragment
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
userErrors {
field
message
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"input": UpdateSocialProfileViewInput
}
Response
{
"data": {
"updateSocialProfileView": {
"socialProfileView": SocialProfileView,
"userErrors": [UserError]
}
}
}
updateViewGroup
Description
Rename a user-created view group.
Response
Returns an UpdateViewGroupPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the view group to rename. |
input - UpdateViewGroupInput!
|
Update input. name is the only mutable field today. |
Example
Query
mutation updateViewGroup(
$id: ID!,
$input: UpdateViewGroupInput!
) {
updateViewGroup(
id: $id,
input: $input
) {
userErrors {
field
message
}
viewGroup {
collections {
createdAt
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
collections {
createdAt
group {
...ViewGroupFragment
}
id
itemCount
name
updatedAt
}
contentViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
createdAt
creatorViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
id
name
socialProfileViews {
createdAt
customAttributeConditions
filters
group {
...ViewGroupFragment
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
id
name
showReportingStats
sort
updatedAt
}
updatedAt
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"input": UpdateViewGroupInput
}
Response
{
"data": {
"updateViewGroup": {
"userErrors": [UserError],
"viewGroup": ViewGroup
}
}
}
updateWebhookSubscription
Description
Partial-update a webhook subscription.
Response
Returns an UpdateWebhookSubscriptionPayload
Arguments
| Name | Description |
|---|---|
id - ID!
|
UUID of the subscription to update. |
input - UpdateWebhookSubscriptionInput!
|
Partial-update input. Only provided fields are updated. |
Example
Query
mutation updateWebhookSubscription(
$id: ID!,
$input: UpdateWebhookSubscriptionInput!
) {
updateWebhookSubscription(
id: $id,
input: $input
) {
userErrors {
field
message
}
webhookSubscription {
consecutiveFailures
createdAt
disabledAt
eventTypes
id
lastSuccessAt
metadata
name
status
updatedAt
url
viewIds
}
}
}
Variables
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"input": UpdateWebhookSubscriptionInput
}
Response
{
"data": {
"updateWebhookSubscription": {
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
}
}
uploadItemFromUrl
Description
Enqueue a single UGC URL for import into the current workspace.
Response
Returns an UploadItemFromUrlPayload
Arguments
| Name | Description |
|---|---|
input - UploadItemFromUrlInput!
|
Mutation input. |
Example
Query
mutation uploadItemFromUrl($input: UploadItemFromUrlInput!) {
uploadItemFromUrl(input: $input) {
success
userErrors {
field
message
}
}
}
Variables
{"input": UploadItemFromUrlInput}
Response
{
"data": {
"uploadItemFromUrl": {
"success": true,
"userErrors": [UserError]
}
}
}
Types
AddToCollectionsPayload
Description
Autogenerated return type of AddToCollections.
Fields
| Field Name | Description |
|---|---|
item - Item
|
The updated item. |
userErrors - [UserError!]!
|
List of errors that occurred. |
Example
{
"item": Item,
"userErrors": [UserError]
}
AiFilterReason
Description
Explanation an AI Filter produced for one custom-attribute value on an item. Pair it to the value by key in the item's customAttributes object.
Fields
| Field Name | Description |
|---|---|
key - String!
|
Custom-attribute key this explanation belongs to. Matches a key in customAttributes and the key of a customAttributeSchemas entry. |
reason - String
|
The AI Filter's explanation for the value it assigned. Null when the run recorded no explanation; an empty string is returned verbatim when the model produced one. |
Example
{
"key": "abc123",
"reason": "abc123"
}
BigInt
Description
Represents non-fractional signed whole numeric values. Since the value may exceed the size of a 32-bit integer, it's encoded as a string.
Example
9823456712
Boolean
Description
The Boolean scalar type represents true or false.
Example
true
Campaign
Description
A campaign in Archive that groups creators and their content.
Example
{
"createdAt": "2024-12-31T00:00:00Z",
"id": "115d4e8e-2e30-5d2b-acb8-78cf3d81eab1",
"name": "Fall Refresh"
}
CampaignConnection
Description
Paginated list of campaigns.
Fields
| Field Name | Description |
|---|---|
edges - [CampaignEdge!]!
|
List of edges with cursors. |
nodes - [Campaign!]!
|
List of campaigns. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [CampaignEdge],
"nodes": [Campaign],
"pageInfo": PageInfo,
"totalCount": 3
}
CampaignEdge
Collection
Description
A Collection (saved tag set) for the current workspace.
Fields
| Field Name | Description |
|---|---|
createdAt - DateTimeWithZone!
|
When the Collection was created. |
group - ViewGroup
|
Group this Collection belongs to, or null when ungrouped. Populated by moveCollectionToGroup. Always null for workspaces whose Collections use the older storage. |
id - ID!
|
Unique identifier of the Collection in this workspace. Pass it to addItemToCollections / removeItemFromCollections and to collection(id:). |
itemCount - Int!
|
Number of items in this workspace tagged with the Collection. |
name - String!
|
Display name of the Collection. |
updatedAt - DateTimeWithZone!
|
When the Collection was last updated. |
Example
{
"createdAt": "2024-12-31T21:00:00Z",
"group": ViewGroup,
"id": "122321ce-843e-5b07-9f56-94323c0ae39e",
"itemCount": 3,
"name": "Best Sellers",
"updatedAt": "2024-12-31T21:00:00Z"
}
CompetitorBrand
Description
A brand tracked in Competitor Insights for the current workspace, plus the workspace's own brand as a flagged entry (isOwnBrand: true).
Fields
| Field Name | Description |
|---|---|
earnedMediaValue - Float
|
Estimated earned media value (USD) over the window. Null when unavailable or no data. |
engagementsTotal - Float
|
Total engagements (likes + comments + shares, …) over the window. Null when unavailable or no data. |
id - ID!
|
Unique identifier for the brand in Archive's system. For the workspace's own-brand entry this is a stable, workspace-scoped id (the same across requests). |
impressions - Float
|
Merged view/play impressions over the window. Null when unavailable or no data. |
influencersCount - Int
|
Distinct influencers counted over the window. Null when unavailable or no data. |
isOwnBrand - Boolean!
|
True for the workspace's own-brand entry, false for tracked competitor brands. Use this to compute self-vs-competitor Share of Voice. |
name - String!
|
Brand name. The workspace's own-brand entry is named "You". |
ownMetricsStatus - CompetitorBrandOwnMetricsStatus
|
For the own-brand entry only (null for competitors): AVAILABLE when metrics were computed (null metric fields then mean no data in the window, distinct from zero), UNAVAILABLE when they could not be computed. The accompanying error code says whether to retry. |
postsCount - Int
|
Number of posts counted over the window. Null when unavailable or no data. |
reach - Float
|
Summed follower reach over the window. Null when unavailable or no data. |
Example
{
"earnedMediaValue": 987.65,
"engagementsTotal": 123.45,
"id": "28add94e-9994-54b2-9aaa-528e6606efe9",
"impressions": 123.45,
"influencersCount": 123,
"isOwnBrand": true,
"name": "Verdant Co.",
"ownMetricsStatus": "AVAILABLE",
"postsCount": 123,
"reach": 987.65
}
CompetitorBrandConnection
Description
Paginated list of competitor brands.
Fields
| Field Name | Description |
|---|---|
edges - [CompetitorBrandEdge!]!
|
List of edges with cursors. |
nodes - [CompetitorBrand!]!
|
List of competitor brands. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [CompetitorBrandEdge],
"nodes": [CompetitorBrand],
"pageInfo": PageInfo,
"totalCount": 3
}
CompetitorBrandEdge
Description
An edge in the competitor brand connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - CompetitorBrand!
|
The competitor brand. |
Example
{
"cursor": "xyz789",
"node": CompetitorBrand
}
CompetitorBrandItem
Description
A single post belonging to a Competitor Insights brand. Posts for a given month become available on day 9 of the following month.
Fields
| Field Name | Description |
|---|---|
archivePublicUrl - String
|
Stable Archive permalink for this post. Unlike originalUrl, this URL keeps resolving after the source post is deleted on the originating platform. Mirrors Item.archivePublicUrl for parity. |
caption - String
|
Caption text of the post, when available. Mirrors Item.caption for parity. |
currentEngagement - Engagement
|
Most recent engagement metrics (likes, comments, views, shares, EMV) and virality score for this post. |
externalId - ID!
|
Platform-side identifier (Instagram media id, TikTok video id, etc.). |
hashtags - [String!]
|
List of hashtags used in the post. Mirrors Item.hashtags for parity. |
id - ID!
|
Unique identifier of the underlying media item in Archive's system. |
mentions - [String!]
|
List of @-mentions used in the post. Mirrors Item.mentions for parity. |
originalUrl - String
|
Direct URL to the post on the source platform. Null for content types without a public URL (e.g. Instagram Stories). |
provider - Provider!
|
Platform the post was published on. |
socialProfile - SocialProfile!
|
Social media profile that posted this content. |
takenAt - DateTime!
|
When the post was published on the source platform. |
transcriptions - [Transcription!]!
|
Text transcriptions and subtitles generated for video content in this post. Mirrors Item.transcriptions for parity. |
type - ItemType!
|
Type of post (post / reel / story / short). Mirrors Item.type for parity. |
Example
{
"archivePublicUrl": "abc123",
"caption": "Reel #29 from Northwind Botanicals #northwindbotanicals #plantcare #growwithnorthwind @northwindbotanicals",
"currentEngagement": Engagement,
"externalId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"hashtags": ["abc123"],
"id": "45c2aca7-5351-5774-8196-b9346e58a099",
"mentions": ["xyz789"],
"originalUrl": "https://instagram.com/p/docs-item-29",
"provider": "INSTAGRAM",
"socialProfile": SocialProfile,
"takenAt": "2024-11-30T00:00:00Z",
"transcriptions": [Transcription],
"type": "REEL"
}
CompetitorBrandItemConnection
Description
Paginated list of competitor brand items.
Fields
| Field Name | Description |
|---|---|
edges - [CompetitorBrandItemEdge!]!
|
List of edges with cursors. |
nodes - [CompetitorBrandItem!]!
|
List of competitor brand items. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [CompetitorBrandItemEdge],
"nodes": [CompetitorBrandItem],
"pageInfo": PageInfo,
"totalCount": 30
}
CompetitorBrandItemEdge
Description
An edge in the competitor brand item connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - CompetitorBrandItem!
|
The competitor brand item. |
Example
{
"cursor": "abc123",
"node": CompetitorBrandItem
}
CompetitorBrandItemFilterInput
Description
Filter criteria for paginating posts within a Competitor Insights brand.
Fields
| Input Field | Description |
|---|---|
takenAt - FilterDateRangeInput!
|
Time window over post publication date. Both from and to are required — unbounded time windows are not supported. |
Example
{"takenAt": FilterDateRangeInput}
CompetitorBrandItemSortKey
Description
Field to use when ordering posts under a Competitor Insights brand.
Values
| Enum Value | Description |
|---|---|
|
|
Sort by earned media value (EMV). Posts are ranked as a single ordering across the entire requested takenAt window, regardless of how many calendar months it spans. |
|
|
Sort by when the content was originally posted on the social platform. |
Example
"EARNED_MEDIA_VALUE"
CompetitorBrandItemSortingInput
Description
Single-field sort configuration for competitorBrandItems. Compound sort is not supported.
Fields
| Input Field | Description |
|---|---|
sortKey - CompetitorBrandItemSortKey!
|
Which field to sort by. |
sortOrder - SortOrder!
|
Whether to sort ascending (ASC) or descending (DESC). |
Example
{"sortKey": "EARNED_MEDIA_VALUE", "sortOrder": "ASC"}
CompetitorBrandOwnMetricsStatus
Description
Availability of the workspace's own-brand metrics for the requested window.
Values
| Enum Value | Description |
|---|---|
|
|
Own-brand metrics were computed. Null metric fields mean no data in this window (distinct from zero). |
|
|
Own-brand metrics could not be computed. The accompanying error explains whether to retry; metric fields are null. |
Example
"AVAILABLE"
CompetitorBrandStatsPeriod
Description
Aggregation window for Competitor Insights metrics.
Values
| Enum Value | Description |
|---|---|
|
|
Aggregate over the month containing the anchor date. |
|
|
Aggregate over the week containing the anchor date. |
Example
"MONTH"
ContentView
Description
A saved content (media deck) view for the current workspace. Use the returned id with items(presetId:) to fetch its items.
Fields
| Field Name | Description |
|---|---|
createdAt - DateTimeWithZone!
|
When the view was created. |
customAttributeConditions - JSON!
|
Custom-attribute conditions narrowing the filter set. |
filters - JSON!
|
Opaque filter blob defining which items belong to the view. |
group - ViewGroup
|
Group this view belongs to, or null when the view is ungrouped. Populated by moveContentViewToGroup. |
id - ID!
|
Unique identifier (FilterPreset UUID). Use this with items(presetId:). |
name - String!
|
Display name of the view. |
showReportingStats - Boolean!
|
Whether reporting stats are surfaced in the UI for this view. |
sort - JSON!
|
Sort directives applied when listing items via this view. |
updatedAt - DateTimeWithZone!
|
When the view was last updated. |
Example
{
"createdAt": "2024-12-31T18:00:00Z",
"customAttributeConditions": {},
"filters": {},
"group": ViewGroup,
"id": "eaa824b8-374f-5db8-bee2-51dfd8c3776c",
"name": "All Northwind Content",
"showReportingStats": true,
"sort": {},
"updatedAt": "2024-12-31T18:00:00Z"
}
ContentViewFilterInput
Description
Filter criteria for listing content views.
Fields
| Input Field | Description |
|---|---|
groupId - ID
|
When provided, returns only views belonging to this group. |
Example
{
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
CreateCollectionInput
Description
Input for the createCollection mutation.
Fields
| Input Field | Description |
|---|---|
name - String!
|
Display name for the new Collection. Must be unique within the workspace. |
Example
{"name": "xyz789"}
CreateCollectionPayload
Description
Autogenerated return type of CreateCollection.
Fields
| Field Name | Description |
|---|---|
collection - Collection
|
The newly created Collection. Null on validation failure. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"collection": Collection,
"userErrors": [UserError]
}
CreateContentViewInput
Description
Input for the createContentView mutation.
Fields
| Input Field | Description |
|---|---|
customAttributeConditions - [CustomAttributeConditionInput!]
|
Custom-attribute conditions to narrow the filter set. Default = [] |
filters - JSON!
|
Opaque filter blob defining which items belong to the view. |
name - String!
|
Display name for the new content view. |
showReportingStats - Boolean
|
Whether reporting stats should be surfaced. Defaults to true. Default = true |
sort - JSON
|
Sort directives applied when listing items via this view. Defaults to []. |
Example
{
"customAttributeConditions": [
CustomAttributeConditionInput
],
"filters": {},
"name": "abc123",
"showReportingStats": false,
"sort": {}
}
CreateContentViewPayload
Description
Autogenerated return type of CreateContentView.
Fields
| Field Name | Description |
|---|---|
contentView - ContentView
|
The newly created content view. Null on validation failure. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"contentView": ContentView,
"userErrors": [UserError]
}
CreateCreatorViewInput
Description
Input for the createCreatorView mutation.
Fields
| Input Field | Description |
|---|---|
customAttributeConditions - [CustomAttributeConditionInput!]
|
Custom-attribute conditions to narrow the filter set. Default = [] |
filters - JSON!
|
Opaque filter blob, stored and echoed back but NOT applied when reading the view: creators(presetId:) narrows ONLY by this view's customAttributeConditions and sort. Use customAttributeConditions to actually narrow which creators the view returns. Pass {} unless cloning an existing view verbatim. |
name - String!
|
Display name for the new creator view. |
showReportingStats - Boolean
|
Whether reporting stats should be surfaced. Defaults to true. Default = true |
sort - JSON
|
Sort directives applied when listing creators via this view. Defaults to []. |
Example
{
"customAttributeConditions": [
CustomAttributeConditionInput
],
"filters": {},
"name": "abc123",
"showReportingStats": false,
"sort": {}
}
CreateCreatorViewPayload
Description
Autogenerated return type of CreateCreatorView.
Fields
| Field Name | Description |
|---|---|
creatorView - CreatorView
|
The newly created creator view. Null on validation failure. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"creatorView": CreatorView,
"userErrors": [UserError]
}
CreateSocialProfileViewInput
Description
Input for the createSocialProfileView mutation.
Fields
| Input Field | Description |
|---|---|
customAttributeConditions - [CustomAttributeConditionInput!]
|
Custom-attribute conditions to narrow the filter set. Default = [] |
filters - JSON!
|
Opaque filter blob, stored and echoed back but NOT applied when reading the view: socialProfiles(presetId:) narrows ONLY by this view's customAttributeConditions and sort. Use customAttributeConditions to actually narrow which social profiles the view returns. Pass {} unless cloning an existing view verbatim. |
name - String!
|
Display name for the new social profile view. |
showReportingStats - Boolean
|
Whether reporting stats should be surfaced. Defaults to true. Default = true |
sort - JSON
|
Sort directives applied when listing social profiles via this view. Defaults to []. |
Example
{
"customAttributeConditions": [
CustomAttributeConditionInput
],
"filters": {},
"name": "xyz789",
"showReportingStats": true,
"sort": {}
}
CreateSocialProfileViewPayload
Description
Autogenerated return type of CreateSocialProfileView.
Fields
| Field Name | Description |
|---|---|
socialProfileView - SocialProfileView
|
The newly created social profile view. Null on validation failure. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"socialProfileView": SocialProfileView,
"userErrors": [UserError]
}
CreateViewGroupInput
Description
Input for the createViewGroup mutation.
Fields
| Input Field | Description |
|---|---|
name - String!
|
Display name for the new view group. Must be unique within the workspace. |
Example
{"name": "xyz789"}
CreateViewGroupPayload
Description
Autogenerated return type of CreateViewGroup.
Fields
| Field Name | Description |
|---|---|
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
viewGroup - ViewGroup
|
The newly created view group. Null on validation failure. |
Example
{
"userErrors": [UserError],
"viewGroup": ViewGroup
}
CreateWebhookSubscriptionInput
Description
Input for the createWebhookSubscription mutation.
Fields
| Input Field | Description |
|---|---|
eventTypes - [String!]
|
Event types to subscribe to. Defaults to [content_view.item_added], the only subscribable type in v1. Default = ["content_view.item_added"] |
metadata - JSON
|
Opaque JSON object echoed back verbatim as subscription_metadata on every delivery envelope — use it to carry your own reference IDs. Capped at 4 KB serialized. Pass an object, not a stringified blob. |
name - String!
|
Display name for the subscription. |
url - String!
|
HTTPS endpoint deliveries are POSTed to. Validated against SSRF ranges. |
viewIds - [ID!]
|
Content-view (FilterPreset) UUIDs whose newly-matching items trigger deliveries. REQUIRED (at least one, each owned by the workspace) when any subscribed event type is view-scoped — which is every subscribable type in v1 — and must be omitted for non-view event types (none subscribable yet). This is the View-filter-as-event-type model: v1 ships one event type (content_view.item_added), so you express every "event type" you want (verified mentions, usage-rights approved, high-EMV, etc.) as a Content View whose filters encode that condition, then point viewIds at it. See the domain README "Outbound Webhooks" section for copy-paste recipes. Default = [] |
Example
{
"eventTypes": ["xyz789"],
"metadata": {},
"name": "abc123",
"url": "xyz789",
"viewIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
]
}
CreateWebhookSubscriptionPayload
Description
Autogenerated return type of CreateWebhookSubscription.
Fields
| Field Name | Description |
|---|---|
secret - String
|
The plaintext signing secret (whsec_-prefixed). Returned ONLY here and from rotateWebhookSubscriptionSecret — store it now; it is never shown again. The whsec_ prefix is PART OF THE HMAC key; do not strip it when verifying X-Archive-Signature. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
webhookSubscription - WebhookSubscription
|
The newly created subscription. Null on failure. |
Example
{
"secret": "whsec_EXAMPLE_SECRET_SHOWN_ONCE_DO_NOT_USE",
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
Creator
Description
A creator (influencer) whose content is tracked in Archive.
Fields
| Field Name | Description |
|---|---|
customAttributes - JSON!
|
Custom metadata fields associated with the creator (for example CRM attributes). |
id - ID!
|
Unique identifier for the creator in Archive's system. |
socialProfiles - [SocialProfile!]!
|
Social media profiles linked to this creator across all platforms (for example Instagram, TikTok, YouTube). Returns an empty list if no profiles are linked. |
Example
{
"customAttributes": {
"age": null,
"emails": [],
"gender": "52e6750a-79ca-5f7e-9352-228c7b9cb18f",
"location": "Northwind HQ 0",
"full_name": null,
"phone_numbers": []
},
"id": "01f0f8f3-97dd-597c-8cc1-cf75eaabddb0",
"socialProfiles": [SocialProfile]
}
CreatorConnection
Description
Paginated list of creators.
Fields
| Field Name | Description |
|---|---|
edges - [CreatorEdge!]!
|
List of edges with cursors. |
nodes - [Creator!]!
|
List of creators. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [CreatorEdge],
"nodes": [Creator],
"pageInfo": PageInfo,
"totalCount": 5
}
CreatorEdge
CreatorFilterInput
Description
Filter criteria for searching creators.
Fields
| Input Field | Description |
|---|---|
campaignsIds - [ID!]
|
Filter to creators on the roster of any of the given campaign IDs (the IDs returned by campaigns). Multiple IDs OR together; an empty or omitted list leaves the result set unconstrained. IDs from another workspace match nothing. Default = [] |
locations - [LocationCanonicalInput!]
|
Filter creators by canonical location. Each entry ANDs its populated components (country/region/city); multiple entries OR together — useful for disambiguating same-named cities (e.g. Portland, Oregon vs. Portland, Maine). Canonical values come from the Geo normalization pipeline; omit a component to leave it unconstrained. |
Example
{
"campaignsIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"locations": [LocationCanonicalInput]
}
CreatorView
Description
A saved workspace Creator View for the current workspace. Use the returned id with creators(presetId:) to fetch this view's creator contents.
Fields
| Field Name | Description |
|---|---|
createdAt - DateTimeWithZone!
|
When the view was created. |
customAttributeConditions - JSON!
|
Custom-attribute conditions narrowing the filter set. |
filters - JSON!
|
Opaque filter blob, stored and echoed back but NOT applied when reading the view: creators(presetId:) narrows ONLY by this view's customAttributeConditions and sort. Use customAttributeConditions to filter which creators the view returns. |
group - ViewGroup
|
Group this view belongs to, or null when the view is ungrouped. Populated by moveCreatorViewToGroup. |
id - ID!
|
Unique identifier of this saved view. Use the returned id with creators(presetId:) to fetch the view's creators. |
name - String!
|
Display name of the view. |
showReportingStats - Boolean!
|
Whether reporting stats are surfaced in the UI for this view. |
sort - JSON!
|
Sort directives applied when listing creators via this view. |
updatedAt - DateTimeWithZone!
|
When the view was last updated. |
Example
{
"createdAt": "2024-12-31T15:00:00Z",
"customAttributeConditions": {},
"filters": {},
"group": ViewGroup,
"id": "860120e8-3849-56f8-b14e-dd6b2da0b2d9",
"name": "Top Priority Creators",
"showReportingStats": true,
"sort": {},
"updatedAt": "2024-12-31T15:00:00Z"
}
CreatorViewFilterInput
Description
Filter criteria for listing creator views.
Fields
| Input Field | Description |
|---|---|
groupId - ID
|
When provided, returns only views belonging to this group. |
Example
{
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
CustomAttributeConditionInput
Description
A single filter condition on a workspace-defined custom attribute. Multiple conditions are combined with AND.
Fields
| Input Field | Description |
|---|---|
field - String!
|
Key of the custom attribute to filter on, as returned by customAttributeSchemas (e.g. "sentiment"). |
operator - FilterOperator!
|
Comparison operator. The valid set depends on the attribute type — see FilterOperator. |
type - CustomAttributeType!
|
Type of the custom attribute, as returned by customAttributeSchemas. Determines the expected value shape and the valid operators. |
value - JSON
|
Comparison value; the shape depends on type: a string for text-like types, an option ID for single-selects, a number for NUMBER, an ISO 8601 string for dates, true/false for BOOLEAN, an array for multi-select and list types. BETWEEN takes { from, to }. Pass null for IS_EMPTY / IS_NOT_EMPTY. |
Example
{
"field": "xyz789",
"operator": "BETWEEN",
"type": "BOOLEAN",
"value": {}
}
CustomAttributeOption
Description
A selectable option for custom attributes with predefined choices.
Example
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"name": "xyz789"
}
CustomAttributeSchema
Description
Definition of a custom attribute field. Use options (when present) to map IDs to display names.
Fields
| Field Name | Description |
|---|---|
aiGenerated - Boolean!
|
True when this attribute's value is produced by an AI Filter. For AI-generated attributes, an item's aiFilterReasons entry with the matching key carries the model's explanation for the value. |
key - String!
|
Key used in the customAttributes object. |
name - String!
|
Human-readable display name. |
options - [CustomAttributeOption!]
|
Available options for select-type attributes. When present, customAttributes values are option IDs that map to these options. When null, values are stored directly (text, numbers, dates, etc.). |
type - CustomAttributeType!
|
Custom attribute field type. |
Example
{
"aiGenerated": true,
"key": "links",
"name": "Links",
"options": [CustomAttributeOption],
"type": "TEXT_LIST"
}
CustomAttributeSchemaEntity
Description
Entity type that custom attributes can be attached to.
Values
| Enum Value | Description |
|---|---|
|
|
Creator profile |
|
|
Item (archived social content) |
Example
"CREATOR"
CustomAttributeType
Description
Data type of a workspace-defined custom attribute. Determines the value shape and the valid filter operators for conditions on that attribute.
Values
| Enum Value | Description |
|---|---|
|
|
True/false value. |
|
|
List of true/false values. |
|
|
Calendar date value (ISO 8601, no time component). |
|
|
Date-and-time value (ISO 8601). |
|
|
List of date-and-time values (ISO 8601). |
|
|
List of calendar date values (ISO 8601, no time component). |
|
|
Email address value. |
|
|
Multiple choices from a predefined option list; the stored value is an array of option IDs. |
|
|
Multiple choices from a predefined option list; the stored value is an array of option IDs. Successor revision of MULTIPLE_SELECT with identical filtering behavior. |
|
|
Numeric value. |
|
|
List of numeric values. |
|
|
Phone number value. |
|
|
Structured shipping address. Not filterable — conditions with this type are rejected with a validation error; read the value from the record's customAttributes instead. |
|
|
Single choice from a predefined option list; the stored value is an option ID. |
|
|
Single choice from a predefined option list; the stored value is an option ID. Successor revision of SINGLE_SELECT_V2 with identical filtering behavior. |
|
|
Free-form text value. |
|
|
List of free-form text values. |
|
|
URL value. |
Example
"BOOLEAN"
DateTime
Description
Represents an ISO 8601-encoded date and time string. For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is represented as "2019-09-07T15:50:00Z"
Example
"2025-01-15T10:30:00Z"
DateTimeWithZone
Description
An ISO 8601-encoded date and time. Input must be UTC (e.g., YYYY-MM-DDTHH:MM:SSZ). Output is always formatted in UTC (ending with Z).
Example
"2025-01-15T10:30:00Z"
DateWithZone
Description
An ISO 8601-encoded date (YYYY-MM-DD). Input is parsed into the start of the day in the application timezone.
Example
"2025-06-01"
DeleteCollectionPayload
Description
Autogenerated return type of DeleteCollection.
Fields
| Field Name | Description |
|---|---|
deletedCollectionId - ID
|
The id of the deleted Collection. Null when the Collection did not exist. |
userErrors - [UserError!]!
|
List of user-facing errors. Populated only when deletion failed. |
Example
{
"deletedCollectionId": "e51b749b-1344-535f-a4c5-f878b69d143b",
"userErrors": [UserError]
}
DeleteContentViewPayload
Description
Autogenerated return type of DeleteContentView.
Fields
| Field Name | Description |
|---|---|
deletedContentViewId - ID
|
ID of the deleted content view. Null when no such view exists in the workspace. |
userErrors - [UserError!]!
|
List of user-facing errors. Populated only when deletion failed. |
Example
{
"deletedContentViewId": "148529d3-8e44-5bec-b39e-3127ba52cfef",
"userErrors": [UserError]
}
DeleteCreatorViewPayload
Description
Autogenerated return type of DeleteCreatorView.
Fields
| Field Name | Description |
|---|---|
deletedCreatorViewId - ID
|
ID of the deleted creator view. Null when no such view exists in the workspace. |
userErrors - [UserError!]!
|
List of user-facing errors. Populated only when deletion failed. |
Example
{
"deletedCreatorViewId": "8d6ddb76-8b81-5725-a762-2d2e18432dcf",
"userErrors": [UserError]
}
DeleteSocialProfileViewPayload
Description
Autogenerated return type of DeleteSocialProfileView.
Fields
| Field Name | Description |
|---|---|
deletedSocialProfileViewId - ID
|
ID of the deleted social profile view. Null when no such view exists in the workspace. |
userErrors - [UserError!]!
|
List of user-facing errors. Populated only when deletion failed. |
Example
{
"deletedSocialProfileViewId": "6f36548f-6fec-5322-96e7-8ae179b96c04",
"userErrors": [UserError]
}
DeleteViewGroupPayload
Description
Autogenerated return type of DeleteViewGroup.
Fields
| Field Name | Description |
|---|---|
deletedViewGroupId - ID
|
The id of the deleted view group. Null when the group did not exist. |
movedViewIds - [ID!]!
|
FilterPreset UUIDs whose group membership row was deleted as a side effect. Clients should invalidate any cached ContentView / SocialProfileView rows in this list. Empty on not-found or when the group had no member views. |
userErrors - [UserError!]!
|
List of user-facing errors. Populated only when deletion failed. |
Example
{
"deletedViewGroupId": "8e0f0ff1-8024-5af5-9506-49091f53a920",
"movedViewIds": ["eaa824b8-374f-5db8-bee2-51dfd8c3776c"],
"userErrors": [UserError]
}
DeleteWebhookSubscriptionPayload
Description
Autogenerated return type of DeleteWebhookSubscription.
Fields
| Field Name | Description |
|---|---|
deletedWebhookSubscriptionId - ID
|
ID of the deleted subscription. Null when no such subscription exists in the workspace. |
userErrors - [UserError!]!
|
List of user-facing errors. Populated only when deletion failed. |
Example
{
"deletedWebhookSubscriptionId": "eb418e28-bf9d-5350-b87b-446a6813bca4",
"userErrors": [UserError]
}
EnableWebhookSubscriptionPayload
Description
Autogenerated return type of EnableWebhookSubscription.
Fields
| Field Name | Description |
|---|---|
userErrors - [UserError!]!
|
List of user-facing errors. Empty on success. |
webhookSubscription - WebhookSubscription
|
The re-enabled subscription. Null on failure. |
Example
{
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
Engagement
Description
Snapshot of engagement metrics for a single piece of content.
Fields
| Field Name | Description |
|---|---|
comments - BigInt
|
Total number of comments. |
earnedMediaValue - BigInt
|
Estimated earned media value (EMV) in cents. |
impressions - BigInt
|
Number of views, plays, or estimated impressions. |
likes - BigInt
|
Total number of likes. |
linearViralityScore - ViralityScore!
|
Bucketed virality score. |
shares - BigInt
|
Number of shares. |
views - BigInt
|
Number of views. |
Example
{
"comments": "39",
"earnedMediaValue": "780",
"impressions": 9823456712,
"likes": "390",
"linearViralityScore": "HIGH",
"shares": 1312,
"views": "0"
}
EngagementHistoryConnection
Description
Paginated list of engagement history entries.
Fields
| Field Name | Description |
|---|---|
edges - [EngagementHistoryEntryEdge!]!
|
List of edges with cursors. |
nodes - [EngagementHistoryEntry!]!
|
List of engagement history entries. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [EngagementHistoryEntryEdge],
"nodes": [EngagementHistoryEntry],
"pageInfo": PageInfo,
"totalCount": 3
}
EngagementHistoryEntry
Description
A single historical snapshot of engagement metrics for a piece of content.
Fields
| Field Name | Description |
|---|---|
at - DateTime!
|
Timestamp when the engagement metrics were captured (UTC). |
comments - BigInt
|
Total number of comments. |
earnedMediaValue - BigInt
|
Estimated earned media value (EMV) in cents. |
followers - BigInt
|
Number of followers at the time of capture. |
impressions - BigInt
|
Number of views, plays, or estimated impressions. |
likes - BigInt
|
Total number of likes. |
linearViralityScore - ViralityScore!
|
Bucketed virality score based on engagement relative to follower count. |
shares - BigInt
|
Number of shares. |
views - BigInt
|
Number of views. |
Example
{
"at": "2025-01-01T00:00:00Z",
"comments": "10",
"earnedMediaValue": "200",
"followers": 9823456712,
"impressions": 9823456712,
"likes": "100",
"linearViralityScore": "HIGH",
"shares": "5",
"views": 9823456712
}
EngagementHistoryEntryEdge
Description
An edge in the engagement history entry connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - EngagementHistoryEntry!
|
The engagement history entry. |
Example
{
"cursor": "xyz789",
"node": EngagementHistoryEntry
}
EngagementHistoryFilterInput
Description
Filter criteria for engagement history entries.
Fields
| Input Field | Description |
|---|---|
capturedAt - FilterDateRangeInput
|
Filter by the date range when engagement metrics were captured. |
Example
{"capturedAt": FilterDateRangeInput}
FilterContractStatus
Description
Status of a contract request (usage rights, whitelisting, etc.).
Values
| Enum Value | Description |
|---|---|
|
|
Contract has been approved by the creator. |
|
|
Contract approval has expired. |
|
|
Contract request is queued for processing. |
|
|
Contract request was rejected by the creator. |
|
|
Contract has been requested but not yet responded to. |
Example
"APPROVED"
FilterDateRangeInput
Description
Inclusive date-time range. Omit a bound to leave that side open-ended.
Example
{
"from": "2025-01-15T10:30:00Z",
"to": "2025-01-15T10:30:00Z"
}
FilterEngagementField
Description
Engagement metric that an engagement range filter applies to.
Values
| Enum Value | Description |
|---|---|
|
|
Total number of comments. |
|
|
Estimated earned media value (EMV) in cents. |
|
|
Engagement rate: total engagements divided by the creator's follower count. |
|
|
Impressions rate: views, plays, or estimated impressions divided by the creator's follower count. |
|
|
Total number of likes. |
|
|
Number of views, plays, or estimated impressions. |
|
|
Total number of shares. |
Example
"COMMENT_COUNT"
FilterEngagementRangeInput
Description
Filters items whose value for a chosen engagement metric falls within an inclusive numeric range.
Fields
| Input Field | Description |
|---|---|
field - FilterEngagementField!
|
Engagement metric to filter on. |
range - FilterIntegerRangeInput!
|
Inclusive numeric range the metric value must fall within. |
Example
{
"field": "COMMENT_COUNT",
"range": FilterIntegerRangeInput
}
FilterImportType
Description
How an item was added to Archive.
Values
| Enum Value | Description |
|---|---|
|
|
Item was captured automatically (e.g. by social listening). |
|
|
Item was imported on request by a user. |
Example
"AUTOMATIC"
FilterIntegerRangeInput
FilterItemType
Description
Platform-specific content format of an item.
Values
| Enum Value | Description |
|---|---|
|
|
Instagram feed post. |
|
|
Instagram Reel. |
|
|
Instagram Story. |
|
|
TikTok video post. |
|
|
TikTok Story. |
|
|
YouTube video. |
|
|
YouTube Short. |
Example
"POST"
FilterOperator
Description
Comparison operator for a custom-attribute condition. The valid subset depends on the attribute type: text and single-select, number, date, boolean, or multi-value (multi-select and list types).
Values
| Enum Value | Description |
|---|---|
|
|
Inclusive range match for number and date types; value is { from, to }. |
|
|
For text-like types: substring match. For multi-select and list types: matches records containing ANY of the provided values (OR semantics). |
|
|
For multi-select custom attributes: matches records whose value array contains ALL of the provided values (AND semantics). |
|
|
For text-like types: excludes substring matches. For multi-select and list types: excludes records containing any of the provided values. |
|
|
Suffix match, for text-like types. |
|
|
Equality, for number and date types. |
|
|
Exact match. For text and single-select types (for selects, value is the option ID) and BOOLEAN (value is true/false). |
|
|
Matches records with no value set. Value is ignored — pass null. |
|
|
Exact non-match, for text and single-select types. |
|
|
Matches records with any value set. Value is ignored — pass null. |
|
|
Matches date values in a period relative to today; value is { relation: "past"|"this"|"next", period: "day"|"week"|"month"|"year" } (offset optional). |
|
|
Strictly less than, for number and date types. |
|
|
Less than or equal, for number and date types. |
|
|
Strictly greater than, for number and date types. |
|
|
Greater than or equal, for number and date types. |
|
|
Inequality, for number and date types. |
|
|
Prefix match, for text-like types. |
Example
"BETWEEN"
FilterPreset
Description
A saved filter preset configuration
Fields
| Field Name | Description |
|---|---|
accessor - FilterPresetAccessor!
|
Type of filter preset |
id - ID!
|
Unique identifier |
name - String!
|
Display name of the preset |
Example
{
"accessor": "COLLECTIONS",
"id": "148529d3-8e44-5bec-b39e-3127ba52cfef",
"name": "Legacy Reels Preset"
}
FilterPresetAccessor
Description
Filter preset accessor type
Values
| Enum Value | Description |
|---|---|
|
|
Collections filter preset |
|
|
Media deck filter preset |
Example
"COLLECTIONS"
FilterSuperSearchInput
Description
Input for performing visual or text-based super search across items.
Fields
| Input Field | Description |
|---|---|
fileName - String
|
Name of an uploaded file to use for visual similarity search. |
imageUrl - String
|
URL of an external image to use for visual similarity search. |
mode - FilterSuperSearchMode
|
Search mode determining how the query is processed. |
searchQuery - String
|
Text query to search captions, transcriptions, or semantic content. |
similarMediaContentId - ID
|
ID of a media content to find visually similar items. |
Example
{
"fileName": "xyz789",
"imageUrl": "xyz789",
"mode": "EMBEDDING_CONTENT",
"searchQuery": "abc123",
"similarMediaContentId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
FilterSuperSearchMode
Description
Mode to use when performing a super search query.
Values
| Enum Value | Description |
|---|---|
|
|
Search by visual/semantic similarity using content embeddings. |
|
|
Search by fuzzy matching against post captions. |
|
|
Search by fuzzy matching against video/audio transcriptions. |
Example
"EMBEDDING_CONTENT"
FilterTikTokWhitelistingEligibility
Description
Eligibility filter for items authored by TikTok creators reachable for whitelisting.
Values
| Enum Value | Description |
|---|---|
|
|
Match items authored by TikTok creators reachable via manual DM for whitelisting. |
Example
"ALL"
FilterViralityScore
Description
Categorized virality score used to filter items by how strongly the content outperforms its expected view-to-follower ratio. Higher categories indicate more viral content.
Values
| Enum Value | Description |
|---|---|
|
|
Content that significantly outperforms its expected reach. Typically corresponds to a view-to-follower ratio of 4.0 or higher. |
|
|
Content performing close to expected baseline relative to audience size. Typically corresponds to a view-to-follower ratio between ~1.0 and 2.0. |
|
|
Content performing above average relative to audience size. Typically corresponds to a view-to-follower ratio between ~2.0 and 4.0. |
|
|
Content performing below expected reach, with low relative visibility. Typically corresponds to a view-to-follower ratio below ~1.0. |
Example
"HIGH"
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
123.45
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
Image
Description
Image media content (for example single images or carousel frames).
Fields
| Field Name | Description |
|---|---|
deleted - Boolean!
|
True if the media content has been removed from the source platform. |
fileUrl - String
|
Direct URL to the underlying media file when Archive can serve it. |
height - Int
|
Height of the media content in pixels, when known. |
id - ID!
|
Unique identifier for the media content in Archive's system. |
mediaItemId - ID!
|
Identifier of the parent media item. Use this to group related contents (e.g., carousel frames) that belong to the same post. |
thumbnailUrl - String
|
URL of a preview thumbnail image for this media content, if available. |
type - MediaContentType!
|
Whether this media content is an IMAGE or a VIDEO. |
width - Int
|
Width of the media content in pixels, when known. |
Example
{
"deleted": false,
"fileUrl": "http://example.com/seeds/images-600x600/0001.jpg",
"height": 600,
"id": "1",
"mediaItemId": "70150764-391a-5058-a409-df18743603d5",
"thumbnailUrl": "http://example.com/seeds/images-600x600/0001.jpg",
"type": "IMAGE",
"width": 600
}
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
123
Integration
Description
A connected social account for the workspace. Each entry represents one row in Archive's integrations table — distinct from Workspace.mentions, which lists tracked @-mention terms. Multiple integrations may share the same handle (e.g. two TikTok accounts under one tag) and each gets a distinct id.
Fields
| Field Name | Description |
|---|---|
connectedAt - DateTimeWithZone!
|
Timestamp when the integration was first established (ISO 8601 UTC). |
handle - String!
|
Public-facing account handle for this integration (for example "support_testing"). Sourced from the associated mention tag. |
id - ID!
|
Stable unique identifier for this integration (UUID). Distinguishes multiple integrations that share the same handle. |
provider - Provider!
|
Platform on which this account is connected (for example INSTAGRAM, TIKTOK, YOUTUBE, or INTERNAL). |
status - IntegrationStatus!
|
Lifecycle state of the integration. CONNECTED = active and verified; DISCONNECTED = the account was removed or the integration failed; PENDING = setup in progress. |
Example
{
"connectedAt": "2025-01-15T10:30:00Z",
"handle": "xyz789",
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"provider": "INSTAGRAM",
"status": "CONNECTED"
}
IntegrationStatus
Description
Lifecycle status of a workspace integration (a connected social account).
Values
| Enum Value | Description |
|---|---|
|
|
The integration is active and verified — Archive can fetch content for this account. |
|
|
The integration has been removed by the user or has failed and is no longer active. Archive cannot fetch new content for this account until it is reconnected. |
|
|
The integration is being established — initial verification or onboarding has not completed yet. |
Example
"CONNECTED"
Item
Description
A single piece of social content archived in Archive.
Fields
| Field Name | Description |
|---|---|
aiFilterReasons - [AiFilterReason!]!
|
Explanations the AI Filters produced for this item's AI-generated custom attributes, one entry per AI-generated attribute the item has. Pair each entry to its value by key in customAttributes; customAttributeSchemas marks which keys are AI-generated via aiGenerated. Empty when the item has none. |
archivePublicUrl - String
|
Stable Archive permalink for this item. Unlike originalUrl, this URL keeps resolving after the source post is deleted or the creator account goes private. |
caption - String
|
Caption text of the content, when available. |
creator - Creator!
|
Creator who posted this content. |
currentEngagement - Engagement
|
Most recent engagement metrics (likes, comments, views, shares, EMV) and virality score for this item. |
customAttributes - JSON!
|
Custom metadata fields associated with the item. |
externalId - ID!
|
Platform-specific identifier for the content (e.g., Instagram post ID, TikTok video ID). |
hashtags - [String!]
|
List of hashtags used in the item’s caption or metadata. |
id - ID!
|
Unique identifier for the item in Archive's system. |
location - Location
|
Location associated with the content, if present. |
mediaItemId - ID!
|
Identifier of the parent media item. Use this to group related contents (e.g., carousel frames) that belong to the same post. |
mentions - [String!]
|
List of user mentions used in the item’s caption or metadata. |
originalUrl - String
|
Direct URL to the original content on the social platform. Returns null for content types without public URLs (e.g., Instagram Stories). |
provider - Provider!
|
Platform where the content exists (for example INSTAGRAM, TIKTOK, YOUTUBE, or INTERNAL). |
socialProfile - SocialProfile!
|
Social media profile on which this content was posted. |
takenAt - DateTime!
|
Timestamp when the content was originally published on the social platform (UTC). |
transcriptions - [Transcription!]!
|
Text transcriptions and subtitles generated for video content within this item. |
type - ItemType!
|
Type of archived content (for example POST, REEL, STORY or SHORT), depending on the platform. |
Example
{
"aiFilterReasons": [AiFilterReason],
"archivePublicUrl": "https://example.com/m/s/45c2aca7-5351-5774-8196-b9346e58a099/6ccefa76-e8ba-5ab0-9c60-e48a9e235a4a",
"caption": "Post #4 from Northwind Botanicals #northwindbotanicals #plantcare #growwithnorthwind @northwindbotanicals",
"creator": Creator,
"currentEngagement": Engagement,
"customAttributes": {
"sentiment": "positive",
"collections": ["6e485f10-8ffc-52be-8efa-962eef90a674"]
},
"externalId": "17841457891234567",
"hashtags": ["summerstyle", "sunscreen", "ugccampaign"],
"id": "63c311c4-32f0-5d8c-ac02-78b160f2290a",
"location": Location,
"mediaItemId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"mentions": ["archivelabs", "partner_brand"],
"originalUrl": "https://instagram.com/p/docs-item-29",
"provider": "INSTAGRAM",
"socialProfile": SocialProfile,
"takenAt": "2024-11-30T00:00:00Z",
"transcriptions": [Transcription],
"type": "REEL"
}
ItemConnection
Description
Paginated list of items.
Fields
| Field Name | Description |
|---|---|
edges - [ItemEdge!]!
|
List of edges with cursors. |
nodes - [Item!]!
|
List of items. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [ItemEdge],
"nodes": [Item],
"pageInfo": PageInfo,
"totalCount": 5
}
ItemEdge
ItemFilterInput
Description
Filter criteria for searching archived items.
Fields
| Input Field | Description |
|---|---|
accountNames - [String!]
|
Filter by social profile account names/handles. Default = [] |
campaignsIds - [ID!]
|
Filter to items associated with any of the given campaign IDs. Default = [] |
collectionsIds - [ID!]
|
Filter to items that belong to any of the given collection IDs in the current workspace. Default = [] |
contentTypes - [MediaContentType!]
|
Filter by media content type (IMAGE, VIDEO). |
creatorLocations - [LocationCanonicalInput!]
|
Filter by the creator's location. Format: an array of objects, each with optional country, region, city (canonical names from Archive's Geo normalization pipeline; case-sensitive exact match — e.g. "United States", "California", "Los Angeles"). Within a single entry, populated components are AND-ed together. Multiple entries OR together — useful for disambiguating same-named cities (e.g. Portland, Oregon vs. Portland, Maine). Omit a component to leave it unconstrained. Example: [{ country: "United States", region: "California" }, { city: "London" }] matches creators in California, USA OR in any city named "London". |
engagement - [FilterEngagementRangeInput!]
|
Filter by engagement metric ranges (likes, comments, views, etc.). |
followersCount - FilterIntegerRangeInput
|
Filter by social profile follower count range. |
ids - [ID!]
|
Filter to specific item IDs. Default = [] |
importType - FilterImportType
|
Filter by how the item was imported (manual or automatic). |
instagramWhitelistingStatus - [FilterContractStatus!]
|
Filter by Instagram whitelisting request status. |
itemTypes - [FilterItemType!]
|
Filter by item type (POST, REEL, STORY, TIKTOK, TIKTOK_STORY, YOUTUBE, YOUTUBE_SHORT). |
provider - Provider
|
Filter by source platform (INSTAGRAM, TIKTOK, YOUTUBE, INTERNAL). |
shopifyProductsIds - [String!]
|
Filter by associated Shopify product IDs. Default = [] |
socialProfileAccountTypes - [SocialProfileAccountType!]
|
Filter by the social profile's account type. Values currently reflect Instagram-only typing (Personal / Creator / Business); profiles on platforms without a comparable concept are excluded when this filter is supplied. Mirrors Influencer.account_type. OR semantics across multiple values; empty/omitted skips the filter. Default = [] |
socialProfileIds - [ID!]
|
Filter by social profile IDs. Default = [] |
sourcesIds - [ID!]
|
Filter by source IDs. Default = [] |
superSearch - FilterSuperSearchInput
|
Visual or semantic search parameters. |
tagsNames - [String!]
|
Filter by hashtag or mention tag names. Default = [] |
takenAt - FilterDateRangeInput
|
Filter by publication date range. |
tiktokSparkCodeStatus - [FilterContractStatus!]
|
Filter by TikTok Spark Code request status. |
tiktokWhitelistingEligibility - FilterTikTokWhitelistingEligibility
|
Filter to items authored by TikTok creators eligible for whitelisting. |
ugcLocations - [LocationCanonicalInput!]
|
Filter by the location tagged on the content itself (UGC location). Format: same as creatorLocations — array of objects with optional country, region, city (canonical, case-sensitive exact match). Within a single entry the populated components AND together; multiple entries OR together. Example: [{ country: "United Kingdom", city: "London" }] matches items whose tagged location resolves to London, UK. |
usageRightsStatus - [FilterContractStatus!]
|
Filter by usage rights request status. |
verified - [Boolean!]
|
Filter by social profile verification status. |
viralityScore - [FilterViralityScore!]
|
Filter by virality score categories. Default = [] |
Example
{
"accountNames": ["abc123"],
"campaignsIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"collectionsIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"contentTypes": ["IMAGE"],
"creatorLocations": [LocationCanonicalInput],
"engagement": [FilterEngagementRangeInput],
"followersCount": FilterIntegerRangeInput,
"ids": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"importType": "AUTOMATIC",
"instagramWhitelistingStatus": ["APPROVED"],
"itemTypes": ["POST"],
"provider": "INSTAGRAM",
"shopifyProductsIds": ["abc123"],
"socialProfileAccountTypes": ["BUSINESS"],
"socialProfileIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"sourcesIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"superSearch": FilterSuperSearchInput,
"tagsNames": ["abc123"],
"takenAt": FilterDateRangeInput,
"tiktokSparkCodeStatus": ["APPROVED"],
"tiktokWhitelistingEligibility": "ALL",
"ugcLocations": [LocationCanonicalInput],
"usageRightsStatus": ["APPROVED"],
"verified": [false],
"viralityScore": ["HIGH"]
}
ItemSortKey
Description
Field to use when ordering items in search results.
Values
| Enum Value | Description |
|---|---|
|
|
Sort by creator account name. |
|
|
Sort by total number of comments. |
|
|
Sort by earned media value (EMV). |
|
|
Sort by exponential virality score. |
|
|
Sort by number of followers on the posting account. |
|
|
Sort by total number of likes. |
|
|
Sort by linear virality score. |
|
|
Sort by the combined view/play count across platforms. |
|
|
Sort by number of shares. |
|
|
Sort by when the content was originally posted on the social platform. |
Example
"ACCOUNT_NAME"
ItemSortingInput
Description
Configuration for sorting returned items.
Fields
| Input Field | Description |
|---|---|
sortKey - ItemSortKey!
|
Which field to sort items by. |
sortOrder - SortOrder!
|
Whether to sort ascending (ASC) or descending (DESC). |
Example
{"sortKey": "ACCOUNT_NAME", "sortOrder": "ASC"}
ItemType
Description
Type of social content represented by this item on its source platform.
Values
| Enum Value | Description |
|---|---|
|
|
Standard feed post, such as a single image or carousel post on Instagram. |
|
|
Short-form vertical video published as a Reel or equivalent format. |
|
|
Short-form vertical video such as a YouTube Short or similar format. |
|
|
Ephemeral story content, typically available for a limited time. |
Example
"POST"
JSON
Description
Represents untyped JSON
Example
{}
Keyword
Description
A tracked keyword phrase used for YouTube (and other provider) content discovery in the workspace.
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique identifier for the keyword in Archive's system. |
name - String!
|
The exact phrase being tracked (for example "noodles worth loving"). Named name for consistency with Tag.name; backed by the keywords.value column. |
provider - Provider!
|
Platform on which this keyword is tracked (currently YOUTUBE; reserved for future providers). |
Example
{
"id": "1a484f5f-adbc-4932-8523-9b9bfd779b2b",
"name": "noodles worth loving",
"provider": "INSTAGRAM"
}
Location
Description
Structured location information attached to content or profiles.
Example
{
"city": "Santa Monica",
"country": "United States",
"formatted": "200 Santa Monica Pier, Santa Monica, California, United States",
"name": "Santa Monica Pier",
"state": "California"
}
LocationCanonicalInput
Description
Filter creators by canonical location components produced by the Geo normalization pipeline. Each populated component must match exactly (case-sensitive on the canonical value); omitted components are ignored.
Fields
| Input Field | Description |
|---|---|
city - String
|
Canonical city name (e.g. "Portland"). Matches creator.city_canonical exactly. |
country - String
|
Canonical country name (e.g. "United States"). Matches creator.country_canonical exactly. |
region - String
|
Canonical region/state name (e.g. "Oregon"). Matches creator.region_canonical exactly. |
Example
{
"city": "abc123",
"country": "abc123",
"region": "xyz789"
}
MediaContent
MediaContentType
Description
Underlying type of the media asset.
Values
| Enum Value | Description |
|---|---|
|
|
Static image content (for example photos, thumbnails, frames). |
|
|
Video content (for example Reels, TikToks, Stories, YouTube videos). |
Example
"IMAGE"
MoveCollectionToGroupPayload
Description
Autogenerated return type of MoveCollectionToGroup.
Fields
| Field Name | Description |
|---|---|
collection - Collection
|
The moved Collection, with the populated group field. Null when the Collection was not found or the move failed. |
userErrors - [UserError!]!
|
List of user-facing errors. Empty on success. |
Example
{
"collection": Collection,
"userErrors": [UserError]
}
MoveContentViewToGroupPayload
Description
Autogenerated return type of MoveContentViewToGroup.
Fields
| Field Name | Description |
|---|---|
contentView - ContentView
|
The moved Content View, with the populated group field. Null when the view was not found or the move failed. |
userErrors - [UserError!]!
|
List of user-facing errors. Empty on success. |
Example
{
"contentView": ContentView,
"userErrors": [UserError]
}
MoveCreatorViewToGroupPayload
Description
Autogenerated return type of MoveCreatorViewToGroup.
Fields
| Field Name | Description |
|---|---|
creatorView - CreatorView
|
The moved Creator View, with the populated group field. Null when the view was not found or the move failed. |
userErrors - [UserError!]!
|
List of user-facing errors. Empty on success. |
Example
{
"creatorView": CreatorView,
"userErrors": [UserError]
}
MoveSocialProfileViewToGroupPayload
Description
Autogenerated return type of MoveSocialProfileViewToGroup.
Fields
| Field Name | Description |
|---|---|
socialProfileView - SocialProfileView
|
The moved Social Profile View, with the populated group field. Null when the view was not found or the move failed. |
userErrors - [UserError!]!
|
List of user-facing errors. Empty on success. |
Example
{
"socialProfileView": SocialProfileView,
"userErrors": [UserError]
}
Operation
Description
Represents an asynchronous operation with its current status and progress.
Fields
| Field Name | Description |
|---|---|
completedAt - DateTimeWithZone
|
Timestamp when the operation finished processing. Null if still in progress. |
createdAt - DateTimeWithZone!
|
Timestamp when the operation was created. |
failedItemIds - [ID!]!
|
IDs of items that failed during processing. |
id - ID!
|
Unique identifier for the operation. |
operationType - String!
|
The type of operation being performed (e.g., refetch_engagement). |
pendingItemIds - [ID!]!
|
IDs of items that have not yet been processed. |
processed - Int!
|
Number of items that have been processed so far. |
status - OperationStatus!
|
Current processing status of the operation. |
succeededItemIds - [ID!]!
|
IDs of items that completed successfully. |
total - Int!
|
Total number of items to process in this operation. |
Example
{
"completedAt": "2025-01-15T10:30:00Z",
"createdAt": "2024-12-31T22:00:00Z",
"failedItemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"id": "aeb032f4-179f-549f-b83c-3db2c5b58a2d",
"operationType": "refetch_engagement",
"pendingItemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"processed": 1,
"status": "COMPLETED",
"succeededItemIds": ["3467594a-79c1-5fa4-8490-8a31646ff716"],
"total": 1
}
OperationConnection
Description
Paginated list of operation summaries.
Fields
| Field Name | Description |
|---|---|
edges - [OperationSummaryEdge!]!
|
List of edges with cursors. |
nodes - [OperationSummary!]!
|
List of operation summaries. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [OperationSummaryEdge],
"nodes": [OperationSummary],
"pageInfo": PageInfo,
"totalCount": 2
}
OperationStatus
Description
Current processing status of an operation.
Values
| Enum Value | Description |
|---|---|
|
|
All items in the operation have been processed successfully. |
|
|
All items in the operation have failed. |
|
|
The operation finished but some items failed while others succeeded. |
|
|
The operation is currently being processed. |
|
|
The operation has been created but processing has not yet started. |
Example
"COMPLETED"
OperationSummary
Description
Lightweight summary of an operation. Use the operation(id:) query for full details.
Fields
| Field Name | Description |
|---|---|
createdAt - DateTimeWithZone!
|
When the operation was created. |
id - ID!
|
Unique identifier of the operation. |
operationType - String!
|
The type of operation (e.g. refetch_engagement, update_custom_attributes). |
status - OperationStatus!
|
Current processing status of the operation. |
total - Int!
|
Total number of items in the operation. |
Example
{
"createdAt": "2024-12-31T23:00:00Z",
"id": "57d0f9ea-ba8a-59c5-8f7b-2aba9a54e7aa",
"operationType": "refetch_engagement",
"status": "PROCESSING",
"total": 1
}
OperationSummaryEdge
Description
An edge in the operation summary connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - OperationSummary!
|
The operation summary. |
Example
{
"cursor": "xyz789",
"node": OperationSummary
}
PageInfo
Description
Information about pagination in a connection.
Example
{
"endCursor": "Z2lkOi8vYXJjaGl2ZS9DYW1wYWlnbi8yMDI0LTEyLTI5VDAwOjAwOjAwLjAwMDAwMFp8NDIyZmFjNTgtNTU3Yy01Y2Q0LTg5ODYtODRhYzNkYjRiMTMz",
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": "xyz789"
}
Provider
Description
Platform or system from which content, profiles, or metadata originate.
Values
| Enum Value | Description |
|---|---|
|
|
Instagram platform integration, including posts, reels, stories, and profile data. |
|
|
Internal Archive-managed source used for synthetic or system-generated content. |
|
|
TikTok platform integration, including videos and creator profile data. |
|
|
YouTube platform integration, including Shorts, videos, thumbnails, and profile data. |
Example
"INSTAGRAM"
RedeliverWebhookDeliveryPayload
Description
Autogenerated return type of RedeliverWebhookDelivery.
Fields
| Field Name | Description |
|---|---|
userErrors - [UserError!]!
|
List of user-facing errors. Empty on success. |
webhookDelivery - WebhookDelivery
|
The re-enqueued delivery. Null on failure. |
Example
{
"userErrors": [UserError],
"webhookDelivery": WebhookDelivery
}
RefetchBulkPayload
Description
Autogenerated return type of RefetchBulk.
Fields
| Field Name | Description |
|---|---|
operationId - ID
|
Unique identifier of the background operation created to process the refresh. Null when no items were processable (all filtered or deduplicated). Use this ID to track operation progress. |
processedCount - Int
|
Number of items accepted and queued for engagement refresh. Credits are charged only for this count. |
skippedItemIds - [ID!]
|
IDs of items skipped because they are already enqueued in another active refresh operation for this workspace. Instagram stories are silently excluded and not listed here. |
userErrors - [UserError!]!
|
Errors that prevented the mutation from executing. Common error: insufficient credits. |
Example
{
"operationId": "046a8f4e-686e-5773-9374-eb91cfd0c54c",
"processedCount": 2,
"skippedItemIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
],
"userErrors": [UserError]
}
RemoveFromCollectionsPayload
Description
Autogenerated return type of RemoveFromCollections.
Fields
| Field Name | Description |
|---|---|
item - Item
|
The updated item. |
userErrors - [UserError!]!
|
List of errors that occurred. |
Example
{
"item": Item,
"userErrors": [UserError]
}
ReorderViewsInGroupPayload
Description
Autogenerated return type of ReorderViewsInGroup.
Fields
| Field Name | Description |
|---|---|
userErrors - [UserError!]!
|
List of user-facing errors. Empty on success. |
viewGroup - ViewGroup
|
The reordered ViewGroup. contentViews, socialProfileViews, and creatorViews reflect the new ordering in a single round-trip. Null when the group was not found or the reorder failed. |
Example
{
"userErrors": [UserError],
"viewGroup": ViewGroup
}
RotateWebhookSubscriptionSecretPayload
Description
Autogenerated return type of RotateWebhookSubscriptionSecret.
Fields
| Field Name | Description |
|---|---|
secret - String
|
The new plaintext signing secret (whsec_-prefixed). Returned ONLY here and from createWebhookSubscription — store it now; it is never shown again. During the 24h dual-sign overlap deliveries are signed with both the new and previous secrets (two v1= values in X-Archive-Signature), so a receiver accepting either verifies cuts over without dropping a delivery. The whsec_ prefix is PART OF THE HMAC key; do not strip it. |
userErrors - [UserError!]!
|
List of user-facing errors. Populated only when rotation failed. |
webhookSubscription - WebhookSubscription
|
The subscription after rotation. Null when not found. |
Example
{
"secret": "whsec_EXAMPLE_SECRET_SHOWN_ONCE_DO_NOT_USE",
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
SendWebhookTestEventPayload
Description
Autogenerated return type of SendWebhookTestEvent.
Fields
| Field Name | Description |
|---|---|
userErrors - [UserError!]!
|
List of user-facing errors. Populated when the subscription was not found or the ping was rate-limited — both surface on ["id"]. |
webhookDelivery - WebhookDelivery
|
The settled test delivery (status / lastResponseStatus / responseTimeMs). Null when the subscription is not found or the ping is rate-limited. The ping shares the outer envelope + signature with real events, so it validates transport + X-Archive-Signature verification end-to-end. Its data is { ping: true, subscription_id, sent_at } — NOT the content_view.item_added { item, view } shape — so do not point an item/view parser at a ping. |
Example
{
"userErrors": [UserError],
"webhookDelivery": WebhookDelivery
}
SocialProfile
Description
A social media profile connected to Archive (for example Instagram, TikTok, or YouTube).
Fields
| Field Name | Description |
|---|---|
accountName - String!
|
Username or handle of the social media account. |
avatar - String
|
URL of the account's profile picture, if available. |
creator - Creator
|
Creator associated with this social profile in the current workspace. Use this to get the unified creator ID for deduplicating creators across platforms. Returns null if the profile has no creator record in this workspace. |
email - String
|
Email address associated with the account, if available. |
followers - Int!
|
Number of followers on the social media account (when available). |
following - Int!
|
Number of accounts this profile is following (when available). |
fullName - String
|
Display name or full name shown on the social media profile. |
id - ID!
|
Unique identifier of the social profile in Archive's system. |
originalUrl - String!
|
Direct URL to the profile on the social platform (e.g., https://instagram.com/account_name). |
phoneNumbers - [String!]
|
Phone numbers associated with the account, when present. |
private - Boolean!
|
Whether the social media account is currently set to private. |
proAccount - Boolean!
|
Whether the account is marked as a professional or business account on the platform. |
provider - Provider!
|
Platform where the social profile exists (for example INSTAGRAM, TIKTOK, YOUTUBE, or INTERNAL). |
verified - Boolean!
|
Whether the account has a verified/badge status on the platform. |
Example
{
"accountName": "northwind_creator_0",
"avatar": "xyz789",
"creator": Creator,
"email": "[email protected]",
"followers": 10000,
"following": 0,
"fullName": "Alex Rivera",
"id": "1915685",
"originalUrl": "https://instagram.com/northwind_creator_0",
"phoneNumbers": ["+1-424-555-0134"],
"private": true,
"proAccount": true,
"provider": "INSTAGRAM",
"verified": false
}
SocialProfileAccountType
Description
Account type of the social profile attached to an item. Values currently reflect Instagram's account_type taxonomy only — TikTok and YouTube profiles do not expose an equivalent classification, so filtering by these values implicitly scopes the result set to Instagram items. The enum will grow if/when other platforms introduce comparable typing.
Values
| Enum Value | Description |
|---|---|
|
|
Instagram Business account (business features and insights enabled). |
|
|
Instagram Creator account (creator features enabled, distinct from Business). |
|
|
Personal Instagram account (consumer profile, no business/creator features). |
Example
"BUSINESS"
SocialProfileConnection
Description
Paginated list of social profiles.
Fields
| Field Name | Description |
|---|---|
edges - [SocialProfileEdge!]!
|
List of edges with cursors. |
nodes - [SocialProfile!]!
|
List of social profiles. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [SocialProfileEdge],
"nodes": [SocialProfile],
"pageInfo": PageInfo,
"totalCount": 10
}
SocialProfileEdge
Description
An edge in the social profile connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - SocialProfile!
|
The social profile. |
Example
{
"cursor": "abc123",
"node": SocialProfile
}
SocialProfileFilterInput
Description
Filter criteria for listing social profiles.
Fields
| Input Field | Description |
|---|---|
platform - Provider
|
Restrict results to a single social platform (INSTAGRAM, TIKTOK, YOUTUBE, INTERNAL). Maps to the workspace social-profile listing platform filter. |
Example
{"platform": "INSTAGRAM"}
SocialProfileView
Description
A saved Social Profile view for the current workspace. Use the returned id with socialProfiles(presetId:) to fetch this view's social profile contents.
Fields
| Field Name | Description |
|---|---|
createdAt - DateTimeWithZone!
|
When the view was created. |
customAttributeConditions - JSON!
|
Custom-attribute conditions narrowing the filter set. |
filters - JSON!
|
Opaque filter blob, stored and echoed back but NOT applied when reading the view: socialProfiles(presetId:) narrows ONLY by this view's customAttributeConditions and sort. Use customAttributeConditions to filter which social profiles the view returns. |
group - ViewGroup
|
Group this view belongs to, or null when the view is ungrouped. Populated by moveSocialProfileViewToGroup. |
id - ID!
|
Unique identifier of this saved view. Use the returned id with socialProfiles(presetId:) to fetch the view's social profiles. |
name - String!
|
Display name of the view. |
showReportingStats - Boolean!
|
Whether reporting stats are surfaced in the UI for this view. |
sort - JSON!
|
Sort directives applied when listing social profiles via this view. |
updatedAt - DateTimeWithZone!
|
When the view was last updated. |
Example
{
"createdAt": "2024-12-31T19:00:00Z",
"customAttributeConditions": {},
"filters": {"platform": "instagram"},
"group": ViewGroup,
"id": "da1a2150-f024-5e82-ac3f-14bdea821079",
"name": "Verified Instagram Creators",
"showReportingStats": true,
"sort": {},
"updatedAt": "2024-12-31T19:00:00Z"
}
SocialProfileViewFilterInput
Description
Filter criteria for listing social profile views.
Fields
| Input Field | Description |
|---|---|
groupId - ID
|
When provided, returns only views belonging to this group. |
Example
{
"groupId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
SortOrder
Description
Direction to apply when sorting items.
Values
| Enum Value | Description |
|---|---|
|
|
Sort in ascending order (for example oldest date or smallest number first). |
|
|
Sort in descending order (for example newest date or largest number first). |
Example
"ASC"
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"xyz789"
Tag
Description
A hashtag or mention tag associated with social content.
Example
{
"id": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63",
"name": "summerstyle",
"provider": "INSTAGRAM",
"type": "HASHTAG"
}
TagType
Description
Category of tag based on how it appears in social content.
Values
| Enum Value | Description |
|---|---|
|
|
Hashtag tag (e.g. #archive) |
|
|
User mention tag (e.g. @archive) |
Example
"HASHTAG"
Transcription
Description
Text transcription generated for a piece of media content.
Example
{
"mediaContentId": "2",
"transcript": "Welcome to Northwind Botanicals — plant care tips, take 1."
}
UpdateCollectionInput
Description
Input for the updateCollection mutation.
Fields
| Input Field | Description |
|---|---|
name - String!
|
New name for the Collection. Must be unique within the workspace. |
Example
{"name": "abc123"}
UpdateCollectionPayload
Description
Autogenerated return type of UpdateCollection.
Fields
| Field Name | Description |
|---|---|
collection - Collection
|
The updated Collection. Null on validation failure or when not found. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"collection": Collection,
"userErrors": [UserError]
}
UpdateContentViewInput
Description
Partial-update input for the updateContentView mutation. Only provided fields are updated; omitted fields are left unchanged.
Fields
| Input Field | Description |
|---|---|
customAttributeConditions - [CustomAttributeConditionInput!]
|
Custom-attribute conditions. When provided, replaces the existing list wholesale. An empty array clears all conditions. |
filters - JSON
|
Opaque filter blob. When provided, replaces the existing filter blob wholesale (no element-level merge). |
name - String
|
Display name. When provided, replaces the existing name. |
showReportingStats - Boolean
|
Whether reporting stats should be surfaced. When provided, replaces the existing flag. |
sort - JSON
|
Sort directives. When provided, replaces the existing sort wholesale. |
Example
{
"customAttributeConditions": [
CustomAttributeConditionInput
],
"filters": {},
"name": "abc123",
"showReportingStats": false,
"sort": {}
}
UpdateContentViewPayload
Description
Autogenerated return type of UpdateContentView.
Fields
| Field Name | Description |
|---|---|
contentView - ContentView
|
The updated content view. Null on validation failure or when the view was not found. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"contentView": ContentView,
"userErrors": [UserError]
}
UpdateCreatorViewInput
Description
Partial-update input for the updateCreatorView mutation. Only provided fields are updated; omitted fields are left unchanged.
Fields
| Input Field | Description |
|---|---|
customAttributeConditions - [CustomAttributeConditionInput!]
|
Custom-attribute conditions. When provided, replaces the existing list wholesale. An empty array clears all conditions. |
filters - JSON
|
Opaque filter blob, stored and echoed back but NOT applied when reading the view: creators(presetId:) narrows ONLY by this view's customAttributeConditions and sort. Use customAttributeConditions to actually narrow which creators the view returns. When provided, replaces the existing filter blob wholesale (no element-level merge). |
name - String
|
Display name. When provided, replaces the existing name. |
showReportingStats - Boolean
|
Whether reporting stats should be surfaced. When provided, replaces the existing flag. |
sort - JSON
|
Sort directives. When provided, replaces the existing sort wholesale. |
Example
{
"customAttributeConditions": [
CustomAttributeConditionInput
],
"filters": {},
"name": "xyz789",
"showReportingStats": false,
"sort": {}
}
UpdateCreatorViewPayload
Description
Autogenerated return type of UpdateCreatorView.
Fields
| Field Name | Description |
|---|---|
creatorView - CreatorView
|
The updated creator view. Null on validation failure or when the view was not found. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"creatorView": CreatorView,
"userErrors": [UserError]
}
UpdateSocialProfileViewInput
Description
Partial-update input for the updateSocialProfileView mutation. Only provided fields are updated; omitted fields are left unchanged.
Fields
| Input Field | Description |
|---|---|
customAttributeConditions - [CustomAttributeConditionInput!]
|
Custom-attribute conditions. When provided, replaces the existing list wholesale. An empty array clears all conditions. |
filters - JSON
|
Opaque filter blob, stored and echoed back but NOT applied when reading the view: socialProfiles(presetId:) narrows ONLY by this view's customAttributeConditions and sort. Use customAttributeConditions to actually narrow which social profiles the view returns. When provided, replaces the existing filter blob wholesale (no element-level merge). |
name - String
|
Display name. When provided, replaces the existing name. |
showReportingStats - Boolean
|
Whether reporting stats should be surfaced. When provided, replaces the existing flag. |
sort - JSON
|
Sort directives. When provided, replaces the existing sort wholesale. |
Example
{
"customAttributeConditions": [
CustomAttributeConditionInput
],
"filters": {},
"name": "abc123",
"showReportingStats": false,
"sort": {}
}
UpdateSocialProfileViewPayload
Description
Autogenerated return type of UpdateSocialProfileView.
Fields
| Field Name | Description |
|---|---|
socialProfileView - SocialProfileView
|
The updated social profile view. Null on validation failure or when the view was not found. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{
"socialProfileView": SocialProfileView,
"userErrors": [UserError]
}
UpdateViewGroupInput
Description
Input for the updateViewGroup mutation.
Fields
| Input Field | Description |
|---|---|
name - String!
|
New display name for the view group. Must be unique within the workspace. |
Example
{"name": "xyz789"}
UpdateViewGroupPayload
Description
Autogenerated return type of UpdateViewGroup.
Fields
| Field Name | Description |
|---|---|
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
viewGroup - ViewGroup
|
The renamed view group. Null on not-found or validation failure. |
Example
{
"userErrors": [UserError],
"viewGroup": ViewGroup
}
UpdateWebhookSubscriptionInput
Description
Partial-update input for updateWebhookSubscription. Only provided fields are updated; omitted fields are left unchanged.
Fields
| Input Field | Description |
|---|---|
eventTypes - [String!]
|
Event types. When provided, replaces the existing list. |
metadata - JSON
|
Opaque metadata. When provided, replaces it (max 4KB serialized). |
name - String
|
Display name. When provided, replaces the existing name. |
status - WebhookSubscriptionStatus
|
Pause (DISABLED_BY_USER) or resume (ACTIVE) the subscription. DISABLED_BY_FAILURES is system-owned and rejected. |
url - String
|
HTTPS endpoint. When provided, re-validated against SSRF ranges. |
viewIds - [ID!]
|
Content-view UUIDs. When provided, replaces the list (re-checked for ownership and the tier cap). Required while any subscribed event type is view-scoped (every v1 type); must be empty for non-view types. Changing eventTypes re-checks this against the resulting combination. |
Example
{
"eventTypes": ["xyz789"],
"metadata": {},
"name": "abc123",
"status": "ACTIVE",
"url": "abc123",
"viewIds": [
"7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
]
}
UpdateWebhookSubscriptionPayload
Description
Autogenerated return type of UpdateWebhookSubscription.
Fields
| Field Name | Description |
|---|---|
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
webhookSubscription - WebhookSubscription
|
The updated subscription. Null on failure or when not found. |
Example
{
"userErrors": [UserError],
"webhookSubscription": WebhookSubscription
}
UploadItemFromUrlInput
Description
Input for the uploadItemFromUrl mutation.
Fields
| Input Field | Description |
|---|---|
url - String!
|
Public URL of the UGC post (Instagram / TikTok / YouTube). |
Example
{"url": "abc123"}
UploadItemFromUrlPayload
Description
Autogenerated return type of UploadItemFromUrl.
Fields
| Field Name | Description |
|---|---|
success - Boolean!
|
True when the URL was accepted (audit rows created and SocialBridge enqueued). False on validation failure. |
userErrors - [UserError!]!
|
List of user-facing validation errors. Empty on success. |
Example
{"success": true, "userErrors": [UserError]}
UrlLookupResult
Description
Result of looking up a single input string against the current workspace.
Fields
| Field Name | Description |
|---|---|
itemId - ID
|
The matching shop item UUID, or null if no match was found. |
status - UrlLookupStatus!
|
Outcome of the lookup: FOUND, NOT_FOUND, or INVALID_URL. |
url - String!
|
The original input string that was looked up. |
Example
{
"itemId": "63c311c4-32f0-5d8c-ac02-78b160f2290a",
"status": "FOUND",
"url": "https://www.instagram.com/p/docs-item-0/"
}
UrlLookupStatus
Description
Status of a URL lookup operation against the current workspace.
Values
| Enum Value | Description |
|---|---|
|
|
Item found in the current workspace matching the provided public HTTP(S) URL. |
|
|
The input was malformed, used a non-HTTP(S) scheme, or targeted a private/reserved host. |
|
|
The input was a valid public HTTP(S) URL, but no matching item exists in the current workspace. |
Example
"FOUND"
UserError
Video
Description
Video media content associated with an item.
Fields
| Field Name | Description |
|---|---|
deleted - Boolean!
|
True if the media content has been removed from the source platform. |
fileUrl - String
|
Direct URL to the underlying media file when Archive can serve it. |
height - Int
|
Height of the media content in pixels, when known. |
id - ID!
|
Unique identifier for the media content in Archive's system. |
mediaItemId - ID!
|
Identifier of the parent media item. Use this to group related contents (e.g., carousel frames) that belong to the same post. |
thumbnailUrl - String
|
URL of a preview thumbnail image for this media content, if available. |
type - MediaContentType!
|
Whether this media content is an IMAGE or a VIDEO. |
videoDuration - Int
|
Duration of the video in seconds, when available. |
width - Int
|
Width of the media content in pixels, when known. |
Example
{
"deleted": false,
"fileUrl": "http://example.com/seeds/images-600x600/0002.jpg",
"height": 123,
"id": "2",
"mediaItemId": "710e5589-be6b-5fc5-9f9f-f4e4d6d0f076",
"thumbnailUrl": "http://example.com/seeds/images-600x600/0002.jpg",
"type": "VIDEO",
"videoDuration": 10,
"width": 987
}
ViewGroup
Description
A user-created group of saved views (Content Views, Social Profile Views, Creator Views, Collections) for the current workspace.
Fields
| Field Name | Description |
|---|---|
collections - [Collection!]!
|
Collections that belong to this group, ordered by their position within the group. |
contentViews - [ContentView!]!
|
Content Views that belong to this group, ordered by their position within the group. |
createdAt - DateTimeWithZone!
|
When the group was created. |
creatorViews - [CreatorView!]!
|
Creator Views that belong to this group, ordered by their position within the group. |
id - ID!
|
Unique identifier. |
name - String!
|
Display name of the group. |
socialProfileViews - [SocialProfileView!]!
|
Social Profile Views that belong to this group, ordered by their position within the group. |
updatedAt - DateTimeWithZone!
|
When the group was last updated. |
Example
{
"collections": [Collection],
"contentViews": [ContentView],
"createdAt": "2024-12-31T17:00:00Z",
"creatorViews": [CreatorView],
"id": "2e231afc-0359-5154-ba16-4915a7801f73",
"name": "Campaign Shortlists",
"socialProfileViews": [SocialProfileView],
"updatedAt": "2024-12-31T17:00:00Z"
}
ViralityScore
Description
Categorized virality score representing how strongly a piece of content outperforms its expected view-to-follower ratio. Higher categories indicate more viral content.
Values
| Enum Value | Description |
|---|---|
|
|
Content that significantly outperforms its expected reach. Typically corresponds to a view-to-follower ratio of 4.0 or higher. |
|
|
Content performing close to expected baseline relative to audience size. Typically corresponds to a view-to-follower ratio between ~1.0 and 2.0. |
|
|
Content performing above average relative to audience size. Typically corresponds to a view-to-follower ratio between ~2.0 and 4.0. |
|
|
Content performing below expected reach, with low relative visibility. Typically corresponds to a view-to-follower ratio below ~1.0. |
Example
"HIGH"
WebhookDelivery
Description
One delivery attempt lifecycle for a (webhook event, subscription) pair. Surfaces the dead-letter / observability state for a subscription.
Fields
| Field Name | Description |
|---|---|
attemptCount - Int!
|
Lifetime number of attempts made (also the backoff-ladder index). The ladder is 8 attempts total — one immediate try plus backoffs at 1m/5m/30m/2h/6h/12h/24h (±20% jitter), spanning ≈44.6h nominal (up to ~53.5h with max jitter). |
createdAt - DateTimeWithZone!
|
When the delivery was created. |
eventId - ID!
|
ID of the webhook event being delivered. |
id - ID!
|
Unique identifier of the delivery. |
lastAttemptAt - DateTimeWithZone
|
When the most recent attempt was made. Null before the first attempt. |
lastError - String
|
Error message from the most recent failed attempt. Null on success. |
lastResponseStatus - Int
|
HTTP status of the most recent attempt. Null for transport-level failures. |
nextAttemptAt - DateTimeWithZone
|
When the next attempt is scheduled. Null when terminal (exhausted or dropped, no retry queued). Pushed to the cooldown while the endpoint host circuit breaker is open (deferred, not failed). |
responseTimeMs - Int
|
Round-trip time of the most recent attempt in milliseconds. |
status - WebhookDeliveryStatus!
|
Current status of this delivery attempt. FAILED is retried on the backoff ladder until terminal (then redeliverable); DROPPED is backpressure/rate-limit and is never retried (recover via webhookEvents). |
subscriptionId - ID!
|
ID of the subscription this delivery belongs to. |
updatedAt - DateTimeWithZone!
|
When the delivery was last updated. |
Example
{
"attemptCount": 8,
"createdAt": "2025-01-15T10:30:00Z",
"eventId": "0f8e0d63-409e-5fd1-88bd-2febbe05fa53",
"id": "dbe6be29-b520-5cdc-81a3-b7a0d5d8f62e",
"lastAttemptAt": "2025-01-15T10:30:00Z",
"lastError": "HTTP 500 from endpoint",
"lastResponseStatus": 200,
"nextAttemptAt": "2025-01-15T10:30:00Z",
"responseTimeMs": 87,
"status": "PENDING",
"subscriptionId": "41662e09-10c4-52e4-844a-62ddedb38f11",
"updatedAt": "2025-01-15T10:30:00Z"
}
WebhookDeliveryConnection
Description
Paginated list of webhook deliveries.
Fields
| Field Name | Description |
|---|---|
edges - [WebhookDeliveryEdge!]!
|
List of edges with cursors. |
nodes - [WebhookDelivery!]!
|
List of webhook deliveries. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [WebhookDeliveryEdge],
"nodes": [WebhookDelivery],
"pageInfo": PageInfo,
"totalCount": 1
}
WebhookDeliveryEdge
Description
An edge in the webhook delivery connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - WebhookDelivery!
|
The webhook delivery. |
Example
{
"cursor": "abc123",
"node": WebhookDelivery
}
WebhookDeliveryFilterInput
Description
Filter criteria for paginating webhook deliveries (the dead-letter surface).
Fields
| Input Field | Description |
|---|---|
status - WebhookDeliveryStatus
|
Only return deliveries in this status. Default = null |
subscriptionId - ID
|
Only return deliveries for this subscription. A foreign id yields an empty page. Default = null |
Example
{
"status": "DELIVERING",
"subscriptionId": "7d7f1c9c-6c12-4a4e-bd52-1e94f32c7f63"
}
WebhookDeliveryStatus
Description
Lifecycle status of a single webhook delivery attempt.
Values
| Enum Value | Description |
|---|---|
|
|
Currently being delivered (claimed for one attempt). |
|
|
Dropped without delivery by backpressure (backlog cap reached) or rate-limiting (per-subscription events/sec bucket exhausted). Not retried; the business event remains in the outbox (webhookEvents). Never used for auto-disable. |
|
|
The attempt failed. Terminal failures are redeliverable. |
|
|
Queued or scheduled for a (re)attempt. |
|
|
Delivered successfully (endpoint returned a 2xx). |
Example
"DELIVERING"
WebhookEvent
Description
An immutable outbox row for one webhook-worthy occurrence in the workspace (the Stripe /v1/events pattern). Its id doubles as an idempotency key.
Fields
| Field Name | Description |
|---|---|
createdAt - DateTimeWithZone!
|
When the event was recorded. |
eventType - String!
|
The event type. content_view.item_added is the only subscribable type in v1; system types (subscription.disabled, subscription.deliveries_dropped) also appear in this outbox but are never subscribable. Query the outbox to reconcile missed or dropped deliveries. |
eventVersion - String!
|
Schema version of the event payload (currently "1.0"). |
id - ID!
|
Unique identifier of the event (also the idempotency key). |
payload - JSON!
|
The event payload as delivered to subscribers. |
Example
{
"createdAt": "2025-01-15T10:30:00Z",
"eventType": "content_view.item_added",
"eventVersion": "1.0",
"id": "0f8e0d63-409e-5fd1-88bd-2febbe05fa53",
"payload": {
"item": {"id": "12dedc45-e264-5d57-91f7-4d9aa7a05849"},
"view": {"id": "eaa824b8-374f-5db8-bee2-51dfd8c3776c"}
}
}
WebhookEventConnection
Description
Paginated list of webhook events.
Fields
| Field Name | Description |
|---|---|
edges - [WebhookEventEdge!]!
|
List of edges with cursors. |
nodes - [WebhookEvent!]!
|
List of webhook events. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [WebhookEventEdge],
"nodes": [WebhookEvent],
"pageInfo": PageInfo,
"totalCount": 2
}
WebhookEventEdge
Description
An edge in the webhook event connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - WebhookEvent!
|
The webhook event. |
Example
{
"cursor": "abc123",
"node": WebhookEvent
}
WebhookEventFilterInput
Description
Filter criteria for paginating webhook events (the outbox).
Fields
| Input Field | Description |
|---|---|
eventTypes - [String!]
|
Only return events whose type is in this list. Default = null |
Example
{"eventTypes": ["xyz789"]}
WebhookSubscription
Description
An outbound-webhook subscription for the current workspace. The signing secret is returned only from createWebhookSubscription / rotateWebhookSubscriptionSecret and is never exposed on this type.
Fields
| Field Name | Description |
|---|---|
consecutiveFailures - Int!
|
Consecutive failed deliveries since the last success — a health signal; resets to 0 on the next successful delivery. |
createdAt - DateTimeWithZone!
|
When the subscription was created. |
disabledAt - DateTimeWithZone
|
When the subscription was disabled by failures. Null while active/paused. |
eventTypes - [String!]!
|
Event types this subscription matches (e.g. content_view.item_added). |
id - ID!
|
Unique identifier of the subscription. |
lastSuccessAt - DateTimeWithZone
|
When the most recent successful delivery occurred. Null if none yet. |
metadata - JSON!
|
Opaque JSON object echoed back verbatim as subscription_metadata on every delivery envelope. |
name - String!
|
Display name of the subscription. |
status - WebhookSubscriptionStatus!
|
Current lifecycle status. ACTIVE delivers; DISABLED_BY_USER is a manual pause; DISABLED_BY_FAILURES is a system auto-disable triggered by a 410 Gone, 20 consecutive exhausted deliveries, or 3 days of continuous failure — re-enable via enableWebhookSubscription. |
updatedAt - DateTimeWithZone!
|
When the subscription was last updated. |
url - String!
|
HTTPS endpoint deliveries are POSTed to. |
viewIds - [ID!]!
|
Content-view (FilterPreset) UUIDs whose newly-matching items trigger deliveries (the View-filter-as-event-type model). |
Example
{
"consecutiveFailures": 0,
"createdAt": "2025-01-15T10:30:00Z",
"disabledAt": "2024-12-31T13:00:00Z",
"eventTypes": ["content_view.item_added"],
"id": "b24c9093-72a3-504d-b97c-cb023efca979",
"lastSuccessAt": "2025-01-15T10:30:00Z",
"metadata": {"team": "fulfilment"},
"name": "Fulfilment webhook",
"status": "ACTIVE",
"updatedAt": "2025-01-15T10:30:00Z",
"url": "https://hooks.northwind-botanicals.example/archive/new-content",
"viewIds": ["eaa824b8-374f-5db8-bee2-51dfd8c3776c"]
}
WebhookSubscriptionConnection
Description
Paginated list of webhook subscriptions.
Fields
| Field Name | Description |
|---|---|
edges - [WebhookSubscriptionEdge!]!
|
List of edges with cursors. |
nodes - [WebhookSubscription!]!
|
List of webhook subscriptions. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [WebhookSubscriptionEdge],
"nodes": [WebhookSubscription],
"pageInfo": PageInfo,
"totalCount": 2
}
WebhookSubscriptionEdge
Description
An edge in the webhook subscription connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - WebhookSubscription!
|
The webhook subscription. |
Example
{
"cursor": "Z2lkOi8vYXJjaGl2ZS9XZWJob29rU3Vic2NyaXB0aW9uLzIwMjQtMTItMzFUMTM6MDA6MDAuMDAwMDAwWnw0MTY2MmUwOS0xMGM0LTUyZTQtODQ0YS02MmRkZWRiMzhmMTE=",
"node": WebhookSubscription
}
WebhookSubscriptionStatus
Description
Lifecycle status of a webhook subscription.
Values
| Enum Value | Description |
|---|---|
|
|
The subscription is active and receives matching events. |
|
|
The subscription was disabled by the system after sustained delivery failures (a 410 Gone, 20 consecutive exhausted deliveries, or 3 days of continuous failure). System-owned — re-enable via the enableWebhookSubscription mutation. |
|
|
The subscription was paused by the workspace and delivers nothing until re-enabled. |
Example
"ACTIVE"
Workspace
Description
A workspace represents a single brand or account within Archive.
Fields
| Field Name | Description |
|---|---|
hashtags - [Tag!]
|
Hashtags tracked for this workspace. |
id - ID!
|
Unique identifier for the workspace (UUID format). |
integrations - [Integration!]!
|
Connected social accounts for this workspace. Distinct from mentions — that field lists tracked terms (the @-handles Archive monitors); this field lists connected accounts (one entry per row in the integrations table). Multiple integrations may share the same handle, and each entry surfaces its own status. Includes disconnected and failed integrations so customers can detect broken connections. |
keywords - [Keyword!]
|
Keywords tracked for this workspace (primarily YouTube). Distinct from hashtags and mentions, which surface Instagram/TikTok-style tags. |
mentions - [Tag!]
|
User mentions tracked for this workspace. |
name - String!
|
Human-readable name of the workspace. |
Example
{
"hashtags": [Tag],
"id": "6ccefa76-e8ba-5ab0-9c60-e48a9e235a4a",
"integrations": [Integration],
"keywords": [Keyword],
"mentions": [Tag],
"name": "Northwind Botanicals"
}
WorkspaceConnection
Description
Paginated list of workspaces.
Fields
| Field Name | Description |
|---|---|
edges - [WorkspaceEdge!]!
|
List of edges with cursors. |
nodes - [Workspace!]!
|
List of workspaces. |
pageInfo - PageInfo!
|
Pagination information. |
totalCount - Int
|
Total number of items available. |
Example
{
"edges": [WorkspaceEdge],
"nodes": [Workspace],
"pageInfo": PageInfo,
"totalCount": 1
}
WorkspaceEdge
Description
An edge in the workspace connection.
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for this node. |
node - Workspace!
|
The workspace. |
Example
{
"cursor": "abc123",
"node": Workspace
}