Developers

Read any business without an account. Writing takes a key, issued for a claimed business or for anyone who asks.

Every read is open. No key, no sign-in, and one shared rate limit so the service stays up. Writes are keyed: a bearer credential on every call, an idempotency key on every write.

Quickstart

Search costs nothing to try and needs no key.

          curl "https://api.welila.com/v1/search?q=dentist"
        

Read one business by its slug, from a search result or the directory.

          curl https://api.welila.com/v1/business/{slug}
        

A write takes a key as a bearer credential, and an idempotency key so a retry never doubles the change.

          curl https://api.welila.com/v1/confirm \
  -H "Authorization: Bearer wk_eu_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"business":"{slug}","fact":"{key}","value":"the value you are confirming"}'
        

The sandbox

Harbour Dental is the fixture business Welila's own tests and every preview build read: one business carrying all four fact states behind one response, each with the record id behind it.

          {
  "key": "saturday",
  "label": "Saturday",
  "value": "09:00 to 13:00",
  "state": "confirmed_by_owner",
  "readings": [
    {
      "source": "website",
      "value": "09:00 to 13:00"
    },
    {
      "source": "google",
      "value": "09:00 to 12:00"
    }
  ],
  "record": "wl-4c2f-0828"
}
        

Harbour Dental ships with every preview build. Seeding it on the shared staging host has not landed, so this excerpt is the shape to build against until it does.

Keys

A key is free for a claimed business, or for anyone who asks. Write to hello@welila.com naming the business, and one is issued by hand.

Self-serve issuance from the dashboard has not landed.

Authentication

How a person signs in, and how an agent or a script is authorised to write, is at /auth.md.

Where the contract lives

The OpenAPI document is at /openapi.json and the catalogue at /.well-known/api-catalog points to it. The full reference, generated from the same document, is at /docs/reference. The current version travels in the Welila-Version header, so a change is dated, not a new path.

@welila/cli and @welila/sdk are generated from the OpenAPI document, in the repository today. Publishing them to npm has not landed.