{"openapi":"3.1.0","info":{"title":"Video Explainers Order API","version":"1.0","description":"Order explainer videos, product videos and ads from Video Explainers (videoexplainers.com) on behalf of a person or company. Every order is verified (valid phone, business email on the company's domain, real website) and only becomes real when the person behind contact.email clicks the confirmation link we email them. Free videos: one per company, 20–30 seconds, delivered within 2 business days. Prices and plans: GET /api/v1/offers. Human docs: https://videoexplainers.com/agents","contact":{"email":"info@videoexplainers.com","url":"https://videoexplainers.com/agents"}},"servers":[{"url":"https://videoexplainers.com"}],"paths":{"/api/v1/offers":{"get":{"operationId":"getOffers","summary":"Current offers, plans and prices","responses":{"200":{"description":"Offers","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/orders":{"post":{"operationId":"createOrder","summary":"Request a free video, a single video, or a plan on someone's behalf","description":"Returns 202 awaiting_confirmation; a confirmation link is emailed to contact.email. Nothing is produced until it is clicked.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["type","contact","company"],"properties":{"type":{"type":"string","enum":["free_video","single_video","plan"],"description":"free_video: A free 20–30 second video of the company's product, made from its website. One per company. single_video: Request to buy a single explainer video (sales confirms details and sends a payment link). plan: Request to start a monthly video subscription (sales confirms the plan and sends a payment link)."},"plan":{"type":"string","enum":["launch","growth","scale"],"description":"Required when type is \"plan\"."},"contact":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","description":"The real person's full name."},"email":{"type":"string","format":"email","description":"Business email on the company's own domain (free mailboxes are rejected). A confirmation link is sent here."},"phone":{"type":"string","description":"E.164 (+16615550123) or a national number with phoneCountry."},"phoneCountry":{"type":"string","description":"ISO 3166-1 alpha-2, e.g. US, GB, AE."}}},"company":{"type":"object","required":["website"],"properties":{"website":{"type":"string","description":"Company website, e.g. acme.com"},"name":{"type":"string"}}},"brief":{"type":"object","properties":{"goal":{"type":"string","description":"Business goal for the video, e.g. 'more demo bookings from clinic owners'."},"audience":{"type":"string"},"format":{"type":"string","enum":["explainer","ad","demo","onboarding","brand"]},"lengthSec":{"type":"integer","minimum":10,"maximum":300,"description":"Free videos are capped at 30."},"style":{"type":"string","enum":["any","2d_animation","3d_animation","motion_graphics","whiteboard","ai_animation","mixed_media"]},"language":{"type":"string","description":"Voiceover language, e.g. English."},"notes":{"type":"string"}}},"channel":{"type":"object","properties":{"agentName":{"type":"string","description":"Your assistant/agent name, e.g. 'Claude' or 'ChatGPT agent'."},"onBehalfOf":{"type":"string","description":"Who you are acting for, if different from contact."}}}}}}}},"responses":{"202":{"description":"Accepted — awaiting the contact's email confirmation","content":{"application/json":{"schema":{"type":"object","properties":{"specVersion":{"type":"string"},"status":{"type":"string","enum":["awaiting_confirmation"]},"id":{"type":"string","example":"ord_3f9a1c2b7d4e"},"expiresAt":{"type":"string","format":"date-time"},"message":{"type":"string"}}}}}},"422":{"description":"Validation or verification failed — errors keyed by field path, e.g. contact.email","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"string"}}}}}}},"429":{"description":"Too many orders from this address"}}}}}}