ai

POST /v1/ai/recipes

Create an AI posting recipe.

همه نقاط پایانی ai

احراز هویت

یک کلید API را به عنوان یک توکن حامل ارسال کنید. این کلید باید دارای مجوز links.edit باشد؛ کلیدی که فاقد آن باشد با خطای 403 رد می‌شود، نه 404.

جایی که شناسه سازمان شما قرار می‌گیرد

این نقطه پایانی org_id را به عنوان یک فیلد در بدنه JSON دریافت می‌کند.

شناسه سازمان شما در صفحه کلیدهای API در داشبوردتان، در کنار خود کلید قرار دارد. این شناسه در تمام درخواست‌هایی که ارسال می‌کنید یکسان است.

امتحان کنید

هر چیزی را که داخل براکت‌های زاویه‌دار قرار دارد با مقادیر خودتان جایگزین کنید، و نگهدارنده کلید را با کلیدی از داشبورد خود جایگزین نمایید.

curl -X POST https://api.zinndigital.com/v1/ai/recipes \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "name": <string> }'

وارد شده‌اید؟ کنسول API در داشبورد شما شناسه سازمان واقعی و کلید خودتان را پر می‌کند و درخواست را روی API زنده اجرا می‌کند تا بتوانید پاسخ واقعی را ببینید. این نقطه پایانی را در کنسول API باز کنید

جزئیات

⛔ Bounds are enforced at **authoring** time, not at run time: more than five anchors or more than ten posts per run would be refused on every run, so a recipe saved with them would look fine, sit on a schedule, and fail silently every night. Requires `links.edit` — the same key as writing a post by hand, because that is what this is.

بدنه درخواست

نامنوعالزامیچیست
namestringبله
is_enabledbooleanخیر
briefstringخیر
tonestringخیر
word_countintegerخیر
languagestringخیر
posts_per_runintegerخیر
providerstringخیر
model_idstringخیر
model_familystringخیر
anchorsAiAnchor[]خیر
anchor_policystring<none, every_post, rotate>خیر
link_set_idstringخیرThe reusable link set this recipe draws its links from, or `null` to use the recipe's own `anchors`. When set it **replaces** `anchors` rather than adding to them — two sources…
cadencestring<manual, daily, weekly, monthly>خیر
cadence_hour_utcintegerخیر
cadence_dowintegerخیر
cadence_domintegerخیر
target_kindstring<none, sites, site_group, cms_targets>خیر
target_sitesstring[]خیر
target_site_group_idobjectخیر
target_cms_target_idsstring[]خیر
target_categorystringخیر
requires_capabilitiesstring[]خیر
capability_policystring<refuse, degrade, ask>خیر
image_providerstringخیر
image_modelstringخیر
featured_imagebooleanخیر
inline_image_countintegerخیر
inline_placementstring<after_intro, between_sections, end>خیر
image_stylestringخیر
publish_modestring<draft, schedule, publish>خیر
schedule_offset_hoursintegerخیر
schedule_stagger_minutesintegerخیر
org_idUuidخیرUUIDv7 identifier — sortable by creation time (docs/02 §8).

پاسخ

نامنوعالزامیچیست
idUuidبلهUUIDv7 identifier — sortable by creation time (docs/02 §8).
namestringبله
is_enabledbooleanبله
briefstringخیر
tonestringخیر
word_countintegerخیر
languagestringخیرBCP-47, or empty for "the language the brief is written in".
posts_per_runintegerخیر⛔ Capped at 10. Two hundred articles from one brief are two hundred near-identical articles, which is a **footprint** — the exact thing the Footprint-Free line is sold to avoid.
providerstringخیرBlank = whatever the funding route resolves to.
model_idstringخیرBlank = the newest verified model in the family.
model_familystringخیر
anchorsAiAnchor[]خیر
anchor_policystring<none, every_post, rotate>خیر
link_set_idstringخیرThe reusable link set this recipe draws its links from, or `null` to use the recipe's own `anchors`. When set it **replaces** `anchors` rather than adding to them — two sources…
cadencestring<manual, daily, weekly, monthly>بله
cadence_hour_utcintegerخیر
cadence_dowintegerخیر0 = Monday.
cadence_domintegerخیر⛔ Never 29-31: a monthly recipe set to the 31st would skip February silently, and a schedule that stops without an error is the failure this feature prevents.
next_run_atobjectخیر
last_run_atobjectخیر
target_kindstring<none, sites, site_group, cms_targets>خیر
target_sitesstring[]خیر
target_site_group_idobjectخیر
target_cms_target_idsstring[]خیر
target_categorystringخیر
requires_capabilitiesstring[]خیرCapability ids the target must support, e.g. `cms_target:featured_image`. Enforced on every run: each site's capabilities are read from its CMS target and any shortfall is handl…
capability_policystring<refuse, degrade, ask>خیرWhat to do when a target cannot do something the recipe requires. Default `refuse` — silently dropping a requested field is the failure this exists to stop. `refuse` skips that…
image_providerstringخیر
image_modelstringخیر
featured_imagebooleanخیر
inline_image_countintegerخیر
inline_placementstring<after_intro, between_sections, end>خیر
image_stylestringخیر
publish_modestring<draft, schedule, publish>بله⚖️ Owner ruling 2026-08-20: a **per-recipe** switch defaulting to `draft`. `draft` writes into the library and schedules nothing; `schedule` queues placements the customer can s…
schedule_offset_hoursintegerخیر
schedule_stagger_minutesintegerخیرMinutes between consecutive posts in one run. ⛔ Not cosmetic: a network whose articles all appear in the same minute is a footprint.
blocking_providersstring[]خیرProviders this recipe needs a working key for and does not have. Empty means it can run now. ⚖️ A recipe naming no provider is never blocked — credits are the default route and…
created_atstringبله
updated_atstringخیر

خطاهایی که این نقطه پایانی می‌تواند برگرداند

401 · 403 · 422 · 429