An agent with a Stratos AI API key can generate content in a loop. Spend caps and rate limits exist as a backstop, but they only bound how much damage a runaway loop can do — they don’t stop it from happening. The approval gate is what actually stops it.
How it works
Every piece of content created via POST /v1/content starts as:
POST /v1/schedules checks approvalStatus server-side — not as a client convention an agent could skip, but as an actual 409 not_approved response if it’s anything other than "approved":
There is no flag, no query param, no elevated scope that skips this. The only way content reaches schedules is through POST /v1/content/{id}/approve.
What this means for how you build
An agent can generate freely — draft ten variations, try different hooks, iterate — and nothing spends a second time and nothing posts until a human (or you, explicitly) calls approve. That single call is the choke point. If you’re building an agent that runs unattended, put a real human review step in front of approve, not in front of content create.
automations has its own approvalMode field ("auto" or "manual", default "manual"). Even a recurring automation’s generated posts land as pending content requiring approval by default — set approvalMode: "auto" only when you’ve deliberately decided the review step isn’t needed for that automation.
If you’re building an MCP-connected agent
The MCP tool stratos_content_approve’s description says the same thing explicitly: default to surfacing generated content for a human to review, don’t auto-approve your own output unless the person you’re working with has told you to. This is a norm the tool description states, not something the server can enforce on an MCP client’s behavior — the server-side enforcement is the 409 on schedules, described above. The description exists so an agent reading it makes the right call before it ever gets there.