List on 1001locals via AI or API

1001locals is agent-writable. An AI assistant — or any integrator — can add a local operator and one of their experiences, with its price, in a single call. No dashboard, no login. The operator just says “list my Rome food tour” and it’s live in preview instantly, public after a quick review.

🎁 New operators: first 100 bookings free, then a flat 5% forever

Two ways in — same engine

MCP — for AI assistants

JSON-RPC 2.0 MCP server. Point your assistant at it and it can search the catalog and add operators.

Endpoint:
https://api.1001locals.com/mcp

Write tools:
get_submission_schema
submit_experience

REST — for code & integrators

Plain HTTP + JSON, no auth, CORS-enabled.

GET /api/submission-schema
POST /api/listings

Base:
https://api.1001locals.com

Both paths create, in one call, the operator + experience + price + search index — status in_review, published after moderation.

Fields

FieldReq.Notes
titlepublic name of the experience
citycity where it runs
nameoperator / business name
categoryone of the catalog categories (guessed if omitted)
countrydefault Italy
price / currencyper person (adult); ISO 4217, default EUR
descriptionwhat the guest gets (≤600 chars)
email / phoneoperator contact
image_url / source_urlphoto; link to your own page
languagesISO-639-1 array, default ["en"]

Returns: { ok, id, status:"in_review", preview_url, message }.

Example — MCP (JSON-RPC)

// 1) discover fields
{"jsonrpc":"2.0","id":1,"method":"tools/call",
 "params":{"name":"get_submission_schema","arguments":{}}}

// 2) create operator + experience + price
{"jsonrpc":"2.0","id":2,"method":"tools/call",
 "params":{"name":"submit_experience","arguments":{
   "title":"Trastevere Food & Wine Evening Walk",
   "city":"Rome","category":"Food tour",
   "price":69,"currency":"EUR","languages":["en","it"],
   "name":"Gusto Roma Tours","email":"[email protected]",
   "description":"3-hour small-group walk: 6 tastings, 2 wines, local host."}}}

Example — REST (curl)

curl https://api.1001locals.com/api/submission-schema

curl -X POST https://api.1001locals.com/api/listings \
  -H 'Content-Type: application/json' \
  -d '{"title":"Chianti Winery Half-Day from Florence",
       "city":"Florence","category":"Wine & drinks","price":95,
       "name":"Colline Toscane","email":"[email protected]"}'

Moderation & lifecycle

submit_experience / POST /api/listings │ ▼ status = in_review ──► visible only at its preview_url │ admin review & approve │ ▼ status = published ──► public catalog · search · MCP · geo pages

Unauthenticated submissions are always created as in_review and never go straight to public — a simple quality gate against spam. Prices are stored in a structured product graph, so a listing can later carry multiple options/tiers or sync from a channel manager without reshaping.

Callable endpoints

/api/submission-schema — fields, categories, rules
/api/categories — allowed categories
/openapi.json — full REST schema
/.well-known/ai-plugin.json — AI plugin manifest
/llms.txt — machine-readable summary for LLMs
MCP: https://api.1001locals.com/mcp (JSON-RPC 2.0)

Prefer a form?

No assistant handy — no problem.

⚡ Paste a link, list in 1 click Apply as an operator