Skip to content

For agents in iMessage, SMS, WhatsApp, Slack and email

Give your text agent a real interface.

Your agent calls one tool. Agent Pages sends a link to a page built for the task. The person taps, picks, and the answer comes back into the same conversation.

Find me a flight to New York on Nov 3

Found three for Tuesday. Pick the one you want here:

Got it: the 6:00 AM nonstop on Skyward Air. I’ll book it and send you the confirmation.

  1. They ask in text. “Find me a flight to New York on Nov 3.”

  2. Your agent sends a page. The link unfurls with a preview of the options.

  3. They tap and pick. A real flight picker, not a numbered list.

  4. The answer comes back. Into the same thread, and the agent keeps going.

The problem

Text is a bad place to make a plan.

Agents are moving into the apps people already text in. Chat is fine for questions. It breaks down when the person has to compare, pick, or fill in details.

  • Lists nobody can compare. “1) Lotus Thai Kitchen, $$, 0.4 mi: 6:30, 7:00, 7:30… 2) Ember & Stone…” The person scrolls up, loses track, and asks again.
  • Back-and-forth to fix small things. A time that isn’t open, a “how far is it again?”, a confirmation. Each one is another round trip.
  • A frontend for every task. Giving the agent a real UI usually means building and hosting your own pages, one per job.
Over text10 messages
With a page3 taps

How it works

One tool call. A real page. The answer comes back.

No frontend to build, no hosting, no glue code. A page is a link, so it works anywhere your agent can send one.

Messages arrive from iMessage, SMS, WhatsApp, Slack, Telegram, email and voice calls into one agent. The agent creates pages: a restaurant picker, a cart to review, a delivery form and a Lisbon itinerary. The person’s answer flows back to the same conversation.The answer returns to the same conversationiMessageSMSWhatsAppSlackTelegramEmailVoice, link by textYour agentcreate_page()Dinner on Fridayrestaurant_picker · 3 placesReview your cartcheckout · 2 itemsDelivery detailsform · name, phone, windowLisbon long weekenditinerary · 3 days
  • iMessage
  • SMS
  • WhatsApp
  • Slack
  • Telegram
  • Email
  • Voice, link by text

Your agent create_page()

  • Dinner on Fridayrestaurant_picker
  • Review your cartcheckout
  • Delivery detailsform
  • Lisbon long weekenditinerary

↺ The answer returns to the same conversation

  1. 01

    Your agent sends the data

    It finds tables, times or guests with the tools it already has, then calls create_page with a typed spec.

  2. 02

    We render and host the page

    A mobile page built for that task, with your name and color, and a link preview that shows the options before anyone taps.

  3. 03

    The answer comes back

    When the person submits, the result arrives as a new message in the same session, and the agent replies in the same thread.

Page types

Your text agent can do a lot more now.

Each page type is built for one kind of decision. The phone runs the real page: submit it and the agent replies.

Photos, ratings and open times. Pick a place and a time in one step.

restaurant_picker

Open times by day, with taken ones greyed out.

time_slots

Photos, colors and sizes, with sold-out sizes greyed out.

product

Items and a total to check before your agent orders. No payment on the page.

checkout

Rows to sort and compare, with one to pick.

table

Collect details like a name, a phone number and a delivery window.

form

A day-by-day plan with times and places. Approve it or ask for changes.

itinerary

Photos, prices and policies, with one marked Recommended.

hotel_picker

See all 12 page types

Three places have a table for four on Friday. Pick one:

Three places have a table for four on Friday. Pick one:

What agents use it for

Small decisions, every day.

Most of what an agent asks people to do is small: pick, compare, choose a time, review an order, fill in. Each one is a single page.

  • Pick dinner for four

    Three places have a table for four on Friday. Pick one:

    restaurant_picker

  • Choose a color and size

    The linen shirt you asked about comes in three colors. Pick one:

    product

  • Compare the options

    I compared standing desks under $800. Pick the one you want:

    table

  • Find a time that works

    The Corner Table has these tables open. Which time?

    time_slots

  • Pick the dates

    Harbor Light has rooms most nights this month. Which dates?

    date_range

  • Review a cart

    Your mug and coffee reorder is in a cart. Check it here:

    checkout

  • Collect the details

    I need a few details to schedule your couch delivery.

    form

  • Pick a hotel for the trip

    Here are hotels for your three nights. One includes breakfast.

    hotel_picker

The story

Why we built it

While building Partyline, we discovered that booking flights and reservations was a frustrating, many-turn back and forth over text. Agent Pages solves that with a great experience.

Dennison BertramDennison BertramFounder, Partyline

Install

Three steps to your first page.

  1. 1

    Add the extension or the tools

    Mount the eve extension in one file, or add the AI SDK tools to your agent.

  2. 2

    Set one API key

    AGENT_PAGES_API_KEY in your environment. With eve, a missing key does not break the build; the first call says how to set it.

  3. 3

    Your agent starts sending pages

    With eve, the tools, the instructions for when to use a page, and the callback route come with the extension, and each answer arrives in the same session.

Read the install guide · llms.txt for coding agents

# 1. Install
$ npm install @agent-pages/eve

# 2. .env.local and Vercel env
AGENT_PAGES_API_KEY=ap_live_…
AGENT_PAGES_BASE_URL=https://agent-pages-blue.vercel.app

// agent/extensions/pages.ts
export { default } from "@agent-pages/eve";

3. What your agent sends, and what comes back

create_page({
  title: "Dinner on Friday",
  page: {
    type: "restaurant_picker",
    options: [ … ],
  },
})
→ { url: "https://agent-pages-blue.vercel.app/p/7Hq2…" }

// later, in the same session
"[Agent Pages] The person submitted …"

Trust

Careful with the parts that matter.

  • No payments on pages

    A cart page shows the items and collects delivery details, then sends them back. It never takes a payment; your agent handles any purchase.

  • Pages never send people elsewhere

    A page collects one answer and hands it back to your agent. It never redirects, and it books and orders nothing: your agent decides what happens next.

  • Pages expire

    Links are unguessable and expire after one hour by default. The first answer wins and closes the page; opening it again shows only “Thank you.”

  • Link previews people can read

    Every page gets a preview image with its title and first options, so people see what the link is before they tap it.

Pricing

Start free. Subscribe when you need more.

Free

$0

  • 1,000 pages every month
  • No card needed
  • Every page type
  • Hosted pages with link previews
Start free

Pro

$20/month

  • 5,000 pages a month included
  • Then $0.01 per page
  • Every page type
  • Hosted pages with link previews
Start with Pro

Scale

Custom pricing

  • For high-volume agents
  • Every page type
  • Hosted pages with link previews
Talk to us

A page is one link your agent sends. Usage resets every month.

How the prices compare

ProductFree each monthFirst paid planUnit
Agent Pages1,000 pages$20/mo for 5,000 pages, then $0.01 per pagePage
AgentForms.dev30 responses and 150 API calls$19/mo (Pro, in beta)Response, API call
Thesys3,000 API calls$49/mo for 25,000 calls, then $0.002 per callAPI call
Formspree50 submissions$15/mo for 200 submissionsSubmission
TallyUnlimited submissions (fair use)$24/mo (Pro)Not metered

Units differ: a page is one link your agent sends; form tools count submissions or responses, and Thesys counts API calls. Prices from each vendor’s public pricing page on October 9, 2026.

Stop sending numbered lists.

Give your agent a page for every decision it asks people to make.