{"openapi":"3.1.2","jsonSchemaDialect":"https://spec.openapis.org/oas/3.1/dialect/base","info":{"title":"MIAMI WEB AI Public API","summary":"Read-only studio information for software and AI agents.","description":"Public, unauthenticated access to MIAMI WEB AI services, published pricing examples, and agent guidance. These endpoints do not submit forms or create a Scope.\n\nData consistency: every payload carries meta.dataVersion, the date the published dataset last changed. The website pages, this REST API, the MCP server, and llms.txt are all generated from the same source, so a given dataVersion means the same numbers everywhere.\n\nCaching: responses are public and cacheable (Cache-Control: public, max-age=300 with a longer CDN window; a deploy refreshes the CDN copy). Every 200 carries a strong ETag; send If-None-Match to receive 304 when the body is unchanged.\n\nCORS: every response sends Access-Control-Allow-Origin: *. Preflight OPTIONS answers 204 with Allow: GET, HEAD, OPTIONS.","version":"1.1.0","contact":{"name":"MIAMI WEB AI","url":"https://miamiweb.ai/developers","email":"hello@miamiweb.ai"},"license":{"name":"MIAMI WEB AI Terms of Service","url":"https://miamiweb.ai/terms"}},"servers":[{"url":"https://miamiweb.ai","description":"Production"}],"security":[],"tags":[{"name":"Studio information","description":"Read-only facts and agent guidance about MIAMI WEB AI."}],"paths":{"/api/studio":{"get":{"operationId":"getStudioInformation","summary":"Get a selected studio information section","description":"Returns the overview by default, or services, pricing, or agent guidance when section is supplied.","tags":["Studio information"],"parameters":[{"name":"section","in":"query","required":false,"description":"The information section to return. Defaults to overview.","schema":{"type":"string","enum":["overview","services","pricing","agent-guide"],"default":"overview"}}],"responses":{"200":{"description":"Successful response","headers":{"ETag":{"description":"Strong validator over the response body. Send it back in If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}},"Cache-Control":{"description":"Public caching policy. Responses may be served from a shared cache until a deploy or expiry refreshes them.","schema":{"type":"string"}},"Access-Control-Allow-Origin":{"description":"Always *. Any origin may read these endpoints.","schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/StudioOverview"},{"$ref":"#/components/schemas/ServicesResponse"},{"$ref":"#/components/schemas/PricingResponse"},{"$ref":"#/components/schemas/AgentGuideResponse"}]}}}},"304":{"description":"The cached copy identified by If-None-Match is still current. No body."},"400":{"description":"The request contains an unsupported section value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"The requested public API operation is not available.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"The public API operation does not support this method.","headers":{"Allow":{"description":"Methods supported by this endpoint.","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"default":{"description":"Structured API error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/studio/services":{"get":{"operationId":"listStudioServices","summary":"List services and entry prices","description":"Lists each service, its canonical page, its published starting price, and the matching example-build identifiers.","tags":["Studio information"],"responses":{"200":{"description":"Successful response","headers":{"ETag":{"description":"Strong validator over the response body. Send it back in If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}},"Cache-Control":{"description":"Public caching policy. Responses may be served from a shared cache until a deploy or expiry refreshes them.","schema":{"type":"string"}},"Access-Control-Allow-Origin":{"description":"Always *. Any origin may read these endpoints.","schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicesResponse"}}}},"304":{"description":"The cached copy identified by If-None-Match is still current. No body."},"404":{"description":"The requested public API operation is not available.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"The public API operation does not support this method.","headers":{"Allow":{"description":"Methods supported by this endpoint.","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"default":{"description":"Structured API error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/studio/pricing":{"get":{"operationId":"getPublishedStudioPricing","summary":"Get published Scope, Build, and Operate pricing","description":"Returns the free Scope terms, every published example-build range, monthly Operate tiers, and founding terms.","tags":["Studio information"],"responses":{"200":{"description":"Successful response","headers":{"ETag":{"description":"Strong validator over the response body. Send it back in If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}},"Cache-Control":{"description":"Public caching policy. Responses may be served from a shared cache until a deploy or expiry refreshes them.","schema":{"type":"string"}},"Access-Control-Allow-Origin":{"description":"Always *. Any origin may read these endpoints.","schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PricingResponse"}}}},"304":{"description":"The cached copy identified by If-None-Match is still current. No body."},"404":{"description":"The requested public API operation is not available.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"The public API operation does not support this method.","headers":{"Allow":{"description":"Methods supported by this endpoint.","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"default":{"description":"Structured API error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/studio/agent-guide":{"get":{"operationId":"getStudioAgentGuide","summary":"Get when-to-use and handoff guidance","description":"Tells an agent when MIAMI WEB AI fits, how to read the public interfaces, and when to hand a person to the Application or contact page.","tags":["Studio information"],"responses":{"200":{"description":"Successful response","headers":{"ETag":{"description":"Strong validator over the response body. Send it back in If-None-Match to get 304 when nothing changed.","schema":{"type":"string"}},"Cache-Control":{"description":"Public caching policy. Responses may be served from a shared cache until a deploy or expiry refreshes them.","schema":{"type":"string"}},"Access-Control-Allow-Origin":{"description":"Always *. Any origin may read these endpoints.","schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentGuideResponse"}}}},"304":{"description":"The cached copy identified by If-None-Match is still current. No body."},"404":{"description":"The requested public API operation is not available.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"The public API operation does not support this method.","headers":{"Allow":{"description":"Methods supported by this endpoint.","schema":{"type":"string","const":"GET, HEAD, OPTIONS"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"default":{"description":"Structured API error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"Meta":{"type":"object","additionalProperties":false,"required":["dataVersion"],"properties":{"dataVersion":{"type":"string","format":"date","description":"The date the published dataset (services, prices, terms) last changed. Identical across every public interface serving the same data.","examples":["2026-08-27"]}}},"StudioOverview":{"type":"object","additionalProperties":false,"required":["meta","name","description","url","location","contact","publicInterfaces"],"properties":{"meta":{"$ref":"#/components/schemas/Meta"},"name":{"type":"string","examples":["MIAMI WEB AI"]},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"location":{"type":"object","additionalProperties":false,"required":["streetAddress","city","region","postalCode","country"],"properties":{"streetAddress":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"postalCode":{"type":"string"},"country":{"type":"string"}}},"contact":{"type":"object","additionalProperties":false,"required":["email","phone"],"properties":{"email":{"type":"string","format":"email"},"phone":{"type":"string"}}},"publicInterfaces":{"type":"object","additionalProperties":false,"required":["documentation","openapi","mcp","siteToolsInventory","agentInstructions","sitemap"],"properties":{"documentation":{"type":"string","format":"uri"},"openapi":{"type":"string","format":"uri"},"mcp":{"type":"string","format":"uri"},"siteToolsInventory":{"type":"string","format":"uri"},"agentInstructions":{"type":"string","format":"uri"},"sitemap":{"type":"string","format":"uri"}}}}},"ServicesResponse":{"type":"object","additionalProperties":false,"required":["meta","services"],"properties":{"meta":{"$ref":"#/components/schemas/Meta"},"services":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","name","description","url","startingPriceUsd","exampleBuildIds"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"startingPriceUsd":{"type":"integer","minimum":0},"exampleBuildIds":{"type":"array","minItems":1,"items":{"type":"string"}}}}}}},"PricingResponse":{"type":"object","additionalProperties":false,"required":["meta","currency","scope","builds","operate","foundingTerms","afterLaunch"],"properties":{"meta":{"$ref":"#/components/schemas/Meta"},"currency":{"type":"string","const":"USD"},"scope":{"type":"object","additionalProperties":false,"required":["name","priceUsd","deliveryBusinessDays","headline","deliverables","steps"],"properties":{"name":{"type":"string"},"priceUsd":{"type":"integer","minimum":0},"deliveryBusinessDays":{"type":"integer","minimum":1},"headline":{"type":"string"},"deliverables":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["title","body"],"properties":{"title":{"type":"string"},"body":{"type":"string"}}}},"steps":{"type":"array","items":{"type":"string"}}}},"builds":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/ExampleBuild"}},"operate":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/OperateTier"}},"foundingTerms":{"type":"object","additionalProperties":false,"required":["totalSpots","smallBuildDiscountPercentBySpot","productBuildDiscountPercent","trade"],"properties":{"totalSpots":{"type":"integer","minimum":1},"smallBuildDiscountPercentBySpot":{"type":"array","items":{"type":"integer","minimum":0,"maximum":100}},"productBuildDiscountPercent":{"type":"integer","minimum":0,"maximum":100},"trade":{"type":"string"}}},"afterLaunch":{"type":"string"}}},"ExampleBuild":{"type":"object","additionalProperties":false,"required":["id","category","name","includes","excludes","hours","calendar","price","operateTier","buildKind"],"properties":{"id":{"type":"string"},"category":{"type":"string","enum":["site","web-app","mobile","agent","automation"]},"name":{"type":"string"},"includes":{"type":"array","items":{"type":"string"}},"excludes":{"type":"array","items":{"type":"string"}},"hours":{"type":"object","additionalProperties":false,"required":["minimum","maximum","display","note"],"properties":{"minimum":{"type":"integer","minimum":0},"maximum":{"type":["integer","null"],"minimum":0},"display":{"type":"string"},"note":{"type":["string","null"]}}},"calendar":{"type":"string"},"price":{"type":"object","additionalProperties":false,"required":["currency","minimum","maximum","display","note"],"properties":{"currency":{"type":"string","const":"USD"},"minimum":{"type":"integer","minimum":0},"maximum":{"type":["integer","null"],"minimum":0},"display":{"type":"string"},"note":{"type":"string"}}},"operateTier":{"type":"string","enum":["site","agent","web-app","mobile-or-platform"]},"buildKind":{"type":"string","enum":["small","product"]}}},"OperateTier":{"type":"object","additionalProperties":false,"required":["id","name","monthlyPriceUsd","improvementHours","responseTime","covers"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"monthlyPriceUsd":{"type":"integer","minimum":0},"improvementHours":{"type":"object","additionalProperties":false,"required":["low","high"],"properties":{"low":{"type":"integer","minimum":0},"high":{"type":"integer","minimum":0}}},"responseTime":{"type":"string"},"covers":{"type":"string"}}},"AgentGuideResponse":{"type":"object","additionalProperties":false,"required":["meta","whenToUse","howToUse","boundaries","nextSteps"],"properties":{"meta":{"$ref":"#/components/schemas/Meta"},"whenToUse":{"type":"array","items":{"type":"string"}},"howToUse":{"type":"array","items":{"type":"string"}},"boundaries":{"type":"array","items":{"type":"string"}},"nextSteps":{"type":"object","additionalProperties":false,"required":["startScope","readScope","contact"],"properties":{"startScope":{"type":"string","format":"uri"},"readScope":{"type":"string","format":"uri"},"contact":{"type":"string","format":"uri"}}}}},"ErrorResponse":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","resolution"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"}}}}}}},"externalDocs":{"description":"MIAMI WEB AI developer resources","url":"https://miamiweb.ai/developers"}}