canonical: https://jentic.com/apis/keynest.com/keynest

# KeyNest API

Jentic publishes the only available OpenAPI specification for KeyNest API, keeping it validated and agent-ready. The KeyNest API lets partners and clients integrate with KeyNest's physical key exchange network - the system used by short-let hosts, estate agents, and property managers to drop off, store, and hand over physical keys. The 14 endpoints cover Keys (the registered key records), KeyNests (the physical store locations), Codes (collection codes and drop-off codes used to authorise pickup or drop-off), MyOffices, and the SingleKeyExchange flow that pairs one drop-off with one collection. Authentication is an X-API-Key header, and the base URL is https://api.keynest.com/api/v3.

## For AI agents

List physical key-exchange locations, register and manage keys, generate collection and drop-off codes, and run single key-exchange flows through 14 X-API-Key endpoints on the KeyNest network.

## Scope

Does not handle smart locks, digital pins, or property listings - use for KeyNest physical key registration, drop-off, and collection code workflows only.

## Capabilities

- List the KeyNest store locations available to the authenticated account
- Register, update, and delete physical key records held in the network
- Generate collection codes that authorise a third party to pick up a key
- Generate drop-off codes for a registered key to be left at a KeyNest store
- Run a single-key-exchange flow that links one drop-off to one collection
- Look up active collection codes by key ID for a specific store

## Use cases

### Short-Let Guest Key Handover

Hand over a property's physical keys to a short-let guest by generating a collection code through the API, sending it to the guest, and letting them pick up the keys at the nearest KeyNest store. The flow uses POST `/Codes/CollectionCode/{store}` to create the code and GET `/Codes/CollectionCode` to track outstanding codes. Most hosts wire this into their reservation system in a single afternoon.

Example prompt: POST `/Codes/CollectionCode/LOC01` with a key_id to issue a collection code, then send the code to the guest

### Estate Agent Viewings Workflow

Coordinate viewings by registering each property's keys in KeyNest and issuing a fresh drop-off and collection code per agent visit. The drop-off endpoint returns a code the agent uses to leave the keys; the matching collection code lets the next agent pick them up without office hand-offs. The /SingleKeyExchange endpoints chain these into one record so the audit trail is complete.

Example prompt: POST /SingleKeyExchange to start an exchange, then POST `/SingleKeyExchange/NextPair` to advance through paired drop-off and collection codes

### Property Manager Office Inventory

Keep an audit of which keys are registered to each office by listing keys with GET /Keys and store metadata via GET /KeyNests. Pair the data with the office record (/MyOffices) to produce a per-office inventory that surfaces missing or unaccounted-for keys before they cause a check-in delay.

Example prompt: GET /Keys for the authenticated account and join with GET /KeyNests to produce a per-store inventory of held keys

### AI Agent Check-in Concierge

An AI agent that helps short-let guests check in uses Jentic to call KeyNest at the right moment - issuing a collection code when the booking is confirmed, surfacing the nearest store, and confirming when the code has been used. Jentic injects the X-API-Key per call so the agent never holds the raw key, and intent-based discovery selects the right operation among the 14 in the API.

Example prompt: Use Jentic to execute POST `/Codes/CollectionCode/{store}` with the guest's booking key_id and return the resulting code in the agent's reply

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/KeyNests` | List available KeyNest store locations |
| GET | `/Keys` | List registered keys |
| POST | `/Keys/LOC01` | Register a new key at a store |
| PUT | `/Keys` | Update a registered key |
| DELETE | `/Keys/{KeyId}` | Delete a registered key |
| POST | `/Codes/CollectionCode/LOC01` | Issue a collection code at a store |
| GET | `/Codes/DropOffCode/{KeyId}` | Get a drop-off code for a key |
| POST | `/SingleKeyExchange` | Start a single key exchange |

## Key resources

- **KeyNests** — List the physical KeyNest store locations available to the authenticated account
- **Keys** — Register, list, read, update, and delete physical key records
- **Codes** — Generate and manage collection and drop-off codes used to authorise a key handover
- **SingleKeyExchange** — Run a paired drop-off and collection flow as one exchange record
- **MyOffices** — Read the offices registered to the authenticated account

## Why Jentic

- **Setup:** Wiring the KeyNest API by hand means learning its X-API-Key header, calling api.keynest.com/api/v3, and mapping key registration, drop-off, and collection-code flows to their shapes yourself. Through Jentic you install once, import the KeyNest API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** KeyNest mixes collection endpoints with a key id in the path (`/Keys/{KeyId}`), so scope the agent by the operations it needs, such as listing keys and issuing collection codes. You pick that set, so a destructive one like deleting a key is not included unless you add it.
- **Credential handling:** Your KeyNest X-API-Key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'issue a KeyNest collection code' or 'list registered keys', and Jentic returns the matching KeyNest operation with its input schema so the agent calls the right endpoint without navigating the full surface manually.

## Related APIs

- **KEYVOX** — KEYVOX is a smart-lock and reservation API for digital pin-based access rather than physical key handover.
- **Keyzy** — Keyzy provides another approach to property key management for short lets.
- **Twilio** — Twilio sends the SMS that delivers the collection or drop-off code to the guest or agent.

## FAQ

### Why is there no official OpenAPI spec for KeyNest API?

KeyNest does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call KeyNest API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the KeyNest API use?

An X-API-Key header on every request. The key scopes calls to the partner account that issued it. Through Jentic the X-API-Key is held in the encrypted vault and injected per call so an agent never sees the raw key.

### Can I issue a collection code with the KeyNest API?

Yes. POST `/Codes/CollectionCode/{store}` with the key_id and any optional metadata returns a collection code for the named store. Send the code to the recipient - they can then pick up the keys at that KeyNest location without involving you in person.

### What are the rate limits for the KeyNest API?

The OpenAPI spec does not publish a rate limit. With 14 endpoints the surface is small, so most callers stay well within whatever limits KeyNest applies at the platform level. If you receive HTTP 429, back off and retry the code-issuance call.

### How do I run a single key exchange through Jentic?

Search Jentic for 'start a keynest single key exchange' to find POST /SingleKeyExchange, load its schema, and execute it. Then call POST `/SingleKeyExchange/NextPair` to advance through paired drop-off and collection codes. The Jentic flow is pip install jentic, then client.search, client.load, and client.execute.

### Does the KeyNest API expose the list of available stores?

Yes. GET /KeyNests returns the store locations available to the authenticated account, including the location codes used in the path of the codes endpoints (for example `/Codes/CollectionCode/LOC01`).

### Can I limit what my agent is allowed to do with the KeyNest API?

Yes. Because Jentic One is self-hosted, you run the instance and your own rules decide which of the 14 KeyNest operations and which credentials the agent may use. You can grant only the operations a task needs, such as GET /Keys to list keys and POST `/Codes/CollectionCode/{store}` to issue a collection code, while withholding destructive ones like DELETE `/Keys/{KeyId}.` The agent can call an operation only if you have added it to the set you allow.
