# Lunde Films — order with your own agent Custom documentary and explainer films. Customer-supplied photographs, footage, recorded narration, interviews and creative direction are welcome. The emphasis is fast, custom production: bring the customer's own material and direction, use their preferred voice/language/format, and return the finished film by private link. Typical guidance is two to three days after script approval, with actual timing confirmed for the brief; never promise instant delivery or imply that 30–60 seconds is the turnaround time. Default narrator when voice is omitted: British modern science presenter, as heard in The Origin of the Immune System: https://www.youtube.com/watch?v=_Jtm2Fa6cSg The customer may request a different voice or supply recorded narration. ## Discover - Website and examples: https://lundefilms.com/ - Human-readable agent guide: https://lundefilms.com/agents - Human order form and private order dashboard: https://lundefilms.com/create - OpenAPI 3.1 contract: https://lundefilms.com/openapi.json - Live catalog and availability: GET https://lundefilms.com/api/v1/catalog Current trial: 30–60 second sample film, USD 5, one-time, no subscription. USD 5 once, paid after you approve the proposed script and before production. No subscription. Scope and delivery timing are confirmed with the script. A finished 30–60 second video, captions and credits are included. The existing $120 first full film is a separate offer; ask about it through the order messages or the website inquiry form. No automatic subscription or upsell. ## Availability and payment Always read the live catalog first. orders_available reports whether briefs can be submitted. online_payment_available reports whether Stripe Checkout is configured. If payment is unavailable, explain this to the customer and contact Anders. Never claim payment succeeded, launch production, or promise instant delivery. The production team confirms scope and timing in the proposed script. production_worker_status reports the latest local producer heartbeat (idle, busy, error or offline). Offline orders remain in the durable queue until the producer PC is available. This is not a delivery-time guarantee. Orders from both humans and agents are reviewed by the operator before any local agent run. Changed inputs or the approved production handoff need fresh operator review. Customers do not have access to that release control. ## Customer workflow 1. Obtain the customer's permission and brief. POST /api/v1/orders with a private random Idempotency-Key (UUID), product_id, name, email, brief and customer_authorized=true. Optional: organization, audience, language, direction, voice and material_urls (HTTPS). Leave voice empty to use the default narrator. Links are stored, not fetched by the API. Only submit material the customer may use. Tell them production can involve third-party AI services before they share confidential or embargoed material. 2. Save the returned order ID and access_token securely. There is no signup. Every subsequent request uses Authorization: Bearer . Never place a token in a URL, email, shared transcript or a public document. Repeat the exact creation request with the same private Idempotency-Key if the response is lost; a changed request returns 409 instead of a second order. Upload the customer's files after order creation with POST /api/v1/orders//uploads. Send the raw bytes as application/octet-stream, with Content-Length, X-Filename (URL-encoded UTF-8) and X-Content-SHA256 (lowercase file SHA-256), using the private Bearer token. Supported photos, video, audio, PDF and UTF-8 text formats and size limits are in catalog.upload_limits. Each file may be up to 250 MiB (text: 5 MiB), up to 1 GiB total per order. HTTPS links are also welcome for larger files. Re-uploading the same checksum returns the existing file. Read the order's uploads array for its received files; these are separate from deliverables. 3. GET /api/v1/orders/. Poll no more often than poll_after_seconds. Read next_action, messages, script, sources and the product's price and terms. 4. When status is script_ready, review the proposed script packet with the customer. POST /orders//approve (under /api/v1) with its exact script_digest and customer_authorized=true only with approval or explicitly delegated authority. The digest binds script, sources, scope, price and terms. 5. When status is awaiting_payment, POST /api/v1/orders//checkout with an empty object. Present the Stripe checkout_url for the customer to authorize the exact one-time purchase. Use the customer's payment agent only if that agent has its own authority to operate Stripe Checkout. Do not collect or transmit card numbers to Lunde Films. Never infer payment from a redirect. GET the order until payment_status is paid; only a signed Stripe event marks it paid. A missing provider returns a clear 503, never simulated success. 6. Production is asynchronous and handled on our side. The approved, paid brief enters the durable production queue. The producer makes the film using the existing v5 film workflow when the producer PC is available. A local supervisor prepares the script and oversees production; work is queued while the PC is off or another production is using it. 7. When delivered, download each file's download_url with the same Bearer token. Verify bytes and SHA-256. Expect the agreed video, captions and credits. Preview files, when supplied, can be viewed before final delivery. delivery_url is a private read-only page that can be shared with this customer. The customer also receives that link by email. Keep it private; it does not authorize changes, messages, orders or payments. 8. POST /api/v1/orders//messages with message and optional request_revision=true for feedback, changes, material links or questions. A changed script requires fresh approval. POST /orders//cancel with {} to cancel an unstarted brief or request cancellation after approval/payment. Cancellation after payment requires the producer to arrange any refund; this API never claims that a refund has happened. ## Reliability and privacy - All private responses are no-store; tokens are scoped to exactly one order. - Keep the creation Idempotency-Key private as it permits recovery of the token. - Do not create another order to retry checkout; checkout reuses its Stripe session. - 401: wrong/missing order token. 409: stale script, changed request or wrong state. - 429: stop and retry after Retry-After. 503: an unavailable dependency needs help. - Errors have {"error": {"code": "...", "message": "..."}}. - Public discovery improves accessibility; it does not guarantee search ranking or automatic inclusion in ChatGPT, Claude, Gemini or any commerce directory. Contact: use the inquiry form at https://lundefilms.com/#contact.