Skip to content

One store's published videos

GET
/locations/{partner_location_id}/content
curl --request GET \
--url 'https://data.creatorain.com/partner/v1/locations/store_123/content?limit=50' \
--header 'Authorization: Bearer <token>'

Videos filmed at this store that are LIVE on a platform, newest first. Approved but unpublished work is not listed: a merchant’s dashboard counts what is on the internet.

metrics is null until the video’s numbers have first been read from the public post, which is deliberate: {"views": 0} would be a claim that a video got no views, and null says nobody counted. Once it has been read, metrics is an object and any single number the platform does not publish is null, never 0. metrics_measured_at gives the time each number was read, and is null beside a number that was never read.

EITHER CREDENTIAL: the partner key or that store’s own token.

partner_location_id
required
string
<= 200 characters

YOUR id for the store, as you sent it to POST /locations.

Example

store_123
cursor
string

The next_cursor from the previous page, sent back UNCHANGED. Omit it for the first page.

It is opaque: do not build one yourself. It names a POSITION in the sort order rather than a count of rows to skip, which is why a page stays stable when a booking is touched between two requests. A cursor we did not issue is refused with 400 validation_error, rather than silently treated as the first page, so a broken client fails loudly instead of looping over page one for ever.

limit
integer
default: 50 >= 1 <= 200

Rows per page. Default 50, maximum 200. A larger value is CLAMPED to 200 rather than refused, so you never have to guess the ceiling.

A page of published videos.

Media typeapplication/json
object
items
required
Array<object>

One published video filmed at the store.

object
content_id
string format: uuid
post_url
string
nullable
platform
string
nullable
published_at

RFC 3339 with the store’s offset.

string
nullable
timezone
string
nullable
is_collab

Whether the store’s own account is a co-author of the post, read from the post’s co-author list when the video’s numbers are read. false when we could not tell, which includes every TikTok post (that feed has no co-author list) and any post not yet read.

boolean
content_reuse

Whether the creator allowed the brand to reuse this content, as she chose it when she signed her agreement. true allowed; false declined, so the video is for her own post only; null when no choice was recorded (agreements signed before the option existed).

boolean
nullable
creator
object
handle
string
nullable
metrics

NULL until the video’s numbers have first been read from the public post. After that it is an object, and a number the platform does not publish is null, never 0 (for example Instagram shares and saves).

object
views

Plays.

integer
nullable
likes
integer
nullable
comments
integer
nullable
shares
integer
nullable
saves
integer
nullable
metrics_measured_at

When each number in metrics was read. Null exactly when metrics is null.

object
views
string format: date-time
nullable
likes
string format: date-time
nullable
comments
string format: date-time
nullable
shares
string format: date-time
nullable
saves
string format: date-time
nullable
next_cursor
required
string
nullable

Example

{
"items": [
{
"post_url": "https://www.instagram.com/reel/abc123/",
"platform": "instagram",
"published_at": "2026-09-12T17:00:00-07:00",
"timezone": "America/Los_Angeles",
"metrics_measured_at": {
"views": "2026-11-09T02:00:00Z",
"likes": "2026-11-09T02:00:00Z",
"comments": "2026-11-09T02:00:00Z",
"shares": null,
"saves": null
}
}
]
}

validation_error. field names the offending parameter.

Media typeapplication/json
object
error
required
object
code
required

The stable value to branch on.

string
Allowed values: unauthorized forbidden_ip rate_limited validation_error location_already_exists location_not_found location_terminated reservation_not_found conflict internal_error
message
required

A human sentence. Copy, not contract; it may be reworded.

string
field

The request field at fault, dotted for a nested one (plan.term_months).

string

Example

{
"error": {
"code": "unauthorized"
}
}

unauthorized. A missing, malformed, unknown or revoked key; or an invalid, expired or wrong-store dashboard token. One answer for every case on purpose: the holder of a bad credential learns nothing from the difference.

Media typeapplication/json
object
error
required
object
code
required

The stable value to branch on.

string
Allowed values: unauthorized forbidden_ip rate_limited validation_error location_already_exists location_not_found location_terminated reservation_not_found conflict internal_error
message
required

A human sentence. Copy, not contract; it may be reworded.

string
field

The request field at fault, dotted for a nested one (plan.term_months).

string

Example

{
"error": {
"code": "unauthorized"
}
}

location_not_found. No store of this key carries that partner_location_id.

Media typeapplication/json
object
error
required
object
code
required

The stable value to branch on.

string
Allowed values: unauthorized forbidden_ip rate_limited validation_error location_already_exists location_not_found location_terminated reservation_not_found conflict internal_error
message
required

A human sentence. Copy, not contract; it may be reworded.

string
field

The request field at fault, dotted for a nested one (plan.term_months).

string

Example

{
"error": {
"code": "unauthorized"
}
}

rate_limited. Over this key’s requests-per-minute ceiling.

Media typeapplication/json
object
error
required
object
code
required

The stable value to branch on.

string
Allowed values: unauthorized forbidden_ip rate_limited validation_error location_already_exists location_not_found location_terminated reservation_not_found conflict internal_error
message
required

A human sentence. Copy, not contract; it may be reworded.

string
field

The request field at fault, dotted for a nested one (plan.term_months).

string

Example

{
"error": {
"code": "unauthorized"
}
}