For AI agents & developers

Your agent can run
the whole thing.

Everything you can do in eKard — your cards, contacts, documents, QR codes, designs, analytics and every booking — an AI agent can do for you through the Agent API. One key, plain JSON, and a reference written for agents to read.

REST & JSON·MCP·OpenAPI 3.1·llms.txt

Try asking

Say it the way you'd say it to an assistant.

Each request is a few calls to the API, and the agent works out which. These are the calls behind a few everyday asks.

“Book Priya for a haircut on Friday”

  1. GET /api/v1/kards/{share_link}/offerings Find the haircut, and Priya among the people who do it.
  2. GET /api/v1/kards/{share_link}/availability Friday's open times with Priya.
  3. POST /api/v1/kards/{share_link}/bookings Book the time. The client gets the confirmation and reminders.

“What does my Tuesday look like?”

  1. GET /api/v1/bookings Every booking on Tuesday, across the calendars the account runs, earliest first.

“Add a team member's hours”

  1. PATCH /api/v1/calendars/{calendar_id}/providers/{provider_id}/hours Set the weekly hours; online booking follows them at once.

“Move Ananya's 3 pm to 4 pm”

  1. GET /api/v1/bookings Find the booking.
  2. PATCH /api/v1/kards/{share_link}/bookings/{id} Give it the new time. Ananya's link and reminders follow.

“Add the people I met at the trade fair”

  1. POST /api/v1/kards/{share_link}/events Create the event, once.
  2. POST /api/v1/kards/{share_link}/contacts Add each person, tagged with the event.

“How did my card do this month?”

  1. GET /api/v1/kards/{share_link}/analytics Visits, sources, devices and new contacts over 30 days.

Start in three steps

One key, and you're in.

  1. Get the key

    Sign in, then choose AI Agents in the menu under your name, top right. The page shows your account's key and a block to paste into any agent: the key, the address of the reference, and how to use them.

  2. Hand it over

    Paste the block into your agent, or give it the key and ekard.app/api/v1/docs. It sends the key with every request.

  3. Ask

    Start with “What can you do with my eKard?”. The agent reads the reference and answers in plain words, then gets on with what you ask.

Good to know

One key, the whole account.The key can do anything you can, so give it only to agents you trust. Replace it on the AI Agents page at any time; the old key stops working at once.

It asks before it deletes.The reference tells agents to check with you before deleting anything, publishing over a live design or cancelling your plan.

Bookings reach real people.A booking an agent makes sends the client a confirmation and reminders, just like one made at your front desk.

Limits keep it safe.Booking changes have their own limits; an agent that reaches one is told how long to wait before trying again.

Where to point your agent

Written for machines to read.

curl -H "Authorization: Bearer $API_KEY" https://ekard.app/api/v1/me

What an agent can do

Everything you can, over HTTP.

The API mirrors the web app, with the same permissions: a team's bookings are its admins' only, and what an account can't do on the web it can't do here.

Account

The account behind the key, and its plan.

  • The account, its plan, counts, organizations and brand
  • Change the person's name, photo, WhatsApp hello, country, time zone or language
  • Email the link that verifies the account's address
  • Ask to change the sign-in email (Profile › Change email)
  • Cancel the change of sign-in email (Profile's "Cancel the change")
  • Type the code emailed to the current address (the proof)
  • Change the sign-in email with the new address's code, or its link
  • Send the new address its link and code again (Profile's "Send it again")
  • Show the new address on the Kards that still show the old one
  • Email the bounced address again (the web Profile's "Mailbox works now? Try it again")
  • Ask to delete the account
  • Ask to delete the account, confirmed with Sign in with Apple
  • The current plan
  • Cancel the plan at the end of the billing period

Kards

Digital business cards, addressed by share_link.

  • The Kard a link opens
  • Google Maps' street addresses for what's typed in a kard's address
  • The address a person picked, in its parts
  • Every kard the account owns, newest first
  • Create a kard
  • One kard in full
  • Update a kard
  • Delete a kard and everything under it
  • Record that the kard was sent on (it ticks "Get your Kard seen")
  • Record that the app showed the kard's QR full screen (the web's Show my QR)
  • Hide "Get your Kard seen" for good
  • Hide "Your Kard is live" for good
  • Answer "Let people find this Kard on Google"
  • The kard's QR on a phone's lock screen, as a picture
  • A picture to post: the kard's QR for a Status or a chat, with a festival greeting or without

Analytics

Visits, devices, sources and contacts, per kard and per account.

  • Visits and contacts for every kard the account holds or administers
  • One kard's performance

Contacts

People who sent their details through a kard (leads).

  • Share my kard back with another kard
  • Read a paper business card's text into contact fields
  • The contacts of the kards you hold (a team's with `organization`), newest first
  • One contact from a deleted kard
  • Your note on a contact from a deleted kard, and its reminder
  • Delete a contact from a deleted kard, for good
  • Record a tap on Call, Text, WhatsApp or Email on a contact from a deleted kard
  • One kard's contacts
  • Add a lead by hand
  • One kard's contacts as a CSV file
  • One kard's contacts as one contact file (Save to my phone)
  • Several contacts at once (put in an event, one reminder, Done, delete), as the web's contacts list does
  • Undo a bulk event or reminder change, within its hour
  • One contact
  • Update a contact
  • Delete a contact
  • Whether this contact's person is blocked on the kard
  • Block this contact's person from reaching the kard
  • Unblock this contact's person
  • Record a tap on Call, Text, WhatsApp or Email on a contact
  • "Same person?": merge two contacts into one
  • "Same person?": keep two suggested contacts apart
  • Who's blocked on the kard
  • Lift one block

Hooks

REST hooks: an automation tool (Zapier, Make, n8n, your own code) subscribes an address to hear about new contacts as they arrive, each POSTed as the contact.created webhook event, and unsubscribes it when it stops.

  • This account's REST hooks
  • Subscribe an address to new contacts
  • Unsubscribe an address

Reports

Report a kard, booking page or file to eKard's Grievance Officer, as the web's complaint form (/grievance) does: the same categories, clocks and evidence rules. Any key. Blocking someone from reaching a kard is under Contacts.

  • What a complaint form needs
  • Report a kard, booking page or file

Events

Named lead-capture buckets, such as a trade fair; contacts can carry an event_id.

  • A kard's events
  • Create an event
  • One event
  • Update an event
  • Delete an event (its contacts stay, detached)

Products

What a kard sells, each with a photo, a price and one button (order on WhatsApp, pay, ask, or open its page). Money never passes through eKard.

  • A kard's products, its Products section's settings and its plan's limits
  • Add a product
  • Put the kard's products in a new order
  • The Products section's heading, its exchange question and taxes
  • One product
  • Change a product, its photo, Sold out or Hidden
  • Delete a product and its photo

Documents

Files on a kard, each with a stable public URL and QR code, and an optional custom landing page.

  • A kard's documents
  • Upload a document
  • One document
  • Rename a document or change its slug
  • Delete a document
  • Replace a document's file, keeping its slug, URL and QR code
  • A document's landing page
  • Save the landing page's draft (and publish it with `publish`)
  • Publish the landing page's draft
  • Take the landing page down (the QR opens the file again; the draft stays)

QR code

The kard's QR code design, logo and image.

  • The kard's QR design and image URLs
  • Restyle the QR code, set or remove its logo, or reset it
  • Re-render the stored QR image

Email signature

The kard as an email signature, free on every plan: HTML that pastes into Gmail, Outlook and Apple Mail, and its plain text.

  • The kard as an email signature, in a layout

Custom design

The kard's own HTML page, with drafts, publishing, history, checkpoints and templates.

  • The kard's custom HTML page
  • Save the draft (and publish it with `publish`)
  • Publish the draft as the kard's page
  • Return to the standard layout (the draft stays)
  • The last 50 versions of the design
  • Make an earlier version the draft (nothing goes live until publish)
  • Name the current draft as a safety point (up to 25)
  • The built-in templates
  • Make a template the draft (the previous draft stays in the history)

Organizations

Organizations where the account is an admin, and their teams; leaving one is any member's.

  • The account's organizations, with its role in each
  • Start a team (free for up to 25 people); the account is its first admin
  • Whether an address is free for a new team, or for renaming one
  • One organization (its admins and members)
  • Configure an organization (admins only)
  • Hide "Set up your team" for good, for every admin
  • Bring one of your own kards into a team you run
  • Hide "Show your team on one page" for good, for every admin
  • Every kard in an organization (admins only)
  • Every team kard's visits and contacts (admins); a member's own team kards'
  • Everyone in an organization, its open invitations and who holds each Kard (admins only)
  • Make a member an admin, or an admin a member (admins only)
  • Take someone out of the organization (admins only)
  • Leave an organization (any member)
  • Invite someone to the organization by email (admins only)
  • Send an invitation again (admins only)
  • Cancel an invitation (admins only)
  • The team's join link (admins only)
  • Turn the join link on, or replace it (admins only)
  • Turn the join link off (admins only)
  • Requests to join the team through its join link, waiting for an admin (admins only)
  • Let someone who asked into the team (admins only)
  • Say no to someone who asked to join (admins only)
  • Give a team Kard to a member, or keep it with the admins (admins only)

Custom domains

A personal kard's or an organization's own domain, such as card.priya.com, on every paid plan: connect it, add the DNS record it asks for, and it goes live with HTTPS. The eKard link keeps working beside it.

  • A personal kard's own domain, and where it stands
  • Connect a domain to a personal kard, or switch to another
  • Remove a personal kard's domain
  • Check a personal kard's domain now
  • An organization's own domain, and where it stands (admins only)
  • Connect a domain to an organization, or switch to another (admins only)
  • Remove an organization's domain (admins only)
  • Check an organization's domain now (admins only)

Bookmarks

Other kards this account saved.

  • Kards this account saved, newest first
  • Bookmark any public kard
  • Remove a bookmark

Bookings

The booking calendars this account manages, and what can be booked from a kard.

  • Bookings across every calendar the account manages, earliest first
  • What can be booked from a kard
  • Open times for a visit, by local date
  • Bookings of the calendar behind a kard
  • Book like the front desk
  • One booking
  • Move a booking, or change its status

Calendar

The booking calendar behind the kards: appointments, meetings, clients and the front desk. A key does in Calendar exactly what its person can do on the web, on the same roles (admin, front desk, staff); a calendar it has no role on answers 404, like one that doesn't exist.

  • The calendars this account works in, with its role on each
  • One calendar, with its team, features and menu
  • The desk's day or week
  • Free times for a visit, or for moving a booking
  • Why a time isn't free, person by person
  • The calendar's bookings, earliest first
  • Book like the front desk, or add a walk-in
  • One booking, as the desk's booking sheet shows it
  • Change the team's note on a booking
  • Mark a visit arrived
  • Mark a visit completed
  • Mark a no-show
  • Undo arrived, completed or no-show
  • Approve a request
  • Decline a request
  • Cancel a booking, as the business
  • Move a booking to a new time or person
  • Make a visit longer or shorter
  • Mark a booking confirmed
  • Mark a visit paid, or change what was recorded
  • Mark a visit not paid after all
  • Mark the client's advance received
  • Mark the advance not received after all
  • Send the client's confirmation again
  • Change the email a booking's emails go to
  • Say whether a cancelled visit's advance was refunded or kept
  • Forget whether the advance was refunded or kept
  • Repeating bookings, the latest first
  • Book a repeating booking (or see each date's status first)
  • One repeating booking, with every visit
  • Move a visit, or it and every later one
  • Cancel a visit, or it and every later one, as the business
  • The calendar's clients, or a search
  • Add a client
  • The clients as a CSV file
  • One client, as the client's page shows them
  • Change a client
  • Merge a possible duplicate onto the older record
  • Unlink a possible duplicate (not the same person)
  • What was marked paid over a range of days
  • The paid visits as a CSV file
  • How full each person is, no-shows, clients, sources and services over a range of days
  • Every insights panel as a table in one CSV file
  • The bookings behind an insights number
  • Blocked time and closures over a range of days
  • Block time for one person, or close the whole business
  • Remove blocked time or a closure
  • Who waits for a time, or who a free time suits
  • Add someone to the waitlist
  • One entry, with the free times that suit it
  • Take someone off the waitlist
  • Offer someone waiting a free time

Calendar setup

Set a calendar up and keep it right: the kind of business and its settings, the menu, the team with their hours and time off, single-use booking links, who signs in, webhooks, importing a price list or clients, syncing with Google Calendar or Outlook, and the phones and browsers that show its notifications. Mostly for the calendar's admins.

  • Set a calendar up, with the setup wizard's choices
  • The kinds of business a calendar can be, with their starter menus
  • The calendar's settings
  • Change the calendar's settings
  • Everything for sharing the booking page
  • A new private feed link for the whole calendar
  • Single-use booking links, newest first
  • Make a single-use booking link
  • Delete a single-use booking link
  • The menu, in order
  • Add something to the menu
  • One offering, with its bookings so far
  • Change an offering, or switch it off or on
  • Delete an offering that was never booked
  • Move an offering up or down within its category
  • Price-list imports, and whether one can start now
  • Send a price list to be read
  • One price-list import, with its rows once read
  • Discard a price-list import
  • Add a read price list to the menu
  • The photo or PDF of a price list
  • Read a price list again after the reading service failed
  • The team, in order, and team Kards not on it yet
  • Add someone to the team
  • One team member, as their page shows them
  • Change a team member, or switch them off or on
  • Take someone off the team
  • Move someone up or down the team
  • A team member's weekly hours
  • Change a team member's weekly hours
  • A team member's upcoming special days
  • Set different hours on one date, or a day off
  • Put a date back to the usual hours
  • A team member's upcoming time off, breaks and blocked time
  • Add time off, a break or blocked time for a team member
  • Remove a team member's time off, break or blocked time
  • A new private "My day" link for a team member
  • A new private calendar-feed link for a team member
  • Who signs in to the calendar
  • Remove a front-desk or staff login's access
  • Open front-desk and staff invitations
  • Invite someone to sign in, as front desk or as a team member
  • Cancel an open invitation
  • Send an open invitation again
  • Webhook endpoints, and the events they can get
  • Add a webhook endpoint
  • Change a webhook endpoint, or switch it back on
  • Remove a webhook endpoint
  • Send a webhook endpoint a test event
  • Give a webhook endpoint a new signing secret
  • Where clients can be imported from
  • Import clients from a spreadsheet or the Kards' contacts, or preview it
  • The key's own Google Calendar or Outlook connection
  • Choose the calendars to check, and where bookings go
  • Disconnect Google Calendar or Outlook
  • Add upcoming bookings that aren't in the synced calendar yet
  • A link that connects the service in a browser
  • The key's own devices that show Calendar's notifications
  • Choose what a device shows
  • Remove a device from Calendar's notifications
  • Send a test notification to a device

Hand it over

ekard.app/api/v1

Get your API key

Every account has one. Sign in, copy it, paste it into your agent.