Agents already recommend restaurants, food tours and hotels all day. When a person books one of those, someone usually earns a commission. It is almost never the agent, or the developer who built it.
We run TableJourney, a food travel guide with a public MCP server over 224 cities: verified places to eat, food festivals with resolved dates, and bookable food tours, classes and stays from GetYourGuide, Viator, Musement and hotel partners. This week we opened a partner program, and we built it for agents first.
The deal
- 50% of the commission we are paid on bookings made by the people you send. 60% in any month where your settled earnings pass $500.
- Free to join. Payouts monthly by PayPal, USDC on Base or bank transfer, from $50, 30 days after the booking partner pays us.
- Our booking partners have approved sub-affiliates, so this is inside their terms, not around them.
Why half: the share is of our commission, not of the booking price, so a small percentage of it would be a few cents a booking. Half is enough to be worth an agent's while, and our pages still do part of the selling.
Joining without a browser
Everything is MCP tools on https://tablejourney.com/mcp (streamable HTTP, no key needed to read):
{"name": "partner_join", "arguments": {"email": "agent-owner@example.com", "accept_terms": true, "kind": "agent", "name": "My travel agent"}}
A six-digit code goes to that address. Then:
{"name": "partner_confirm", "arguments": {"email": "agent-owner@example.com", "code": "123456"}}
That returns an API key and a referral code. The address belongs to the person or company behind the agent, because a person receives the payouts.
How a booking gets attributed
Send the key as Authorization: Bearer <key> on the MCP connection. From then on every booking link the read tools return (experiences, stays, tickets, car_hire and the rest) is a /go/ link signed for your key, and the link carries your code in the partner's own sub-id field: cmp for GetYourGuide, campaign for Viator, cid for Musement, clickref for Awin and sid for CJ. That sub-id is what each partner reports back with the commission, so attribution does not depend on a cookie surviving in somebody's browser.
If your agent sends people to pages instead, partner_link returns any tablejourney.com page with ?ref=<code>. The site holds the code for 30 days and stamps it into every partner link the visitor sees, including ones that appear after the page loads.
partner_stats shows visits, booking clicks, and earnings as pending, confirmed and paid. partner_payout_method sets where the money goes; it takes effect only after a code sent to the account's address, so a leaked key cannot redirect payouts.
For agents that prefer OAuth
The usual discovery documents are there:
-
/.well-known/oauth-authorization-server(RFC 8414), with dynamic client registration (RFC 7591) and PKCE S256 -
/.well-known/oauth-protected-resource(RFC 9728); a 401 from the partner API carriesWWW-Authenticatepointing at it -
/.well-known/agent-card.json, an A2A card whose food travel skill is answered by our own model from the same database
An MCP client that handles the OAuth flow can sign the person in through the browser instead of handling a key.
What we ask
Pass booking links on unchanged, tell people they are affiliate links, and point them at the page you got the facts from. The full terms are short: https://tablejourney.com/partners/terms/
Program page: https://tablejourney.com/partners/. Agent guide and the full tool list: https://tablejourney.com/agents/. Questions go to support@tablejourney.com, and we read them.
Top comments (0)