# AmpClip API v1

Base URL: /api/v1
Auth: Authorization: Bearer st_… (create keys in Settings)
Rate limit: 20 requests / 60s per key. Max 3 slideshows generating at once.
Errors: { "error": string, "code": UNAUTHORIZED | INSUFFICIENT_CREDITS | NOT_FOUND | VALIDATION_ERROR | RATE_LIMITED | CONCURRENT_LIMIT }

## GET /account
→ { workspace_id, name, subscription_tier, credits, next_reset_date }

## POST /slideshows/generate
Body (all optional): { additional_context, hook, track_id, audience_id, format_key, language, aspect_ratio }
format_key ∈ lyric_drop | songs_for_when | if_you_like | pov | story_behind | unreleased_teaser | rate_my | producer_tips
→ 202 { slideshow_id, status: "processing" }
Uses 1 credit. Defaults to the focus track and newest audience.

## GET /slideshows/{id}/status
→ { slideshow_id, status: draft|generating|rendering|completed|failed, hook, caption, hashtags, slideshow_images[], video_url, error }

## Formats
- lyric_drop: Lyric drop — One lyric line per slide over aesthetic photos. The track is the sound; the hook window lines up with the lyric.
- songs_for_when: Songs for when… — A listicle of 4–5 songs for a moment. Adjacent artists fill the list; our track sits in the middle.
- if_you_like: If you like X — Borrow a bigger artist's audience: 'if you like X you'll love these' with our track as one of the picks.
- pov: POV / scenario — An aesthetic carousel with a single POV line. Images do the work, the sound carries it.
- story_behind: How this song found me — A fan's story of discovering the track: four to six beats from a listener's point of view. Converts to follows without claiming anything about the artist.
- unreleased_teaser: Unreleased teaser — Three lyric lines from an unreleased track and a 'should i drop it?' close. Pre-save driver.
- rate_my: Rate my… — Comment bait using the artist's own photos: rate my setlist, my vinyl shelf, my studio.
- producer_tips: Producer tips — A standard educational listicle for beatmakers and producers. Last slide points at the beat store.
