curl "https://api.shortkit.dev/v1/content?limit=20&uploadStatus=ready&tags=weather,breaking" \
-H "Authorization: Bearer sk_live_your_secret_key"
import requests
resp = requests.get(
"https://api.shortkit.dev/v1/content",
headers={"Authorization": "Bearer sk_live_your_secret_key"},
params={
"limit": 20,
"uploadStatus": "ready",
"tags": "weather,breaking",
},
)
items = resp.json()["data"]
next_cursor = resp.json()["meta"].get("nextCursor")
const resp = await fetch(
"https://api.shortkit.dev/v1/content?limit=20&uploadStatus=ready&tags=weather,breaking",
{
headers: { Authorization: "Bearer sk_live_your_secret_key" },
}
);
const { data: items, meta } = await resp.json();
const nextCursor = meta.nextCursor;
{
"data": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"contentType": "video",
"title": "Breaking: Weather Alert",
"uploadStatus": "ready",
"publishStatus": "published",
"duration": 32.5,
"section": "Weather",
"author": "Jane Doe",
"tags": ["weather", "severe", "breaking"],
"createdAt": "2026-02-05T12:00:00Z",
"updatedAt": "2026-02-05T12:03:45Z"
}
],
"meta": {
"nextCursor": "eyJjYSI6IjIwMjYtMDItMDVUMTI6MDA6MDBaIiwiaWQiOiJkMjkwZjFlZS02YzU0In0",
"request_id": "req_list001"
}
}
Content
List Content
Returns a paginated list of content items in your organization.
GET
/
v1
/
content
curl "https://api.shortkit.dev/v1/content?limit=20&uploadStatus=ready&tags=weather,breaking" \
-H "Authorization: Bearer sk_live_your_secret_key"
import requests
resp = requests.get(
"https://api.shortkit.dev/v1/content",
headers={"Authorization": "Bearer sk_live_your_secret_key"},
params={
"limit": 20,
"uploadStatus": "ready",
"tags": "weather,breaking",
},
)
items = resp.json()["data"]
next_cursor = resp.json()["meta"].get("nextCursor")
const resp = await fetch(
"https://api.shortkit.dev/v1/content?limit=20&uploadStatus=ready&tags=weather,breaking",
{
headers: { Authorization: "Bearer sk_live_your_secret_key" },
}
);
const { data: items, meta } = await resp.json();
const nextCursor = meta.nextCursor;
{
"data": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"contentType": "video",
"title": "Breaking: Weather Alert",
"uploadStatus": "ready",
"publishStatus": "published",
"duration": 32.5,
"section": "Weather",
"author": "Jane Doe",
"tags": ["weather", "severe", "breaking"],
"createdAt": "2026-02-05T12:00:00Z",
"updatedAt": "2026-02-05T12:03:45Z"
}
],
"meta": {
"nextCursor": "eyJjYSI6IjIwMjYtMDItMDVUMTI6MDA6MDBaIiwiaWQiOiJkMjkwZjFlZS02YzU0In0",
"request_id": "req_list001"
}
}
Query parameters
integer
default:20
Items per page. Min 1, max 100.
string
Pagination cursor from a previous response’s
meta.nextCursor. Omit for the first page.string
Filter by upload status:
pending, processing, ready, or error.string
Comma-separated tag filter. Returns content matching any of the given tags.
curl "https://api.shortkit.dev/v1/content?limit=20&uploadStatus=ready&tags=weather,breaking" \
-H "Authorization: Bearer sk_live_your_secret_key"
import requests
resp = requests.get(
"https://api.shortkit.dev/v1/content",
headers={"Authorization": "Bearer sk_live_your_secret_key"},
params={
"limit": 20,
"uploadStatus": "ready",
"tags": "weather,breaking",
},
)
items = resp.json()["data"]
next_cursor = resp.json()["meta"].get("nextCursor")
const resp = await fetch(
"https://api.shortkit.dev/v1/content?limit=20&uploadStatus=ready&tags=weather,breaking",
{
headers: { Authorization: "Bearer sk_live_your_secret_key" },
}
);
const { data: items, meta } = await resp.json();
const nextCursor = meta.nextCursor;
{
"data": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"contentType": "video",
"title": "Breaking: Weather Alert",
"uploadStatus": "ready",
"publishStatus": "published",
"duration": 32.5,
"section": "Weather",
"author": "Jane Doe",
"tags": ["weather", "severe", "breaking"],
"createdAt": "2026-02-05T12:00:00Z",
"updatedAt": "2026-02-05T12:03:45Z"
}
],
"meta": {
"nextCursor": "eyJjYSI6IjIwMjYtMDItMDVUMTI6MDA6MDBaIiwiaWQiOiJkMjkwZjFlZS02YzU0In0",
"request_id": "req_list001"
}
}
Pagination
This endpoint uses cursor-based pagination. When more results exist,meta.nextCursor contains an opaque token — pass it as the cursor query parameter to fetch the next page.
# Fetch the next page
curl "https://api.shortkit.dev/v1/content?limit=20&cursor=eyJjYSI6IjIwMjYtMDIt..." \
-H "Authorization: Bearer sk_live_your_secret_key"
meta.nextCursor is absent, you’ve reached the end.
Filtering
You can filter byuploadStatus and tags using the query parameters above. Additional filters (by publishStatus, section, contentType, author, and date ranges) are coming soon.