Content

List content opportunities

What to write or fix, ranked: pages to build on your own site, and third-party pages to get onto — each with the prompts it would answer and why it ranks where it does.
GEThttps://api.vidrys.com/v1/projects/{project_id}/content-assets
Plan
Grow and above
Key
read
Rate cost
1 unit

Highest score first. This month's content credits come back with the list.

Authorization

Sent as a header on every request.

Authorizationstringrequired

A Vidrys API key, sent as Bearer vidrys_sk_…. A read key is enough. See Authentication.

Path parameters

project_idstringrequired

The project's id, from List projects.

Query parameters

categoryenum<string>

Your own site, or the wider web.

Values:onsiteoffsite

statestring

Keep only opportunities in this state, e.g. ready or generated.

Values:detectedreadyblockedgeneratinggeneratedverifyingwonstalledunaddressabledismissedarchivedmergedsplit

pageintegerdefault 1

Page number, from 1.

page_sizeintegerdefault 25

Rows per page, 1–100.

Response · 200

application/json

assetsobject[]

Opportunities, highest score first.

+Show child attributes
idstring

Content-opportunity id.

titlestring

What to make, as the board shows it.

categorystring

onsite is a page to write or fix on your own site. offsite is a third-party page to get onto.

Values:onsiteoffsite

statestring

Where it is: ready to draft, blocked by a technical problem, generating, generated (a draft is waiting), verifying (published, being measured), won, stalled (published, nothing moved), dismissed, or one of the internal and terminal states.

Values:detectedreadyblockedgeneratinggeneratedverifyingwonstalledunaddressabledismissedarchivedmergedsplit

asset_typestring

The kind of page or asset to produce.

Values:comparisonpricingfaqdefinitiondocumentationintegrationhow-touse-caseproductcase-studytrust-signalsresearch

audience_segmentstringnullable

Who the prompts come from, e.g. startups or startups|india.

bulletsstring[]

Why it ranks here, strongest reason first. Up to three.

cluster_sizeinteger

Tracked prompts this one asset would answer.

cluster_versioninteger

Rises whenever the prompts in the cluster change.

needs_reviewboolean

True when the grouping is uncertain and worth a human glance.

blockedboolean

True while a hard technical problem on the site would waste the draft.

draftableboolean

Whether a draft can be written for it at all — research briefs and some off-site sources can't be drafted.

deliverable_labelstringnullable

What one credit buys here, e.g. page fixes, pitch email, review request. Null when it's a brand-new page.

not_draftable_reasonstringnullable

Why there's nothing to draft.

suggested_actionstringnullable

Off-site: what to do about the cited source.

suggested_sourcestringnullable

Off-site: the domain to get onto.

suggested_source_urlstringnullable

Off-site: the exact page cited.

suggested_targetstringnullable

Off-site: a readable name for that page.

target_urlstringnullable

On-site: the page being fixed, when it's an existing one.

prompt_idsstring[]

The tracked prompts in the cluster.

pageobject

Where these rows sit in the full list.

+Show child attributes
pageinteger

This page's number, from 1.

page_sizeinteger

Rows per page.

totalinteger

Rows across every page.

prompts_coveredinteger

Prompt memberships across the opportunities still in play.

credits_savedinteger

Prompts covered beyond one per draft — what clustering saves you.

creditsobject

Content credits this month, across the workspace.

+Show child attributes
usedinteger

Credits spent this month.

quotaintegernullable

The month's allowance. Null means unlimited.

remainingintegernullable

What's left. Null when unlimited.

project_usedintegernullable

Of used, what this project spent.

Errors

404 not_foundThe project or item doesn't exist in this workspace. A project from another workspace also returns 404, never 403.
422 invalid_requestA parameter or body field is missing or has the wrong type or value. The message names the field. Also returned when a write would pass the plan's prompt limit.
401 unauthorizedNo key was sent, or the key is unknown, revoked or expired, or the member who created it has left the workspace or been deactivated.
402 plan_requiredThe workspace's plan doesn't include API access. It's included on Grow, Scale and Custom.
403 workspace_not_approvedThe workspace is still waiting for approval, or wasn't approved.
429 rate_limitedToo many requests this minute. Wait for the number of seconds in the `Retry-After` header, then retry.

Every code, and what to retry, is in Errors.