{"openapi":"3.1.0","info":{"title":"ListingShot API","version":"1","description":"Listing and product data in, on-brand graphics out. Rendering is free; records, imports and feeds are priced as /api says."},"servers":[{"url":"https://api.listing-shot.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"ErrorBody":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}}},"required":["error"]},"InsufficientCreditBody":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"},"details":{"type":"array","items":{"type":"string"}},"reason":{"type":"string","const":"insufficient_credit"},"balance_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"balance_eur":{"type":"number"},"required_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"min_topup_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["error","reason","balance_cents","balance_eur","required_cents","min_topup_cents"]},"AccountResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"api_key":{"type":"string"},"public_id":{"type":"string"},"signing_secret":{"type":"string"},"usage":{"type":"object","properties":{"month":{"type":"string"},"ingests":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"renders":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"balance_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"balance_eur":{"type":"number"},"next_ingest_cents":{"type":"object","properties":{"ai":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"data":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["ai","data"]},"model_tokens":{"type":"object","properties":{"input":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"output":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["input","output"]}},"required":["month","ingests","renders","balance_cents","balance_eur","next_ingest_cents","model_tokens"]},"pricing":{"type":"object","properties":{"ingest_ai_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ingest_data_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"render_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"adjust_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"angles_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"derive_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"signup_grant_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"min_topup_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"}},"required":["ingest_ai_cents","ingest_data_cents","render_cents","adjust_cents","angles_cents","signup_grant_cents","min_topup_cents","currency"]}},"required":["api_key","public_id","signing_secret","usage","pricing"]},"SigningSecretResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"public_id":{"type":"string"},"signing_secret":{"type":"string"}},"required":["public_id","signing_secret"]},"UsageDetailResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"month":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["ingest","render","topup","adjustment","preset_adjust","angles","style_derive","layout_derive","form_derive","feed"]},"quantity":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"detail":{"type":"string"},"amount_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created_at":{"type":"string"}},"required":["kind","quantity","detail","amount_cents","created_at"]}}},"required":["month","events"]},"Pricing":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"ingest_ai_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"ingest_data_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"render_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"adjust_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"angles_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"derive_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"signup_grant_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"min_topup_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"currency":{"type":"string"}},"required":["ingest_ai_cents","ingest_data_cents","render_cents","adjust_cents","angles_cents","signup_grant_cents","min_topup_cents","currency"]},"CreateImageRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"template":{"type":"string"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"modifications":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"text":{"type":"string"},"image_url":{"type":"string"},"color":{"type":"string"}},"required":["name"]}},"style":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"form_id":{"type":"string"}},"required":["template"]},"GeneratedImage":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"uid":{"type":"string"},"template":{"type":"string"},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["pending","completed","failed"]},"image_url":{"type":"string"},"svg_url":{"type":"string"},"modifications":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"text":{"type":"string"},"image_url":{"type":"string"},"color":{"type":"string"}},"required":["name"]}},"fit":{"type":"object","properties":{"step":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fits":{"type":"boolean"},"truncated":{"type":"boolean"},"fill":{"type":"number"},"note":{"type":"string"}},"required":["step","fits","truncated","fill","note"]},"render_ms":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created_at":{"type":"string"}},"required":["uid","template","width","height","status","image_url","svg_url","modifications","render_ms","created_at"]},"Style":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]},"BrandResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string"},"site":{"type":"string"},"logo":{"type":"string"},"palettes":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"style":{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]}},"required":["name","hits","style"]}}},"required":["url","palettes"]},"StyleDeriveResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"source":{"type":"string","enum":["agent","default"]},"provider":{"type":"string"},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"style":{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]},"variants":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"hits":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"style":{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]}},"required":["name","hits","style"]}},"note":{"type":"string"},"reference_kept":{"type":"array","items":{}},"arrangement":{},"layout":{"anyOf":[{"type":"object","properties":{"spec":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"unmet":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}},"required":["spec","unmet","note"]},{"type":"null"}]}},"required":["source","provider","style","variants"]},"Preset":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"segment":{"type":"string"},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"style":{"anyOf":[{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]},{"type":"null"}]},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","name","segment","values","style","created_at","updated_at"]},"CreatePresetRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"segment":{"type":"string","minLength":1,"maxLength":40},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"style":{"anyOf":[{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]},{"type":"null"}]}},"required":["name","segment","values"]},"UpdatePresetRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"style":{"anyOf":[{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]},{"type":"null"}]}}},"AdjustPresetRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"instruction":{"type":"string","minLength":1,"maxLength":500}},"required":["instruction"]},"AdjustPresetResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"style":{"anyOf":[{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]},{"type":"null"}]},"changed":{"type":"array","items":{"type":"string"}},"summary":{"type":"string"}},"required":["values","style","changed","summary"]},"CreateJobRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"kind":{"type":"string","enum":["render","ingest","feed_check"]},"payload":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"run_id":{"type":"string"}},"required":["kind","payload"]},"Job":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string","enum":["pending","running","completed","failed"]},"run_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"payload":{},"result":{"anyOf":[{},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"attempts":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created_at":{"type":"string"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","kind","status","run_id","payload","result","error","attempts","created_at","finished_at"]},"RunProgressResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"run_id":{"type":"string"},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pending":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"running":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"completed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["run_id","total","pending","running","completed","failed"]},"AnglesRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"segment":{"type":"string","minLength":1,"maxLength":40},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"writable":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"string","minLength":1}},"voice":{"type":"object","properties":{"address":{"type":"string","enum":["sie","du"]},"tone":{"default":"","type":"string","maxLength":300},"audience":{"default":"","type":"string","maxLength":300},"avoid":{"default":"","type":"string","maxLength":300}},"required":["address"]},"placeholders":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1}},"material":{"type":"string","maxLength":8000}},"required":["segment","values","writable"]},"AnglesResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"angles":{"type":"array","items":{"type":"object","properties":{"strategy":{"type":"string","enum":["price","benefit","urgency"]},"label":{"type":"string"},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"ad":{"type":"object","properties":{"primary":{"type":"string"},"headline":{"type":"string"},"description":{"type":"string"}},"required":["primary","headline","description"]},"rationale":{"type":"string"}},"required":["strategy","label","values","ad","rationale"]}}},"required":["angles"]},"ArrangementsRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"template":{"type":"string","minLength":1},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"style":{"type":"object","properties":{"brand_color":{"type":"string"},"ink":{"type":"string"},"surface":{"type":"string"},"font":{"type":"string","enum":["inter","spectral","poppins","barlow-condensed"]},"arrangement":{"type":"string"},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"scheme":{"type":"string","enum":["dark","light"]},"corner":{"type":"string","enum":["sharp","soft","pill"]},"badge":{"type":"string","enum":["pill","rect"]},"uppercase_title":{"type":"boolean"},"title_weight":{"type":"string","enum":["bold","black"]},"notes":{"type":"string"}},"required":["brand_color","ink","surface","scheme","corner","badge","uppercase_title","title_weight","notes"]}},"required":["template"]},"ArrangementsResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"arrangements":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"crowded":{"type":"boolean"},"fits":{"type":"boolean"},"fill":{"type":"number"},"image_url":{"type":"string"},"svg_url":{"type":"string"}},"required":["id","name","note","crowded","fits","fill","image_url","svg_url"]}}},"required":["arrangements"]},"CreateFeedRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"url":{"type":"string","format":"uri"},"key_column":{"type":"string","maxLength":80},"form_id":{"type":"string"},"layout_id":{"type":"string"},"templates":{"maxItems":20,"type":"array","items":{"type":"string"}},"style":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","maxLength":400}},"interval_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"webhook_url":{"type":"string","format":"uri"},"approval":{"type":"string","enum":["auto","manual"]}},"required":["url"]},"PatchFeedRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","maxLength":120},"interval_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"webhook_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"string","const":""}]},"state":{"type":"string","enum":["active","paused"]},"templates":{"maxItems":20,"type":"array","items":{"type":"string"}},"style":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","maxLength":400}},"approval":{"type":"string","enum":["auto","manual"]}}},"Feed":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"},"key_column":{"type":"string"},"form_id":{"anyOf":[{"type":"string"},{"type":"null"}]},"templates":{"type":"array","items":{"type":"string"}},"style":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"values":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"interval_minutes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"webhook_url":{"type":"string"},"state":{"type":"string","enum":["active","paused","failing","retired"]},"state_note":{"type":"string"},"approval":{"type":"string","enum":["auto","manual"]},"failures":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"next_check_at":{"type":"string"},"last_check_at":{"anyOf":[{"type":"string"},{"type":"null"}]},"created_at":{"type":"string"},"rows":{"type":"object","properties":{"active":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"retired":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["active","retired"]},"last_check":{"type":"object","properties":{"id":{"type":"string"},"feed_id":{"type":"string"},"at":{"type":"string"},"status":{"type":"string","enum":["ok","unchanged","failed","paused","approved","override"]},"added":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"changed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"retired":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unchanged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rows":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"change":{"type":"string","enum":["added","changed","retired","approved","override"]},"fields":{"type":"array","items":{"type":"string"}},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"pending":{"type":"boolean","const":true}},"required":["key","change"]}},"rows_truncated":{"type":"boolean","const":true},"error":{"type":"string"},"webhook_status":{"type":"string"}},"required":["id","feed_id","at","status","added","changed","retired","unchanged","charged_cents","rows"]},"monthly_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id","name","url","key_column","form_id","templates","style","values","interval_minutes","webhook_url","state","state_note","approval","failures","next_check_at","last_check_at","created_at","monthly_cents"]},"FeedChanges":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"feed_id":{"type":"string"},"at":{"type":"string"},"status":{"type":"string","enum":["ok","unchanged","failed","paused","approved","override"]},"added":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"changed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"retired":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"unchanged":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"charged_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"rows":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"change":{"type":"string","enum":["added","changed","retired","approved","override"]},"fields":{"type":"array","items":{"type":"string"}},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"pending":{"type":"boolean","const":true}},"required":["key","change"]}},"rows_truncated":{"type":"boolean","const":true},"error":{"type":"string"},"webhook_status":{"type":"string"}},"required":["id","feed_id","at","status","added","changed","retired","unchanged","charged_cents","rows"]},"FeedRowChange":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"key":{"type":"string"},"change":{"type":"string","enum":["added","changed","retired","approved","override"]},"fields":{"type":"array","items":{"type":"string"}},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"pending":{"type":"boolean","const":true}},"required":["key","change"]},"BuiltinFormsResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"forms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["property","product"]},"form":{"type":"object","properties":{"name":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"source_key":{"type":"string"},"label":{"type":"string"},"role":{"type":"string"},"hint":{"type":"string"},"required":{"type":"boolean"}},"required":["source_key","label","role","hint","required"]}}},"required":["name","fields"]}},"required":["id","form"]}}},"required":["forms"]},"LayoutDeriveResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"unmet":{"type":"array","items":{"type":"string"}},"note":{"type":"string"},"source":{"type":"string","enum":["agent","default"]},"provider":{"type":"string"},"read_from":{"type":"string","enum":["description","reference","sketch"]},"changed":{"type":"array","items":{"type":"object","properties":{"axis":{"type":"string"},"from":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"to":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"said":{"type":"string"}},"required":["axis","from","to","said"]}},"preview":{"type":"object","properties":{"uid":{"type":"string"},"template":{"type":"string"},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["pending","completed","failed"]},"image_url":{"type":"string"},"svg_url":{"type":"string"},"modifications":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"text":{"type":"string"},"image_url":{"type":"string"},"color":{"type":"string"}},"required":["name"]}},"fit":{"type":"object","properties":{"step":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fits":{"type":"boolean"},"truncated":{"type":"boolean"},"fill":{"type":"number"},"note":{"type":"string"}},"required":["step","fits","truncated","fill","note"]},"render_ms":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created_at":{"type":"string"}},"required":["uid","template","width","height","image_url","svg_url"]},"previews":{"type":"array","items":{"type":"object","properties":{"uid":{"type":"string"},"template":{"type":"string"},"width":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"height":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["pending","completed","failed"]},"image_url":{"type":"string"},"svg_url":{"type":"string"},"modifications":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"text":{"type":"string"},"image_url":{"type":"string"},"color":{"type":"string"}},"required":["name"]}},"fit":{"type":"object","properties":{"step":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"fits":{"type":"boolean"},"truncated":{"type":"boolean"},"fill":{"type":"number"},"note":{"type":"string"}},"required":["step","fits","truncated","fill","note"]},"render_ms":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created_at":{"type":"string"}},"required":["uid","template","width","height","image_url","svg_url"]}},"usage":{"type":"object","properties":{"month":{"type":"string"},"ingests":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"renders":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"balance_cents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"balance_eur":{"type":"number"},"next_ingest_cents":{"type":"object","properties":{"ai":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"data":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["ai","data"]},"model_tokens":{"type":"object","properties":{"input":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"output":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["input","output"]}},"required":["month","ingests","renders","balance_cents","balance_eur","next_ingest_cents","model_tokens"]}},"required":["layout","unmet","note","source","provider"]},"LayoutRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":64},"name":{"type":"string","minLength":1,"maxLength":80},"layout":{"type":"object","properties":{"photo":{"type":"string","enum":["full","band-top","column-left","column-right","inset","none"],"description":"Where the photograph sits: filling the frame, as a band across the top, as a column on one side, in the middle between the text above and below, or not at all"},"photo_share":{"default":0.5,"type":"number","minimum":0.3,"maximum":0.75},"text_on":{"type":"string","enum":["photo","panel"],"description":"Whether the text sits on the photograph under a scrim, or on a solid area"},"text_at":{"type":"string","enum":["top","center","bottom","spread"],"description":"Where the text sits in its area: top, center, bottom, or spread over the whole height"},"align":{"default":"left","type":"string","enum":["left","center"]},"badge_at":{"type":"string","enum":["corner","text"],"description":"The badge in a corner of the picture, or above the headline"},"facts":{"default":"beside-price","type":"string","enum":["beside-price","below-price","off"]},"cta":{"default":false,"description":"Whether a call-to-action button is drawn","type":"boolean"},"footer":{"default":true,"description":"Whether the sender line, portrait and mark are drawn","type":"boolean"},"panel":{"default":"ink","description":"Fill of the text surface: the neutral ink, or the brand colour","type":"string","enum":["ink","brand"]},"emphasis":{"default":"balanced","description":"What dominates: headline and price balanced, the price large, or the headline large","type":"string","enum":["balanced","price","headline"]},"scale":{"default":1,"type":"number","minimum":0.8,"maximum":1.25}},"required":["photo","text_on","text_at","badge_at"]},"description":{"type":"string","maxLength":500}},"required":["name","layout"]}}},"paths":{"/v1/stripe/webhook":{"post":{"summary":"Stripe calls this; not for clients.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"A Stripe event, signed."}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Acknowledgement."}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[]}},"/v1/accounts":{"post":{"summary":"Provision an account (x-provision-token).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"email, company"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}},"security":[]}},"/v1/account":{"get":{"summary":"The account: key, public id, signing secret, usage, pricing.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/account/signing-secret":{"post":{"summary":"Rotate the signing secret for signed image addresses.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SigningSecretResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/topup":{"post":{"summary":"Buy credit: answers a Stripe checkout page.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"amount_cents"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"url to pay on"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/usage":{"get":{"summary":"Every metered event, in order.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageDetailResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/imports/plan":{"post":{"summary":"What an import of a CSV would do: mapping, rows, first row, cost, affordable.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"csv, templates?, values?, form_id? (or a built-in name), form?"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"columns, rows, cost_cents, templates, preview, form?, shop?, balance_cents, affordable, short_by_cents?"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/imports":{"post":{"summary":"Run an import: one render job per row and format. Idempotency-Key honoured.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"csv, templates?, values?, style?, form_id?"}}}},"responses":{"202":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"run_id, rows, jobs, templates, cost_cents, form?"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/imports/{runId}/result":{"get":{"summary":"The result file: the rows with one URL column per format, as CSV.","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"text/csv":{"schema":{"type":"object","description":"text/csv"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/jobs":{"post":{"summary":"Submit asynchronous work.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobRequest"}}}},"responses":{"202":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/jobs/{id}":{"get":{"summary":"One job.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/runs/{runId}":{"get":{"summary":"Progress of a run: pending, running, completed, failed, total.","parameters":[{"name":"runId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunProgressResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/form-links":{"post":{"summary":"Mint a form link: a page without a login that renders the standard formats.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"name?, form_id? (or a built-in name), templates?, values?, style?, daily_limit?"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"token, url, form_id, templates, daily_limit, created_at"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"get":{"summary":"The account’s form links.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"links[]"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/form-links/{token}":{"delete":{"summary":"Revoke a form link.","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"none"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/templates":{"get":{"summary":"The formats: uid, name, size, pack, standard, fields.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"array of formats"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/forms":{"post":{"summary":"Save a form: the caller’s fields with roles. Deterministic, no model call.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"id?, name, fields[]"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"id, version, form, notes?"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"get":{"summary":"Saved forms.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"array of saved forms"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/forms/derive":{"post":{"summary":"Propose a form from a description (model call).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"description"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"form, notes?, source"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/forms/suggest":{"post":{"summary":"Propose a form from sample data.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"data"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"form, notes?"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/forms/builtin":{"get":{"summary":"The two built-in forms, property and product, with their fields.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuiltinFormsResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/forms/{id}":{"get":{"summary":"One saved form, or a built-in by name.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"id, version, form"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"delete":{"summary":"Delete a saved form.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"none"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/brand/derive":{"post":{"summary":"Read palettes off a website.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"url"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/styles/derive":{"post":{"summary":"Read a style off a reference image, with its neighbours rendered.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"image (data URL), template?"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StyleDeriveResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/images":{"post":{"summary":"Render one picture: template plus data, or a form with values. Free.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImageRequest"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratedImage"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"get":{"summary":"Recent pictures of the account (page, limit).","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"images":{"type":"array","items":{"$ref":"#/components/schemas/GeneratedImage"}}},"required":["images"]}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/ingest":{"post":{"summary":"Extract a record from a URL, text, files or structured data; with a form, into its fields.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"url | text | files | data; form? (id, built-in name or definition), form_id?"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"source, fields | values, unmapped?, usage"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/import":{"post":{"summary":"Extract from a URL (original shape).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"url"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"source, fields, usage"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds":{"post":{"summary":"Connect an inventory: fetched once now, checked on an interval after.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFeedRequest"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"feed, plan"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"get":{"summary":"The account’s feeds.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"feeds":{"type":"array","items":{"$ref":"#/components/schemas/Feed"}}},"required":["feeds"]}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds/{id}":{"get":{"summary":"One feed with its last check.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Feed"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"patch":{"summary":"Change name, interval, webhook, state, templates, style, values, approval.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchFeedRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Feed"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"delete":{"summary":"Retire a feed; its pictures stay.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"retired, retired_rows"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds/{id}/changes":{"get":{"summary":"The changes documents, newest first (since, limit).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"changes":{"type":"array","items":{"$ref":"#/components/schemas/FeedChanges"}}},"required":["changes"]}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds/{id}/pending":{"get":{"summary":"Rows waiting for approval on a manual feed, with their pictures.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"rows[]"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds/{id}/approve":{"post":{"summary":"Approve waiting rows: all, or the keys named.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"keys?"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedChanges"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds/{id}/rows/{key}/overrides":{"put":{"summary":"Fields that win over the source for one row.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"field → value"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"key, overrides, data, renders, pending"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"delete":{"summary":"Clear a row’s overrides.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"key, overrides, data, renders, pending"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds/{id}/rows":{"get":{"summary":"The rows with their pictures and stable addresses.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"rows[]"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/feeds/{id}/check":{"post":{"summary":"Check now.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"scheduled, state"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/layouts/derive":{"post":{"summary":"A sentence in German, a reference graphic or a sketch becomes a layout description, with a preview and what it could not honour.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"description | files[] (+ sketch?); to edit an agreed description: description + layout or layout_id; templates?, data?, style?"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayoutDeriveResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/layouts":{"post":{"summary":"Keep a layout under a name, so a description becomes an id every render can name.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LayoutRequest"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"id, name, layout, description, version, created_at"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"get":{"summary":"The account’s saved layouts.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"array of saved layouts"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/layouts/{id}":{"get":{"summary":"One saved layout.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"id, name, layout, description, version, created_at"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"delete":{"summary":"Delete a saved layout.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"none"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/arrangements":{"post":{"summary":"The same record in every arrangement, measured.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArrangementsRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArrangementsResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/angles":{"post":{"summary":"Three strategies of copy for one record; facts never change.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnglesRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnglesResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/presets":{"get":{"summary":"Saved presets (Vorlagen).","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"presets":{"type":"array","items":{"$ref":"#/components/schemas/Preset"}}},"required":["presets"]}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"post":{"summary":"Save a preset.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePresetRequest"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preset"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/presets/{id}":{"get":{"summary":"One preset.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preset"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"patch":{"summary":"Change a preset.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePresetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preset"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}},"delete":{"summary":"Delete a preset.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"none"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/presets/{id}/adjust":{"post":{"summary":"Adjust a preset by instruction (model call).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdjustPresetRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdjustPresetResponse"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/references/{uid}":{"get":{"summary":"A stored reference image.","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"image/*":{"schema":{"type":"object","description":"image"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}},"/v1/images/{uid}":{"get":{"summary":"One picture’s record.","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneratedImage"}}}},"4XX":{"description":"Refused; the body says why.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}}}}}}}}