{
  "openapi": "3.1.1",
  "info": {
    "title": "AutoHous — Site institucional",
    "version": "1.0.0",
    "description": "Existing endpoints of the AutoHous institutional website. This is not a public API for AutoFollow CRM or the other products. Forms require human interaction and Turnstile. The blog webhook is reserved for signed Sanity deliveries; résumé URLs are private capability links shared with the team.",
    "contact": {
      "name": "AutoHous",
      "url": "https://autohous.com.br/contato",
      "email": "contato@autohous.com.br"
    }
  },
  "servers": [
    {
      "url": "https://autohous.com.br",
      "description": "Canonical production origin."
    }
  ],
  "tags": [
    {
      "name": "Discovery",
      "description": "Read-only website discovery."
    },
    {
      "name": "Forms",
      "description": "Human-initiated submissions."
    },
    {
      "name": "Blog",
      "description": "Signed Sanity integration; not a public publishing API."
    },
    {
      "name": "Careers",
      "description": "Private résumé download links."
    }
  ],
  "paths": {
    "/": {
      "get": {
        "operationId": "getAutohousHomepage",
        "tags": [
          "Discovery"
        ],
        "summary": "Read the AutoHous homepage",
        "description": "Returns prerendered HTML by default or Markdown when preferred by Accept. Honors quality factors, q=0 and wildcards. Both variants set Vary: Accept and Cache-Control: no-store.",
        "parameters": [
          {
            "name": "Accept",
            "in": "header",
            "description": "Preferred document representation.",
            "schema": {
              "type": "string",
              "default": "text/html"
            },
            "example": "text/markdown"
          }
        ],
        "responses": {
          "200": {
            "description": "Homepage in the requested representation.",
            "headers": {
              "Vary": {
                "description": "Includes Accept.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "RFC 8288 links to OpenAPI, the API catalog and access documentation.",
                "schema": {
                  "type": "string"
                },
                "example": "</openapi.json>; rel=\"service-desc\"; type=\"application/json\", </.well-known/api-catalog>; rel=\"api-catalog\"; type=\"application/linkset+json\", </docs/api.md>; rel=\"service-doc\"; type=\"text/markdown\""
              }
            },
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "description": "Neither HTML nor Markdown is acceptable. code: not_acceptable.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/api-catalog": {
      "get": {
        "operationId": "getAutohousApiCatalog",
        "tags": [
          "Discovery"
        ],
        "summary": "Discover the institutional website interfaces",
        "description": "Public RFC 9727 API catalog in RFC 9264 Linkset format. Lists public website discovery and human-initiated forms. Reserved webhooks and private résumé links are not catalog items. GET and HEAD require no authentication.",
        "responses": {
          "200": {
            "description": "Self-contained API catalog with absolute links.",
            "headers": {
              "Link": {
                "description": "Advertises this catalog on GET and HEAD.",
                "schema": {
                  "type": "string"
                },
                "example": "</.well-known/api-catalog>; rel=\"api-catalog\"; type=\"application/linkset+json\""
              }
            },
            "content": {
              "application/linkset+json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "linkset"
                  ],
                  "properties": {
                    "linkset": {
                      "type": "array",
                      "minItems": 1,
                      "items": {
                        "type": "object",
                        "required": [
                          "anchor"
                        ],
                        "properties": {
                          "anchor": {
                            "type": "string",
                            "format": "uri"
                          }
                        },
                        "additionalProperties": {
                          "type": "array",
                          "minItems": 1,
                          "items": {
                            "type": "object",
                            "required": [
                              "href"
                            ],
                            "properties": {
                              "href": {
                                "type": "string",
                                "format": "uri"
                              },
                              "type": {
                                "type": "string"
                              },
                              "title": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/docs/api.md": {
      "get": {
        "operationId": "getAutohousApiDocumentation",
        "tags": [
          "Discovery"
        ],
        "summary": "Read access requirements and integration boundaries",
        "description": "Public guide to anonymous reading, human-initiated forms, the reserved Sanity webhook and private résumé links. No agent registration or OAuth flow is offered.",
        "responses": {
          "200": {
            "description": "Public Markdown documentation; no credentials required.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/formulario": {
      "post": {
        "operationId": "submitAutohousWebsiteForm",
        "tags": [
          "Forms"
        ],
        "summary": "Submit a website form",
        "description": "Requires human authorization, valid fields and a fresh Turnstile token from the site. Limit: five requests per minute per IP, including invalid submissions. RD Station, HubSpot and internal notification are attempted independently; success means at least one received the submission. Do not call this endpoint to test delivery against production.",
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "Agendamento de demonstração: Home",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-home-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "empresa"
                      },
                      "mensagem": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "mensagem"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Cadastro de novidades: rodapé",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "email"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-rodape-novidades",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Mensagem: página de contato",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "assunto"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-contato-mensagem",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "empresa"
                      },
                      "assunto": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "assunto"
                      },
                      "mensagem": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "mensagem"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Banco de talentos: carreira",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "cidade",
                      "area",
                      "nivel",
                      "curriculo"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-carreira-talentos",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "cidade": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "cidade"
                      },
                      "linkedin": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "linkedin"
                      },
                      "area": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "area"
                      },
                      "nivel": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nivel"
                      },
                      "mensagem": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "mensagem"
                      },
                      "curriculo": {
                        "description": "PDF, DOC or DOCX résumé file, recognized by its byte signature; maximum 8 MiB (8388608 bytes). Only available with multipart/form-data.",
                        "contentMediaType": "application/octet-stream"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: FrontCar",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-frontcar-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Quantidade de lojas"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: AutoFollow",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-autofollow-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Tamanho do time de vendas"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: MotorHub",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-motorhub-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Sistemas em uso"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: AutoTalk",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-autotalk-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Canais de atendimento"
                      }
                    }
                  }
                ]
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "title": "Agendamento de demonstração: Home",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-home-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "empresa"
                      },
                      "mensagem": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "mensagem"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Cadastro de novidades: rodapé",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "email"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-rodape-novidades",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Mensagem: página de contato",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "assunto"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-contato-mensagem",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "empresa"
                      },
                      "assunto": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "assunto"
                      },
                      "mensagem": {
                        "type": "string",
                        "maxLength": 4000,
                        "description": "mensagem"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: FrontCar",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-frontcar-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Quantidade de lojas"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: AutoFollow",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-autofollow-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Tamanho do time de vendas"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: MotorHub",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-motorhub-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Sistemas em uso"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "title": "Demonstração: AutoTalk",
                    "required": [
                      "formulario",
                      "cf-turnstile-response",
                      "nome",
                      "email",
                      "whatsapp",
                      "empresa",
                      "perfil"
                    ],
                    "properties": {
                      "formulario": {
                        "type": "string",
                        "const": "site-autotalk-demonstracao",
                        "description": "Form identifier."
                      },
                      "cf-turnstile-response": {
                        "type": "string",
                        "minLength": 1,
                        "description": "Fresh Turnstile token obtained through human interaction on the site. Do not bypass verification."
                      },
                      "website": {
                        "type": "string",
                        "maxLength": 0,
                        "description": "Honeypot: leave empty or omit."
                      },
                      "pagina": {
                        "type": "string",
                        "format": "uri",
                        "maxLength": 300,
                        "description": "Origin page for attribution."
                      },
                      "nome": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "nome"
                      },
                      "email": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "format": "email",
                        "description": "email"
                      },
                      "whatsapp": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "whatsapp"
                      },
                      "empresa": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "empresa"
                      },
                      "perfil": {
                        "type": "string",
                        "maxLength": 4000,
                        "minLength": 1,
                        "description": "Canais de atendimento"
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Submission delivered to at least one destination. A filled honeypot also returns this without delivery.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid form data. code/reason: body, form, fields, file-size or file-type. fields lists invalid names when available.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "403": {
            "description": "Turnstile verification failed (code/reason: challenge), or cross-origin submission refused (code: forbidden).",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "405": {
            "description": "Only POST is allowed. code: method_not_allowed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "headers": {
              "Allow": {
                "schema": {
                  "type": "string",
                  "const": "POST"
                }
              }
            }
          },
          "429": {
            "description": "Five requests per minute exceeded. code/reason: rate.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Seconds before retrying.",
                "schema": {
                  "type": "integer",
                  "const": 60
                }
              }
            }
          },
          "500": {
            "description": "Unexpected processing failure. code/reason: unexpected.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "502": {
            "description": "No destination received the submission. code/reason: delivery.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/blog-publicado": {
      "post": {
        "operationId": "receiveSanityBlogWebhook",
        "tags": [
          "Blog"
        ],
        "summary": "Receive a signed Sanity blog event",
        "description": "Reserved integration. HMAC-SHA256 over <timestamp>.<raw-body>, encoded as unpadded base64url. sanity-webhook-signature has format t=<timestamp>,v1=<signature>. The shared secret is held by Sanity and the Worker. Draft schedule changes synchronize the scheduler; published events notify the editors. The rebuild is triggered by a separate Sanity webhook.",
        "security": [
          {
            "sanitySignature": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity document ID, including drafts. prefix for drafts."
                  },
                  "evento": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: evento."
                  },
                  "title": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: title."
                  },
                  "slug": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: slug."
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: description."
                  },
                  "author": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: author."
                  },
                  "pubDate": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: pubDate."
                  },
                  "categoria": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: categoria."
                  },
                  "capa": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: capa."
                  },
                  "capaAlt": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Sanity projection field: capaAlt."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Event accepted: notification sent, scheduling synchronized, or no post to announce.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Signed body is not a JSON object with string/null fields. code: invalid_body.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid webhook signature. code: invalid_signature.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "405": {
            "description": "Only POST is allowed. code: method_not_allowed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "headers": {
              "Allow": {
                "schema": {
                  "type": "string",
                  "const": "POST"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected processing failure. code: unexpected.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "502": {
            "description": "Scheduling or notification failed. code: scheduling_failed or notification_failed. Sanity should retry.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/curriculo/{id}": {
      "get": {
        "operationId": "downloadSubmittedResume",
        "tags": [
          "Careers"
        ],
        "summary": "Download a résumé using its private link",
        "description": "The UUID is an unguessable capability shared only with the team. There is no list or discovery endpoint. Do not enumerate IDs or share private links. A successful response forces download, disables caching and prohibits indexing.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Lowercase UUID from the private link.",
            "schema": {
              "type": "string",
              "format": "uuid",
              "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Résumé attachment.",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/pdf": {},
              "application/msword": {},
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {}
            }
          },
          "404": {
            "description": "Invalid or missing résumé. Existing download behavior is preserved.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "405": {
            "description": "Only GET and HEAD are allowed. code: method_not_allowed.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            },
            "headers": {
              "Allow": {
                "schema": {
                  "type": "string",
                  "const": "GET, HEAD"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Problem": {
        "type": "object",
        "required": [
          "type",
          "title",
          "status",
          "code",
          "detail",
          "message",
          "resolution"
        ],
        "properties": {
          "type": {
            "type": "string",
            "format": "uri-reference",
            "const": "about:blank"
          },
          "title": {
            "type": "string",
            "description": "Standard HTTP status title."
          },
          "status": {
            "type": "integer",
            "minimum": 400,
            "maximum": 599
          },
          "code": {
            "type": "string",
            "description": "Stable machine-readable error code."
          },
          "detail": {
            "type": "string",
            "description": "Explanation in Brazilian Portuguese."
          },
          "message": {
            "type": "string",
            "description": "Same explanation, for JSON clients."
          },
          "resolution": {
            "type": "string",
            "description": "How to resolve the error."
          },
          "ok": {
            "type": "boolean",
            "const": false,
            "description": "Present on form errors for existing clients."
          },
          "reason": {
            "type": "string",
            "description": "Legacy form error code; equal to code."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Invalid form field names, when available."
          }
        }
      }
    },
    "securitySchemes": {
      "sanitySignature": {
        "type": "apiKey",
        "in": "header",
        "name": "sanity-webhook-signature",
        "description": "Sanity HMAC signature over the timestamp and raw request body. Not a bearer token."
      }
    }
  }
}