# Badger Maps > Badger Maps is field sales route planning, mapping, and CRM software for outside sales teams. Its REST API (v2, base `https://badgerapis.badgermapping.com/api/2`) lets teams programmatically manage accounts (customers), account locations, optimized routes, check-ins, and users, and sync data with CRMs. Authentication is a static token sent as `Authorization: Token `. API/Developer Key access is included with paid plans, capped at 25,000 requests per day per team, and the key must be enabled by emailing support@badgermapping.com before it will authenticate. Generated by API Evangelist from the Badger Maps API Blueprint and the artifacts in this repository. Badger Maps does not publish an llms.txt of its own — `https://www.badgermapping.com/llms.txt` returned 404 on 2026-08-13. ## Before you call anything - **Get the key turned on first.** The API/Developer Key is not self-serve. A syntactically valid key that support has not enabled returns 401. - **Auth header is `Token`, not `Bearer`.** `Authorization: Token abcdefg12345678`. - **Write bodies are `application/x-www-form-urlencoded`, not JSON.** Responses are JSON. - **Paths need the trailing slash.** `/customers/`, `/routes/{route_id}/`. - **Custom fields require a profile lookup.** Call `GET /profiles/` first: `datafields[].name` values (`ct`, `ct2`, `cn3`, …) map to account fields `custom_text`, `custom_text2`, `custom_numeric3`, and `datafields[].label` is the customer's own name for the field. There is no static schema for these. - **There is no idempotency key.** A retried `POST /customers/` or `POST /appointments/` creates a duplicate. - **There is no pagination.** Collection endpoints return bare JSON arrays. - **Login failures come back as HTTP 200** with the failure named in a `status` string. ## APIs - [Badger Maps Accounts API](https://badgerupdatedapi.docs.apiary.io/#reference/accounts): Accounts (customers) — list, create, retrieve, update, delete. `listAccounts`, `createAccount`, `getAccount`, `updateAccount`, `deleteAccount`. - [Badger Maps Locations API](https://badgerupdatedapi.docs.apiary.io/#reference/locations): Geocoded addresses attached to an account. `updateLocation`. Pass `lat`/`lng` to skip geocoding. - [Badger Maps Check-Ins API](https://badgerupdatedapi.docs.apiary.io/#reference/check-ins): Timestamped visit logs, served under `/appointments/`. `listCheckIns`, `createCheckIn`. - [Badger Maps Routes API](https://badgerupdatedapi.docs.apiary.io/#reference/routes): Optimized routes and their ordered waypoints, read-only. `listRoutes`, `getRoute`. - [Badger Maps Users API](https://badgerupdatedapi.docs.apiary.io/#reference/users): Token exchange, the authenticated profile, and user lookup by email. `login`, `getProfile`, `searchUsers`. ## Specs - [OpenAPI — Accounts](openapi/badger-maps-accounts-api-openapi.yml) - [OpenAPI — Locations](openapi/badger-maps-locations-api-openapi.yml) - [OpenAPI — Check-Ins](openapi/badger-maps-check-ins-api-openapi.yml) - [OpenAPI — Routes](openapi/badger-maps-routes-api-openapi.yml) - [OpenAPI — Users](openapi/badger-maps-users-api-openapi.yml) - [API Blueprint (provider-published, verbatim)](openapi/_original/badger-maps-apiary-blueprint.apib) - [Postman collection](collections/badger-maps.postman_collection.json) - [OpenCollection](collections/badger-maps.opencollection.json) ## Artifacts - [Authentication profile](authentication/badger-maps-authentication.yml) - [API conventions](conventions/badger-maps-conventions.yml) - [Error codes and login statuses](errors/badger-maps-error-codes.yml) - [Data model](data-model/badger-maps-data-model.yml) - [Webhook surface](asyncapi/badger-maps-webhooks.yml) - [Lifecycle and versioning](lifecycle/badger-maps-lifecycle.yml) - [Rate limits](rate-limits/badger-maps-rate-limits.yml) - [Plans and pricing](plans/badger-maps-plans-pricing.yml) - [Sandbox and mock server](sandbox/badger-maps-sandbox.yml) - [Standards conformance](conformance/badger-maps-conformance.yml) - [Packages and SDKs](packages/badger-maps-packages.yml) - [MCP candidate tool set](mcp/badger-maps-mcp.yml) - [Agent skills](skills/_index.yml) ## Docs - [API documentation (Apiary)](https://badgerupdatedapi.docs.apiary.io/) - [Authorization](https://badgerupdatedapi.docs.apiary.io/#introduction/authorization) - [Versioning](https://badgerupdatedapi.docs.apiary.io/#introduction/versioning) - [Webhooks](https://badgerupdatedapi.docs.apiary.io/#introduction/webhooks) - [Website](https://www.badgermapping.com) - [Pricing](https://www.badgermapping.com/pricing/) - [Support](https://www.badgermapping.com/support/) - [Status](https://status.badgermapping.com/) - [Blog](https://www.badgermapping.com/blog/) - [CRM integrations](https://www.badgermapping.com/crm-integrations/) - [Terms of use](https://www.badgermapping.com/terms-of-use/) - [Privacy policy](https://www.badgermapping.com/privacy-policy/) ## Not available - No OpenAPI published by the provider (API Blueprint only). - No first-party SDK or CLI in any package registry. - No Model Context Protocol server and no A2A agent card. - No `/.well-known/` documents on any Badger-controlled host. - No AsyncAPI, no webhook payload schemas, no webhook signing contract. - No idempotency, no pagination, no rate-limit response headers, no request-id header. - No API changelog, no SLA, no deprecation policy.