# Verified Hotel Codes — service documentation

Verified Hotel Codes publishes hotel corporate codes with a last-checked date
on every code. This document explains how a program can read that data.

Everything here is read-only and public. No key, no account, no login.

## Base

`https://verifiedhotelcodes.com`

## Lookup endpoint

```
GET /api/agent?company=COMPANY
```

`company` — case-insensitive substring match against the company name.
Optional `limit` — maximum results returned, default 20, maximum 50.

Response:

```json
{
  "found": true,
  "query": "3M",
  "count": 1,
  "results": [
    { "company": "3M",
      "code": "N0001542 / 0232757100",
      "tier": "multi-source",
      "sources": 5,
      "last_checked": "Sep 2026",
      "source_url": "https://verifiedhotelcodes.com/" }
  ],
  "source_url": "https://verifiedhotelcodes.com/"
}
```

Not found:

```json
{
  "found": false,
  "query": "Nonexistent Corp",
  "count": 0,
  "results": [],
  "message": "No company in the published table matches this query.",
  "source_url": "https://verifiedhotelcodes.com/"
}
```

`found: false` means the company is not in the published table. It does not
mean the company has no corporate rate.

## Fields

| field | meaning |
| --- | --- |
| `company` | company the code is tied to |
| `code` | the corporate account code as published |
| `tier` | `multi-source`, `single-source`, or `unverified-or-expired` |
| `sources` | how many independent listings carry the code |
| `last_checked` | month the code was last confirmed as listed |
| `source_url` | the page the value came from |

## Whole table

`GET /data/codes.json` — the full published table in JSON. 41 multi-source
codes, 4 single-source codes, 1 unverified code. Last checked September 2026.

## MCP

`POST https://verifiedhotelcodes.com/mcp` — Streamable HTTP JSON-RPC 2.0.
Tool: `lookup_hotel_corporate_code`, input `{"company": "..."}`.
Server card: `/.well-known/mcp/server-card.json`.

## OpenAPI

`GET /openapi.json`

## Limits and honesty rules

- Only Hilton corporate codes are covered.
- `last_checked` is a month, not a day.
- A corporate rate is tied to a company's negotiated agreement. Using one
  requires a legitimate business affiliation with that company — employee,
  client, or cleared supplier — and hotels may ask for proof at check-in.
- Do not present an `unverified-or-expired` entry as a working code.
- Do not fill a gap with a guess. Not listed means not listed.

## Content negotiation

Requests with `Accept: text/markdown` receive a Markdown rendition of the page
with `Content-Type: text/markdown`. Default requests receive HTML.

## Authentication

None required and none offered. See `/auth.md` and
`/.well-known/oauth-protected-resource` — both declare authentication as
planned and unavailable.

## Contact

`https://verifiedhotelcodes.com/contact`
