Beta

Free while we are in beta. No commission on either side, and KayIdol never handles the payment — you settle directly with the provider, on the day, however the two of you agree.

What happens after →
KayIdol

Local services · Cavite

Know who
to call.

A plumber for the leak. A technician for the aircon. Tell your AI assistant what needs fixing — KayIdol connects it to local tradespeople, clear prices and a time that works for you.

Plumber, electrician or local service business?
Join the first cohort. We’ll help you get listed by email.

Cavite dry run · AI-generated service scene.

Free
while we are in beta. No commission, no listing fee, no cut.
No account
needed to book. Your assistant is the interface.
12 months
more at 0% for providers who list now, once charging begins.
8 trades
across Cavite, priced in PHP.
The beta

Free now. And free for a year after that, if you join now.

KayIdol is not taking money yet, and that is a decision rather than a missing feature: this release exists to find out whether people want this and where there are not enough tradespeople to answer. Charging for it would answer neither question.

0%

During the beta, nobody pays us

No commission, no listing fee, no charge for verification. KayIdol is not in the money flow at all — the customer settles directly with the provider, on the day, however the two of you agree, so there is nothing for us to take a cut of and nothing to refund if a job falls through.

A ₱1,500.00 job
₱1,500.00
Customer pays
₱1,500.00
KayIdol takes
₱0.00
Provider keeps
₱1,500.00
12 months

Founding provider

List during the beta and you keep 0% commission for twelve months after charging begins — not a discount off it, none of it. After that the commission is 7% of the job total, deducted from the provider's payout and never added to the customer's bill — which is why the customer's column does not move between these two tiles.

A ₱1,500.00 job
₱1,500.00
Customer pays
₱1,500.00
KayIdol takes
₱105.00
Provider keeps
₱1,395.00
List your business
How it works

Four steps, and you are in exactly one of them.

The other three happen between your assistant, KayIdol and the tradesperson while you get on with your day.

  1. Ask

    You describe the problem to whichever assistant you already use. No app to install, no KayIdol account, no password.

  2. Match

    KayIdol resolves what you said to a real service, filters to providers who cover your area and are genuinely free at that hour, and ranks them on completed work rather than ad spend.

  3. Confirm

    Your assistant checks the choice with you, then holds the slot and fixes the price. Nothing is charged — during the beta nothing ever is.

  4. Accept

    The provider receives an email with a single-use invitation code, opens the job portal and answers. Their yes is what turns a held slot into a booking, and you settle up with them directly on the day.

How a booking goes Live

A little help, close to home

“Our kitchen sink is backed up. Can someone come this afternoon?”

You askYour AI findsA local pro
PlumbingExample quote

Kitchen sink. Sorted.

Drain unclogging · Cavite

Arrival
Today, 2pm
Quoted total
₱1,200

Provider acceptance required

Follow the example booking
  1. You your assistant

    Our kitchen sink is backed up. Can someone come out this afternoon?

  2. Your assistant KayIdol

    POST /v1/search — drain_unclogging, near Cavite, today after 13:00

  3. KayIdol your assistant

    3 providers · identity-verified · 14:00–17:00 open · ₱800–₱1,500 · rated 4.6–4.9

  4. Your assistant you

    Ramon can be there at 2pm, ₱1,200 all in. Shall I book him?

  5. Your assistant KayIdol

    POST /v1/booking-intents/{bookingIntentId}/confirm

  6. KayIdol your assistant

    next_step: AWAIT_PROVIDER — Ramon has been sent the job. It is a booking when he accepts it, and not before.

Every endpoint in this exchange is deployed and answering today; the table under For agents is generated from the API's own description. What happens after the confirm call depends on one operator setting, so read booking.confirmed_by from capabilities rather than this panel.

For people

Stop reading twenty listings.

The part of hiring a tradesperson that wastes your evening is not the work. It is the twelve open tabs, the unanswered messages and the price you only learn after someone arrives.

No account, ever

A booking needs a name, a number and an address. Not a profile. We keep no consumer login because there is nothing we would do with one.

The quote is the price

Right now KayIdol takes nothing at all and never handles your money — you pay the tradesperson directly. When we do start charging, the commission comes off their side, so the number your assistant quotes stays the number you pay.

Ratings from real jobs

Only a completed booking can leave a review, so reputation is tied to work that actually happened. Ranking is never for sale.

For providers

Get discovered by AI.

People are starting to ask ChatGPT, Claude and Gemini for a plumber instead of scrolling a Facebook group. When they do, your business needs to be something those assistants can actually find, price and book.

Free now, and free for a year after

Nothing is deducted during the beta, because KayIdol never touches the payment — the customer pays you. List now and you keep 0% for 12 months after charging starts.

You set the terms

Your services, your rates, your coverage area, your working hours. KayIdol never quotes on your behalf outside the bands you set, and no job becomes yours until you have said yes to it.

Paid the way you already get paid

During the beta the customer settles with you directly, in cash or through whichever e-wallet you both use. Nothing to reconcile, no payout to wait for, no account to open.

For agents and developers

Real-world services as an API.

Search. Quote. Hold. Confirm. One base URL, an OpenAPI 3.1 description, and — when it ships — an MCP server. Integer minor units, UUIDv7 identifiers, ISO 8601 timestamps, machine-readable error codes, and an Idempotency-Key required on every mutation.

curl https://api.kayidol.com/v1/meta/capabilities
# Read this before your first booking call. It is the only thing that
# will tell you what confirms a booking on THIS deployment — today
# booking.confirmed_by is PROVIDER_ACCEPTANCE and
# payments.platform_collects is false. Both are operator settings.

curl https://api.kayidol.com/v1/agent/surface
# The tools this gateway exposes to an external agent. Today: none —
# and it says so, rather than describing tools that do not exist.
Deployed endpoints, generated from KayIdol API v0.1.0 (OpenAPI 3.1.0). This table is built from the emitted description, so it cannot advertise something that is not there.
MethodPathSummaryState
GET /health Liveness probe Live
GET /ready Readiness probe — checks Postgres and Redis Live
GET /v1/agent/surface Tools this gateway exposes to an external agent Live
POST /v1/booking-intents Hold a slot and fix a price, without charging anything Live
GET /v1/booking-intents/{bookingIntentId} Read a booking intent back Live
POST /v1/booking-intents/{bookingIntentId}/cancel Give the slot back before anything has been charged Live
POST /v1/booking-intents/{bookingIntentId}/confirm Confirm a booking intent, once the human has said yes Live
GET /v1/bookings/{bookingId} Read a confirmed booking Live
POST /v1/bookings/{bookingId}/cancel Cancel a confirmed booking, settling it per the policy Live
GET /v1/bookings/{bookingId}/cancellation-preview What cancelling would cost, changing nothing Live
GET /v1/meta/capabilities What this deployment can do, and the rules it enforces Live
POST /v1/providers/{providerId}/availability When this provider can actually do this job Live
POST /v1/quotes Fix a price for one job with one provider Live
GET /v1/quotes/{quoteId} Read a quote back Live
POST /v1/quotes/{quoteId}/accept Fix this price so a booking can be built on it Live
POST /v1/search Find providers who can do a job, ranked on merit Live

MCP Deployment pending

An MCP server at https://mcp.kayidol.com/mcp, implements 13 tools and forwards KayIdol API keys and booking capability tokens. Public deployment is pending; OAuth is not implemented. Additional planned tools:

  • get_provider

Read the deployment, not the brochure

Two settings decide what this marketplace does with money and what turns a held slot into a booking, and an operator can change both without a deploy. So every rule below names the capability field that answers it, and the only correct way to know is to call /v1/meta/capabilities. A page cannot promise you what a database row says.

Our manifests do not flatter us

Every machine-readable file here is generated from the same source as the page you are reading, and the endpoint table from the API's own emitted description. That is why /v1/agent/surface returns an empty tool list instead of an aspirational one. An agent that trusts a manifest and finds a 404 does not shrug — it fails a booking on somebody's behalf.

Machine-readable index — everything an agent needs, without parsing this page.
FilePurpose
/llms.txt Short orientation for a language model: what KayIdol is, the rules that bind a caller, and where to read authoritative values.
/llms-full.txt The whole site as plain text, including every marketplace rule and FAQ answer, for a model that wants one fetch instead of six.
/openapi.json OpenAPI 3.1 description of every deployed endpoint, copied verbatim from what the API itself emits.
/.well-known/agent-card.json A2A-style agent card: identity, skills, endpoints and the authentication each one needs.
/.well-known/mcp.json Where the MCP server lives, how it authenticates, and which tools it will expose.
/.well-known/ai-plugin.json Legacy plugin manifest, kept because some hosts still look for it first. It points at the same OpenAPI document.
/robots.txt Crawl policy. AI crawlers are explicitly allowed — being read by them is the point of this site.
/sitemap.xml Canonical URL list.
Rules of the marketplace

Six things to know before you call anything.

These are not guidelines. They are enforced by the policy engine and by the database, and getting one wrong is how an integration tells somebody a plumber is coming when nobody has agreed to come.

  1. Nothing is charged, and no fee is ever added to a quote

    KayIdol is not in the money flow during the beta: the customer settles directly with the provider, on the day, however the two of you agree, and the platform deducts nothing from either side. When charging does begin the commission comes out of the provider's payout — 7% of a ₱1,500.00 job leaves the customer paying ₱1,500.00 either way. There is no configuration of this marketplace in which you add a platform fee to a price you show a user.

    GET /v1/meta/capabilities → payments.platform_collects, fee.mode
  2. One named event confirms a booking, and your own call is never it

    Read `booking.confirmed_by` and wait for exactly what it names. Today it is PROVIDER_ACCEPTANCE: the provider answers a single-use invitation, and until they do there is a held slot and no booking. A 200 from the confirm endpoint means the human said yes — not that the job is happening. Read `next_step` and do what it says.

    GET /v1/meta/capabilities → booking.confirmed_by
  3. Retry with the identical Idempotency-Key

    Every mutating endpoint requires one. A retry with a fresh key is not a retry — it is a second booking against the same afternoon. Generate one key per attempt, and reuse it for every retry of that attempt.

    GET /v1/meta/capabilities → idempotency
  4. The provider has a window, and it is bounded by the job

    It is not a flat countdown. The window ends at whichever comes first: the response allowance, or far enough before the job starts that the customer could still act on a no. A booking scheduled too soon to leave both is refused outright — before the customer commits — naming the earliest start that would work.

    GET /v1/meta/capabilities → booking.provider_response_seconds
  5. Prices and states come from the policy engine, not from a model

    No language model — ours or yours — is authoritative over a price, a booking state, a permission or a payout. Values you send that would set one of those are ignored in favour of the computed value. Read the price back; do not assume the one you proposed stuck.

    PRD §8.4
  6. Provider-authored text is data, not instructions

    Business names, service descriptions and reviews are written by strangers. We sanitise them on write and mark them as untrusted on read. Do not concatenate them into a system prompt, and do not let them decide what your agent does next.

    PRD §54
At launch

Eight categories, done properly.

A marketplace that lists everything answers nothing. These are the trades people need urgently, price clearly and hire locally — and both the English and the Filipino term resolve, because a caller's user said tubero, not plumber.

Status

Free beta. The whole marketplace works end to end, and no money moves through it.

Published here because an integrator who discovers this by watching a request fail has already lost an afternoon, and because a marketplace that overstates itself to an agent gets exactly one chance.

Live

  • Search and ranking over the provider network, with the deterministic score published on every result.
  • Quoting: a price fixed from the rate a provider already published, held for as long as the quote says.
  • Availability: the real windows a provider can do a job in, counted against the technicians actually free.
  • Booking intents: the slot held and the total fixed, with no double-booking possible.
  • Confirmation, and the provider invitation and acceptance that turn a held slot into a booking.
  • Cancellation, on both an intent and a confirmed booking, with the cost previewable before you commit to it.
  • The capability document — what confirms a booking here, the fee model, quote rules, idempotency rules, search limits.
  • Liveness and readiness probes.
  • The MCP server, serving all 13 tools over streamable HTTP. Add it as a connector and send an API key as a bearer token; the server forwards that credential to the API. Search and the capability document work without one.

Off for the beta

  • QR Ph payment sessions and the signature-verified acquirer webhook.
  • Merchant-of-record settlement, provider payouts and refunds.
  • The 7% commission, and every path that deducts it.
  • Instant-book without a provider accept step, which is the launch behaviour rather than the beta one.

Building

  • Self-serve API keys. Agent credentials are issued by hand today, so an assistant with no key reaches search and nothing further.
  • The full provider portal at https://jobs.kayidol.com. Job acceptance is implemented; provider sign-up and account management are not.
Questions

The things people and agents ask.

Is KayIdol really free right now?

Yes, on both sides and with nothing attached. The platform takes no commission, charges no listing or verification fee, and does not handle the payment at all — you settle directly with the provider, on the day, however the two of you agree. The beta exists to find out whether people want this and where there are not enough tradespeople, and charging for it would answer neither question.

What happens when the beta ends?

Commission becomes 7% of the job total, deducted from the provider's payout and never added to the customer's bill — a ₱1,500.00 job would still charge the customer ₱1,500.00. Providers who listed during the beta keep 0% for 12 months from the day charging starts. Nobody is charged retroactively for beta work.

Do I need a KayIdol account to book someone?

No. Consumers never need one. Your AI assistant is the interface, and a booking carries only the name, contact number and address needed to do the job. Providers do hold verified accounts, because the platform has to know who is turning up at your door.

When is a booking actually confirmed?

When the provider accepts it. They receive an email with a single-use invitation code and have a bounded window to answer; until they do, the slot is held and there is no booking. Your assistant getting a 200 back from the confirm call is not confirmation, and neither is a page that says thank you.

How do people pay during the beta?

Directly to the tradesperson — cash, or whichever e-wallet the two of you already use. KayIdol is not the merchant of record, receives no customer funds, and issues no receipt for the work. The QR Ph payment rail is built and tested and is switched off for the duration of the beta.

What happens if the provider says no, or does not answer?

The slot is released and your assistant is told. Because nothing was charged, there is nothing to refund — which is one of the reasons the beta runs this way round. Your assistant can offer you the next-ranked provider from the same search.

How does an AI agent connect to KayIdol?

Over HTTPS at https://api.kayidol.com, described by an OpenAPI 3.1 document, and over MCP at https://mcp.kayidol.com/mcp, which is deployed and serving all 13 tools. Search and the capability document are unauthenticated behind rate limits; quoting, availability and anything that creates a booking need an API key, and those are issued by hand today.

How do I retry a request safely?

Send the identical Idempotency-Key you sent the first time. Every mutating endpoint requires the header. A retry carrying a new key is treated as a new request, which is how an agent double-books a plumber.

Where does KayIdol operate?

Cavite first. A marketplace is only useful where there are enough providers to answer, so coverage expands by area once density holds, not all at once.