> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trystratos.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Welcome to your project

Stratos AI turns one app into a stream of TikTok-native content — photo slideshows, illustrated decks, AI-creator videos — and posts it on a schedule. The v1 API exposes that same engine to your own code, an MCP-connected agent, or the `stratos` CLI.

## What you can do

<CardGroup cols={2}>
  <Card title="Import an app" icon="mobile" href="/api-reference/apps">
    Paste an App Store link, a website, or just a name. Free, no credits spent.
  </Card>

  <Card title="Generate content" icon="wand-magic-sparkles" href="/api-reference/content">
    Slideshows, illustrated decks, or hook videos — any topic, any archetype.
  </Card>

  <Card title="Schedule to TikTok" icon="calendar" href="/api-reference/schedules">
    Drafts by default. Direct publish is available, scope-gated.
  </Card>

  <Card title="Read analytics" icon="chart-line" href="/api-reference/analytics">
    Views, likes, comments — the same numbers the dashboard shows you.
  </Card>
</CardGroup>

## The one rule that shapes everything else

**Nothing schedules until it's approved.** Every piece of generated content starts as `approvalStatus: "pending"`. Scheduling a post requires calling [`POST /v1/content/{id}/approve`](/api-reference/content#approve) first — the API rejects the schedule request otherwise, with a 409 that says exactly why. This is the actual safety mechanism against an agent looping generation-and-posting unsupervised — not a rate limit, not a spend cap (though those exist too), the approval step itself.

Read [The approval gate](/the-approval-gate) before building anything that generates and schedules content in the same flow.

## What doesn't exist here

Being upfront about this matters more than it sounds: an agent (or the person operating it) should never assume a capability exists because it seems like it should. Two honest gaps, as of this API's first release:

* **Illustrated decks and hook videos aren't generation-complete yet.** `POST /v1/content` with `type: "illustrated"` or `type: "hook_video"` creates a record but returns a clear `generation_not_wired` notice instead of a result — their pipelines are asynchronous Durable-Object state machines that need a dedicated integration pass. `type: "slideshow"` is fully live.
* **Posting requires rendered images, and image compositing is a client-side step today.** `POST /v1/schedules` will fail with a 409 (`no_images`) on content that has no `images` array in its result — which today means every slideshow, since text generation and image rendering are separate steps and only the former is wired via this API so far.

Check `GET /v1/jobs/{id}` or the `notice`/`error` fields on any response — the API always tells you which of these you've hit, rather than returning a silent partial success.
