ConceptsPlatform API v1
Content Loops
Repeat a useful Project workflow on a daily, weekly, or monthly schedule without inventing a second generation model.
One persistent request
A Loop stores a Project, input, Asset requests, schedule, and per-run maximum. A scheduled or manual Run resolves fresh qualified input, then creates an ordinary Generation under the frozen Loop configuration.
Create a weekly Loop
ts
const loop = await client.contentLoops.create({
project_id: project.id,
input: {
type: 'trend',
lookback_days: 7,
},
assets: [{ asset_type: 'podcast_episode' }],
schedule: {
frequency: 'weekly',
day_of_week: 'monday',
local_time: '09:00',
timezone: 'Europe/Madrid',
},
max_cost_per_run_usd: '10.00',
max_cost_per_month_usd: '40.00',
})Budgets and blocked Runs
per_run_max_cost_usd is a hard ceiling. The service previews each Run before acceptance. Budget, billing, configuration, and no-qualified-input outcomes are represented as Run states; they do not produce partial hidden work.
Operate safely
- Pause and resume by updating
status. - Trigger an immediate Run with its own Idempotency-Key.
- Inspect Run history and the linked Generation.
- Archive the Loop when it should never schedule again.
- Send topic feedback so future qualification can avoid repetition.