# info.description
Machine-readable access to Kondable: software de administración de condominios en México. This API covers the public site, product docs, glossary, per-state condominium law, and the contact form. Fetch the same URLs as HTML, Markdown (`Accept: text/markdown`) or JSON (`Accept: application/json`). The official web and mobile apps use a separate authenticated API that is not published here.

Versioning: the JSON write/discovery surface is versioned in the URL path as `/api/v1/`. The current version is 1. Breaking changes ship as `/api/v2/`. A version that will be removed is announced with the `Deprecation` and `Sunset` HTTP headers at least twelve months before removal. Unversioned discovery files (`/openapi.json`, `/llms.txt`) are shortcuts, not a second contract.

Rate limits: responses include the IETF `RateLimit-*` headers (and `Retry-After` on 429). The public site allows 120 requests per minute per IP; `POST /api/v1/contact` allows 3.

# tags[].description
How agents find the rest of the surface.

# tags[].description
Product guides for administrators and residents.

# tags[].description
Condominium-management terms used in Mexico.

# tags[].description
State condominium law as Kondable reads it.

# tags[].description
Marketing pages, also served as Markdown.

# paths./openapi.json.get.description
The machine description of Kondable's public content API. Unique operationIds, typed parameters, and JSON error schemas so an LLM can turn the spec into function calls.

# paths./.well-known/api-catalog.get.description
Linkset that points at /openapi.json so agents can find the spec from a well-known URL.

# paths./.well-known/api-catalog.get.responses.200.description
Linkset pointing at the OpenAPI document.

# paths./llms.txt.get.description
When to use Kondable, how to call the public surface, and links to every guide, glossary term and compared state law as Markdown.

# paths./llms-full.txt.get.description
Every product guide, glossary term and compared state law concatenated. Prefer /llms.txt and fetch individual documents when you only need one.

# paths./sitemap.xml.get.description
Every public HTML page: marketing, docs, glossary and compared state law.

# paths./developers.get.description
Human page that lists the OpenAPI spec, llms.txt, Markdown negotiation, JSON errors and the contact API. Also at /desarrolladores. Send Accept: text/markdown for a compact copy.

# paths./developers.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./developers.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./.get.description
Software de administración de condominios en México. Send Accept: text/markdown to skip the HTML layout.

# paths./.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./funciones.get.description
Cobranza, gastos, conciliación, reportes, portal del residente, avisos, accesos y el resto del producto.

# paths./funciones.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./funciones.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./precios.get.description
Free, Básico, Pro and Enterprise. Amounts come from the same config the app bills against.

# paths./precios.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./precios.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./about.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./about.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./privacy.get.description
Aviso de privacidad. Also published at /privacidad.

# paths./privacy.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./privacy.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./contacto.get.description
Also published at /contact. To send a message from an agent, POST /api/v1/contact.

# paths./contacto.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./contacto.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./docs.get.description
Modules and guides. Markdown via Accept: text/markdown.

# paths./docs.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./docs.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./docs/{module}/{slug}.get.description
HTML by default. The same body as Markdown with Accept: text/markdown, or at /docs/{module}/{slug}.md.

# paths./docs/{module}/{slug}.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./docs/{module}/{slug}.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./docs/{module}/{slug}.get.parameters[].description
Guide module slug, for example primeros-pasos.

# paths./docs/{module}/{slug}.get.parameters[].description
Guide slug, for example crear-tu-cuenta.

# paths./docs/index.json.get.summary
Search index for docs, glossary and state law

# paths./docs/index.json.get.description
One entry per guide, glossary term and compared state. Used by the docs search on the site; agents can use it to pick a document before fetching Markdown.

# paths./glosario.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./glosario.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./glosario/{slug}.get.description
Definition, source and related guides. Markdown via Accept or /glosario/{slug}.md.

# paths./glosario/{slug}.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./glosario/{slug}.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./glosario/{slug}.get.parameters[].description
Term slug, for example cuota-de-mantenimiento.

# paths./ley-de-condominios.get.description
The 32 states. Compared states have their own page; the rest list the instrument and the official text.

# paths./ley-de-condominios.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./ley-de-condominios.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./ley-de-condominios/{slug}.get.description
Only states Kondable has read rule by rule. Markdown via Accept or /ley-de-condominios/{slug}.md.

# paths./ley-de-condominios/{slug}.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./ley-de-condominios/{slug}.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./ley-de-condominios/{slug}.get.parameters[].description
State slug, for example ciudad-de-mexico.

# paths./deprecation.get.description
How Kondable versions `/api/v1/` and how a retirement is announced: Deprecation and Sunset headers, at least twelve months of notice. HTML, Markdown or JSON.

# paths./deprecation.get.responses.200.description
HTML for browsers. Markdown when Accept prefers text/markdown. Vary: Accept on both.

# paths./deprecation.get.responses.406.description
The Accept header rejected text/html, text/markdown and application/json.

# paths./api/v1.get.description
Discovery document for `/api/v1/`. Declares the version, the deprecation policy (Deprecation and Sunset headers, twelve months notice) and the canonical links. Send the optional API-Version header with value 1.

# paths./api/v1/deprecation.get.description
JSON form of the Sunset/Deprecation policy. The human page is /deprecation.

# paths./api/v1/contact.post.description
Versioned public contact form for agents and integrations. Rate limited to 3 requests per minute. No authentication. A person replies within one business day. `POST /api/contact` is an unversioned alias.

# components.schemas.Error.properties.message.description
Human-readable summary, also duplicated under error.message.

# components.schemas.Error.properties.error.properties.code.description
Stable machine code: not_found, validation_error, too_many_requests, and similar.

# components.schemas.Error.properties.error.properties.hint.description
Where to look next: llms.txt, OpenAPI, sitemap.

# components.schemas.Error.properties.errors.description
Present on 422 responses, keyed by field.

# components.parameters.ApiVersion.description
Major version of the JSON API. Current value: 1. The URL path `/api/v1/` is the canonical version signal.