{"openapi":"3.1.0","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"momu public information API","version":"1.0.0","description":"Public, free, read-only information about the momu software and AI studio. Use it to understand the studio, evaluate a fit for custom software or automation, and find contact channels. No authentication, private data, AI execution, write operations, bookings, payments, webhooks or subscriptions. Responses are complete and bounded; pagination and Idempotency-Key do not apply. Project pricing is quoted individually, not available as fixed plans. The /api/v1 contract is versioned: additive fields may appear, breaking changes require a new major URL. No deprecation or sunset is currently scheduled. API and MCP share a best-effort per-instance limit of 120 requests per IP per minute; observe RateLimit and Retry-After headers.","contact":{"name":"momu","email":"contacto@momu.co","url":"https://momu.co/contact"}},"servers":[{"url":"https://momu.co","description":"Public production website"}],"security":[],"tags":[{"name":"Public information","description":"Published studio information. No customer records or write operations."}],"externalDocs":{"url":"https://momu.co/en/docs","description":"Usage, errors, rate limits, versioning, Markdown and MCP."},"paths":{"/api/v1/company":{"get":{"operationId":"getCompany","summary":"Get the momu studio profile","description":"Use when someone asks what momu does, who it is for, how it works, or how project investment is defined. Returns the published studio profile, services, contact details and illustration disclaimer. This does not issue a quote.","tags":["Public information"],"security":[],"parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the published information. Supply at most once; defaults to Spanish.","schema":{"type":"string","enum":["es","en"],"default":"es"}}],"responses":{"200":{"description":"Complete public information; no pagination or authentication required.","headers":{"RateLimit":{"description":"Current per-instance request quota and seconds until reset.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Best-effort limit: 120 API and MCP requests per IP per minute per server instance.","schema":{"type":"string"}},"Content-Language":{"description":"Language of the returned information.","schema":{"type":"string","enum":["es","en"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Company"}}}},"400":{"description":"Invalid or repeated language parameter.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Unknown API route. Discover routes through this OpenAPI document.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Unsupported method. Only read operations are available.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit reached. Honor the Retry-After header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/services":{"get":{"operationId":"listServices","summary":"List the five service categories","description":"Use when evaluating momu for custom software, AI agents, document extraction, automation or integrations. Returns the complete list and clarifies that website examples are illustrative, not live products or client case studies.","tags":["Public information"],"security":[],"parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the published information. Supply at most once; defaults to Spanish.","schema":{"type":"string","enum":["es","en"],"default":"es"}}],"responses":{"200":{"description":"Complete public information; no pagination or authentication required.","headers":{"RateLimit":{"description":"Current per-instance request quota and seconds until reset.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Best-effort limit: 120 API and MCP requests per IP per minute per server instance.","schema":{"type":"string"}},"Content-Language":{"description":"Language of the returned information.","schema":{"type":"string","enum":["es","en"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Services"}}}},"400":{"description":"Invalid or repeated language parameter.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Unknown API route. Discover routes through this OpenAPI document.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Unsupported method. Only read operations are available.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit reached. Honor the Retry-After header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/contact":{"get":{"operationId":"getContact","summary":"Get the studio's public contact channels","description":"Use when someone wants to email the studio, open WhatsApp or book a 20-minute introductory conversation. This operation only returns links; it does not send a message, book an appointment or make a commitment.","tags":["Public information"],"security":[],"parameters":[{"name":"lang","in":"query","required":false,"description":"Language of the published information. Supply at most once; defaults to Spanish.","schema":{"type":"string","enum":["es","en"],"default":"es"}}],"responses":{"200":{"description":"Complete public information; no pagination or authentication required.","headers":{"RateLimit":{"description":"Current per-instance request quota and seconds until reset.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Best-effort limit: 120 API and MCP requests per IP per minute per server instance.","schema":{"type":"string"}},"Content-Language":{"description":"Language of the returned information.","schema":{"type":"string","enum":["es","en"]}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}},"400":{"description":"Invalid or repeated language parameter.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Unknown API route. Discover routes through this OpenAPI document.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"405":{"description":"Unsupported method. Only read operations are available.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limit reached. Honor the Retry-After header.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"Company":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","description":"Studio name."},"type":{"type":"string","const":"Organization","description":"The studio is an organization, not a self-service software product."},"url":{"type":"string","format":"uri","description":"An absolute public URL."},"description":{"type":"string","description":"Localized summary of what the studio does."},"language":{"type":"string","enum":["es","en"],"description":"Language of the public information: Spanish or English."},"country":{"type":"string","const":"MX","description":"Published country, Mexico; no street address is published."},"availableLanguages":{"type":"array","items":{"type":"string","enum":["es","en"],"description":"Language of the public information: Spanish or English."},"description":"Languages available on the website."},"audience":{"type":"string","description":"The teams and problems this studio is a fit for."},"approach":{"maxItems":4,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Name of the working stage."},"body":{"type":"string","description":"What happens during this stage."}},"required":["title","body"],"additionalProperties":false},"description":"The studio's four-stage approach to a project."},"pricing":{"type":"string","description":"How project investment is scoped; this is not a quote or a fixed price."},"services":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["inventory","agents","documents","automation","integrations"],"description":"Stable service category identifier, not a product SKU."},"name":{"type":"string","description":"Localized name of the service category."},"description":{"type":"string","description":"What this category of custom work can address."},"url":{"type":"string","format":"uri","description":"An absolute public URL."}},"required":["id","name","description","url"],"additionalProperties":false,"description":"A category of custom project work offered by momu."},"description":"Complete service category list."},"contact":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"Public studio email address."},"telephone":{"type":"string","pattern":"^\\+[1-9]\\d{6,14}$","description":"Public contact telephone in international format."},"whatsapp":{"type":"string","format":"uri","description":"An absolute public URL."},"calendar":{"type":"string","format":"uri","description":"An absolute public URL."},"meetingDurationMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Length in minutes of the introductory calendar appointment."},"url":{"type":"string","format":"uri","description":"An absolute public URL."},"availableLanguages":{"type":"array","items":{"type":"string","enum":["es","en"],"description":"Language of the public information: Spanish or English."},"description":"Languages published by the studio."}},"required":["email","telephone","whatsapp","calendar","meetingDurationMinutes","url","availableLanguages"],"additionalProperties":false,"description":"Public contact channels. Reading these does not send a message or reserve an appointment."},"disclaimer":{"type":"string","description":"Scope and limitations of the website's illustrative examples."},"updatedAt":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$","description":"Date of the published content update, YYYY-MM-DD."}},"required":["name","type","url","description","language","country","availableLanguages","audience","approach","pricing","services","contact","disclaimer","updatedAt"],"additionalProperties":false,"description":"Public company profile, sourced from the same content as the human-readable website."},"Services":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"language":{"type":"string","enum":["es","en"],"description":"Language of the public information: Spanish or English."},"services":{"maxItems":5,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["inventory","agents","documents","automation","integrations"],"description":"Stable service category identifier, not a product SKU."},"name":{"type":"string","description":"Localized name of the service category."},"description":{"type":"string","description":"What this category of custom work can address."},"url":{"type":"string","format":"uri","description":"An absolute public URL."}},"required":["id","name","description","url"],"additionalProperties":false,"description":"A category of custom project work offered by momu."},"description":"Complete list of service categories; no pagination is needed."},"disclaimer":{"type":"string","description":"Clarifies that website examples are illustrative, not customer case studies or ready-made products."}},"required":["language","services","disclaimer"],"additionalProperties":false,"description":"momu's public service categories and the scope of its illustrative examples."},"Contact":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"Public studio email address."},"telephone":{"type":"string","pattern":"^\\+[1-9]\\d{6,14}$","description":"Public contact telephone in international format."},"whatsapp":{"type":"string","format":"uri","description":"An absolute public URL."},"calendar":{"type":"string","format":"uri","description":"An absolute public URL."},"meetingDurationMinutes":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Length in minutes of the introductory calendar appointment."},"url":{"type":"string","format":"uri","description":"An absolute public URL."},"availableLanguages":{"type":"array","items":{"type":"string","enum":["es","en"],"description":"Language of the public information: Spanish or English."},"description":"Languages published by the studio."}},"required":["email","telephone","whatsapp","calendar","meetingDurationMinutes","url","availableLanguages"],"additionalProperties":false,"description":"Public contact channels. Reading these does not send a message or reserve an appointment."},"Problem":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"type":{"type":"string","description":"Problem type URI, normally about:blank."},"title":{"type":"string","description":"Short summary of the HTTP error."},"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"HTTP status code of this response."},"code":{"type":"string","description":"Stable machine-readable error code."},"detail":{"type":"string","description":"Explanation specific to this request."},"instance":{"type":"string","description":"Request path associated with this problem."},"resolution":{"type":"string","description":"Action the client can take to recover."}},"required":["type","title","status","code","detail","instance","resolution"],"additionalProperties":false,"description":"RFC 9457 problem details with a stable code and a recovery hint."}}}}