# Lupa > Lupa is a veterinary practice management platform. This is the developer > portal for its public REST API, which covers clients, pets, appointments, > clinical records, invoices and inventory for veterinary practices. Requests authenticate with a bearer API key issued by a practice administrator from inside Lupa. A key is scoped to the companies and stores it was issued for, and that scope is enforced on every endpoint. Every endpoint except `GET /v1/companies` requires a `companyId`: as a query parameter on GET and DELETE, and inside the JSON body on POST, PUT and PATCH. The OpenAPI document is authoritative for where each endpoint takes its input. The API is served from `https://api.lupapets.com/api/external`. List endpoints are cursor-paginated and return `data`, `nextCursor`, `hasMore` and `totalCount`. Rate limit is 100 requests per minute per key. ## Docs - [Quick start](https://developers.lupapets.com/guide): getting from an API key to a booked appointment — authentication, finding your companyId, cursor pagination, date filtering, enums, error handling and rate limits, with runnable cURL for every step - [API reference](https://developers.lupapets.com/docs): every endpoint, parameter, response field and error code, rendered from the OpenAPI document ## Machine-readable - [OpenAPI document](https://api.lupapets.com/api/openapi.json): the full OpenAPI 3.0 spec — generate a typed client from this rather than hand-writing one - [API llms.txt](https://api.lupapets.com/api/llms.txt): endpoint-level summary of the API written for models, including the full endpoint list, common workflows and the error format ## Notes - Enum values are served by the API itself at `GET /v1/enums` and `GET /v1/enums/{enumName}`. Treat those as the source of truth rather than hardcoding values. - There is no official SDK. The quick start uses cURL so it runs anywhere. - Errors return `type: "LUPA_ERROR"`, a stable `message` key, and a `data` object carrying `httpStatus`, a human-readable `suggestion`, and an `errorInstanceId` to quote in support requests. ## Optional - [Lupa](https://lupapets.com): the product site