links

POST /v1/content/campaigns/plan

Price and preview a campaign without creating it.

모든 links 엔드포인트

모든 개발자 문서

인증

Bearer 토큰으로 API 키를 전송하세요. 이 엔드포인트는 명세에 특정 권한을 명시하지 않으므로, 가정하기보다는 키에 필요한 최소한의 권한을 부여하고 응답을 확인하세요.

조직 ID가 들어가는 위치

이 엔드포인트는 org_id을(를) 쿼리 매개변수로 사용합니다. 생략하면 테넌트 하위 트리 전체가 호출 대상이 되며, 값을 전달하면 특정 조직으로 호출 범위를 좁힐 수 있습니다.

조직 ID는 대시보드의 API 키 화면에서 키 바로 옆에 있습니다. 이는 실행하는 모든 호출에서 동일한 ID입니다.

무료 체험하기

대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.

curl -X POST https://api.zinndigital.com/v1/content/campaigns/plan \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "brief": <string>, "posts": <integer> }'

로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요

상세 정보

Resolves the target sites — named ones, or a site group expanded at this moment rather than remembered — lays the articles out across the drip window, and returns the whole schedule with the number of articles and publications it will produce. Creates nothing. Gated on links.edit. ⚖️ The customer sees this before every campaign, not only above a spending threshold (owner ruling, 2026-09-08). total_placements is the honest size: twelve articles across twenty sites is two hundred and forty publications, and quoting total_articles alone understates the work and the spend by the number of sites. targets.skipped_not_publishable is always present, including at zero — "12 sites" and "12 of your 40 sites" need different actions from the customer.

매개변수

이름유형필수설명
org_id (query)string아니요Narrow to one organisation. A reseller managing several client organisations reads the wrong one without it — and on a footprint-free network, another operator's posting schedule…

요청 본문

이름유형필수설명
briefstringThe standing instruction — voice, audience, what the sites are about.
postsintegerHow many ARTICLES to write. Each is placed on every target site, so the number of publications is this times the site count.
topicsstring[]아니요One subject per article, so N articles are N articles rather than N paraphrases. A shorter list cycles; an empty one means the brief alone.
site_idsstring[]아니요
site_group_idstring아니요A site group, resolved when the campaign is created rather than copied. A recurring schedule pointed at a group re-resolves it on every firing, so sites added later are…
drip_daysinteger아니요Spread the articles across this many days. 0 publishes them together.
drip_jitter_minutesinteger아니요Randomise each moment by up to this many minutes either way. Perfectly even spacing is more detectable than posting all at once — nothing a person does is that regular — so this…
anchorsContentRunAnchor[]아니요
categorystring아니요
publish_policyContentRunPublishPolicy아니요How far a run may go on its own. draft_only is the default and puts nothing live.
recipe_idstring아니요

응답

이름유형필수설명
campaign_idstring
targetsContentCampaignTargets
postsContentCampaignPlannedPost[]
total_articlesintegerArticles written. One per topic.
total_placementsintegerIndividual publications — articles times sites. The number that reads as "how much am I about to do", and the one the spend estimate is built on.
first_atstring아니요
last_atstring아니요

이 엔드포인트가 반환할 수 있는 오류

401 · 403 · 404 · 422