# Tryr > Tryr turns a product page link into on-model product photography (catalog, lookbook, editorial, studio or location shots) and short product films for online sellers. An Agentized.io product. Agents use Tryr with the user's personal API key (`Authorization: Bearer tryr_sk_...`) over MCP or REST. Keys are created in the Tryr panel under Agent access and work only on accounts that have bought a plan or a credit top-up. Reading the account, listing plans, starting a shoot and getting a film quote are free; generated images and films are paid with the user's Tryr credits. ## When to use Tryr Reach for Tryr when the user sells a product and wants to: - Turn a product page URL (Shopify, Etsy, Amazon, Trendyol, Hepsiburada or their own site) into on-model or lifestyle product photos for a product page, a marketplace listing, an ad or a social post. - Shoot a set of the same product: 2 to 10 scenes (studio, real location, editorial, lookbook), 1K/2K/4K, aspect 1:1, 3:4, 4:3, 9:16, 16:9, 2:3 or 3:2. - Make a short product film (5 to 30 seconds) from a finished shoot, with a plan and a credit quote before anything is charged. - Check the Tryr credit balance, or get a checkout link for a credit plan (the user pays on the link; the agent never charges a card). Tryr is not a general image generator: every shoot starts from a product page. Do not use it for products or photos the user has no right to use, for another party's brand without permission, for unlawful or deceptive content, or for imagery of a person without their consent (Terms of Service: https://tryr.app/terms). ## How an agent should call Tryr 1. Connect MCP (Streamable HTTP, stateless) at https://tryr.app/mcp with the bearer key, or call the REST API at https://tryr.app/agent/v1. 2. Start: MCP `tryr_cekim_baslat {url}` / REST `POST /agent/v1/shoots {"url": "...", "notes": "..."}`. Put a concrete brief (setting, light, framing, mood, what to avoid; max 300 characters) in `notes`; do not add claims the product page does not support. 3. Poll: `tryr_cekim_durumu` / `GET /agent/v1/shoots/{id}?wait_seconds=50` until `status` is `awaiting` (questions ready) or `completed`. Follow the `next` field of every response. 4. Ask the user the `questions` and tell them the credit cost (every generated image, including the first two previews: 1K/2K 2 credits, 4K 5). Do not answer for the user unless they ask you to decide; an empty answer uses the defaults. Then `tryr_cevapla` / `POST /agent/v1/shoots/{id}/answers`. 5. Show frames: `tryr_kare_onizle` / `GET /agent/v1/shoots/{id}/frames/{n}/preview` (free, 720 px). Download only when the user wants it: `tryr_kare_indir` / `GET /agent/v1/shoots/{id}/frames/{n}?size=1k|2k|4k` (charges only the size difference; the same frame and size is never charged twice). 6. More scenes: `tryr_onayla` / `POST /agent/v1/shoots/{id}/approve` generates the remaining planned scenes when `scene_count` is above 2. 7. Film is two steps: MCP tryr_film_baslat -> tryr_film_onayla -> tryr_film_durumu -> tryr_film_indir. REST POST /agent/v1/shoots/{id}/films returns the plan and price (free); POST /agent/v1/shoots/{id}/films/{film}/approve charges credits once, only after the user approves the price; GET .../films/{film}?wait_seconds=50 and GET .../films/{film}/download. 8. Out of credits (`402 plan_gerekli` or `insufficient_credits`): list plans (`tryr_paketler` / `GET /agent/v1/plans`), let the user choose, create a link (`tryr_kredi_al` / `POST /agent/v1/checkout`), and check the balance after they pay (`tryr_hesap` / `GET /agent/v1/me`). 9. Send an `Idempotency-Key` header on REST writes so a retried request never starts a second shoot. Example: ``` curl -X POST https://tryr.app/agent/v1/shoots \ -H "Authorization: Bearer tryr_sk_..." \ -H "Content-Type: application/json" \ -H "Idempotency-Key: 6f1c2b7e" \ -d '{"url":"https://store.example/product"}' ``` CLI (not yet published to npm; use MCP or REST until then): tryr film start --duration 15 --tier 720p; tryr film approve ; tryr film status --wait; tryr film download . ## Docs - [Tryr developer docs](https://tryr.app/developers): authentication, quickstart, endpoints, MCP tools, errors, rate limits, versioning and deprecation (Markdown: https://tryr.app/developers.md) - [Agent setup for MCP clients, REST and CLI](https://tryr.app/agents/en) (Turkish: https://tryr.app/agents) - [OpenAPI 3.1 document](https://tryr.app/agent/v1/openapi.json) - [API catalog (RFC 9727)](https://tryr.app/.well-known/api-catalog) - MCP endpoint: https://tryr.app/mcp - Pages as Markdown: https://tryr.app/index.md, https://tryr.app/start.md, https://tryr.app/basla.md (or send `Accept: text/markdown`) ## Conventions - Errors are RFC 9457 `application/problem+json` objects with a stable `error` code, a `message`, a `hint` for the next step and a `docs` link. Unknown API paths return a JSON problem too. - Rate limits: the agent API has no per-key request quota today, so there are no RateLimit headers; usage is bounded by credits. Status calls accept `wait_seconds` (up to 50) instead of fast polling. - Versioning: the REST API is versioned in the path (`/agent/v1`). Deprecations are announced with `Deprecation` and `Sunset` headers and on https://tryr.app/developers#versioning before anything is removed. ## Company - [About Tryr](https://tryr.app/about) - [Contact](https://tryr.app/contact): info@agentized.io, support@agentized.io - [Terms of Service](https://tryr.app/terms) - [Privacy Policy](https://tryr.app/privacy)