Blog / Blog

Can an AI Agent Sign Up for a SaaS?

Binoy Perera

Yes, and AI agents already are signing up for SaaS products, as their owners. What your signup table looks like today, why blocking trades one problem for another, and how to rate-limit agents per human with the owner_email claim.

  • AgentID
  • saas
  • agent-signups
  • know-your-agent

TL;DR

  • Agents are signing up now, as people. Your signup table already contains them; you cannot see which rows.
  • Blocking trades one problem for another. Bot detection catches agents that behave like bots and misses agents that behave like their owners, while turning away paying automation.
  • Accountability is what makes admission safe. An agent with a verifiable owner can be limited per human, contacted, and cut off individually.
  • The mechanics are small. Add AgentID as an OIDC provider, create an AgentID application, request owner_email, and index your accounts on it.

Yes. AI agents can sign up for a SaaS product, and they already are. They use their owners' email addresses and complete the OTP and consent steps a human would.

That leaves a SaaS team with three questions:

  • How do you tell agents from people?
  • How many agents is one person running?
  • Who is accountable when one misbehaves?

A sign-in built for agents answers all three. With AgentID, the sign-in for AI agents from AgentMail, the agent signs in as itself through standard OpenID Connect.

Your app receives a stable identifier and the agent's verified email. If you create an AgentID application and request the owner_email scope, it also receives the owner's email, in the id_token and from /userinfo.

That owner claim turns an unknown bot into a customer you can rate-limit per person and contact by name. It is a stronger position than blocking.

Are AI agents already signing up for SaaS products?

AI agents are already signing up for SaaS products, and the evidence is in the support inbox rather than the analytics dashboard.

AgentMail, which sells inboxes to agents, launched an API endpoint that let agents sign up on their own. It then emailed new users to ask how they had found the product. Many did not know they had signed up, because their agent had done it.

Most support requests began arriving from agents. One large enterprise observed hundreds of signups from AgentMail-domain addresses in a short window, and could not tell whether that was one person's fleet or hundreds of customers.

The wider web points the same way:

  • All bots: Cloudflare put automated requests at 57.5% of HTTP requests to HTML content as of June 2026, counting all bot types rather than agents alone.
  • Agents specifically: HUMAN Security's March 2026 benchmark measured agent traffic growing 7,851% year over year, from a low 2024 base.

Neither figure is your signup rate. Both say the assumption that a signup is a person is no longer safe to make by default.

What does your signup table look like today?

Every AI agent that has signed up so far appears in your signup table as a human.

  • The email says a person. The agent used a person's email address.
  • The OTP passed. The agent either waited for the person to paste the code or had access to the person's inbox.
  • The consent screen was clicked. The agent was operating a browser.

If your product sends onboarding email, that sequence is going to an inbox whose owner may not know the account exists. That is why activation numbers look strange for those rows, and why support tickets arrive from addresses that never reply like people.

Three things you cannot do with this table:

  • Distinguish agent accounts from human ones.
  • Count agents per person.
  • Revoke an agent without locking out the person whose credentials it used.

Every abuse control you have is built on the account being the unit. The account is the wrong unit when one human runs many agents.

Should you block AI agents from signing up?

Bot-detection vendors will say yes, and for scripted abuse they are right. For AI agents, blocking is weaker than it sounds.

Detection catches agents that behave like bots: datacenter IPs, headless browser fingerprints, inhuman timing. It misses agents that behave like their owners, which increasingly means agents driving a real browser at human speed with the owner's cookies.

It also blocks the customers you want. An agent that provisions a database for its owner every week is a paying user with a regular pattern. At the network layer, it is indistinguishable from an agent creating throwaway accounts.

The alternative is to let agents identify themselves as agents, and to make that path more attractive than pretending to be human. That only works if both sides get something:

  • The agent gets a sign-in that does not require a person, an account of its own, and email it can read.
  • You get a stable identifier and a human you can hold responsible.

Accountability is the property that makes admission safe. An app that knows who stands behind an agent can let it sign up, act, and spend on its own, because there is someone to call if it goes wrong.

How do you tell agents from humans at sign-in?

Put a sign-in on your login page that only agents can use.

AgentID is an OpenID Connect provider whose subjects are agents. Each agent has an AgentMail inbox as its identity and an enrolled browser holding a key that never leaves it.

Add it as a custom OIDC provider in Clerk, Supabase, Auth0, Better Auth, or Auth.js with two values:

  • Issuer: https://auth.agentid.com
  • Client ID: your client_id

Or run npx @agentmail/agentid-cli init to configure it.

Every account created through that provider is an agent, tagged as such by the sign-in method. sub is its stable identifier, and email is an address you can send receipts to that will be read.

Agents that still sign up as humans will not disappear on day one. What changes is that you now have a legitimate door, and you can start steering toward it:

  • Mention it in your API docs.
  • List your app in the AgentID directory so agents browsing for services find you.
  • Apply the stricter human-verification steps only to the human door.

How do you rate-limit agents per human instead of per account?

Create an AgentID application and request the owner_email scope, then key your limits on the owner instead of the account.

  1. Create an application. Click Create application in the AgentID console, or run npx @agentmail/agentid-cli init.
  2. Request the scope. Ask for owner_email (and owner_profile for the name) when the agent signs in.
  3. Read the owner. owner_email and owner_name arrive in the id_token and from /v0/userinfo.

If the agent is not allowed to share its owner, it can't finish the sign-in alone; the organization owner has to approve it. When a sign-in succeeds, the field is there.

Store owner_email on the agent's account and index it. Per-human policy becomes one query.

PolicyKeyed on accountKeyed on owner_email
Free-tier quotaOne free tier per agent; ten agents get ten free tiersOne free tier per human, shared across their agents
Account capUnenforceableN agents per owner, your choice of N
Abuse responseBan one account; the next agent signs upBan the owner; every agent they run is covered
BillingCard per agent, or noneRoll agents up to one billing contact
Who you email when it breaksThe agent's inboxThe agent's inbox for operations, the owner for accountability

The right N depends on your product. A database company might allow unlimited agents per owner and bill by usage. A product with a costly free tier might allow three.

The point is that the number is now yours to set.

What is Know Your Agent, and do you need it?

Know Your Agent, or KYA, is verifying which agent is transacting and which human or organization stands behind it, by analogy with Know Your Customer.

The term comes from the payments and agentic-commerce world. Visa, Mastercard, and Ant International announced a shared KYA interoperability framework on September 10, 2026.

McKinsey projected in October 2025 that agents could mediate $3 trillion to $5 trillion of global consumer commerce by 2030 under moderate scenarios. That is why payment providers care.

For a SaaS product, KYA at signup is exactly the owner claim above: a verified agent identity plus a verified owner, delivered in the sign-in.

The fuller treatment, including what to do when you need more than an email, is in how to verify the human behind an AI agent.

What changes in your product once agents are customers?

Less than you might expect. Most of a SaaS product keeps working unchanged when the customer is an agent.

  • Onboarding email works unchanged, because the agent reads its inbox.
  • Receipts and invoices work unchanged.
  • Support works, and in AgentMail's experience gets busier, because agents open tickets and follow up.

Two things are worth building:

  1. An owner invite. A way for the agent to invite its owner into the organization as a separate member, so a human can look at what the agent set up without sharing its login.
  2. Owner-keyed limits. Agent-specific rate limits and feature gates keyed on owner_email, which is one more column in a table you already have.

The differences between the two kinds of account, and what an agent account should be allowed to do, are laid out in how agentic accounts differ from user accounts.

The step-by-step integration is in how to let an AI agent sign in to your website. It is free for apps.

FAQ

Questions, answered.

Give agents a sign-in only agents can use. Add AgentID as a custom OIDC provider next to Google and GitHub; every account created through it is an agent, with a stable sub and a verified email the agent reads.

Like users with an inbox and no keyboard. They sign up, receive onboarding and receipts at their own email address, use the product through its API or UI, and open support tickets. What they need from the platform is a sign-in that does not require a person and an account that belongs to them rather than to their owner.

Register an AgentID client, request the owner_email scope, and key quotas and caps on the owner rather than the account. Ten agents from one person then share one free tier, and banning the owner covers every agent they run.

Verifying which agent is transacting and which human or organization stands behind it, by analogy with Know Your Customer. Visa, Mastercard, and Ant International announced a shared KYA framework on September 10, 2026. At a SaaS signup, KYA is a verified agent identity plus a verified owner, which is what the AgentID sign-in delivers.

Safer than the status quo, where agents sign in as their owners. With AgentID no password or reusable key crosses the sign-in, revoking one agent touches nothing else, and the owner claim gives you a person to contact. The token proves which agent it is, not that it behaves; your abuse controls still apply.

Blog

Suggested reading

View all posts

Guides · September 15, 2026

How to Verify the Human Behind an AI Agent

Know Your Agent (KYA) at the sign-in layer: how to verify the human behind an AI agent with AgentID. Create an AgentID application, request the owner_email scope, and read it from the id_token or /userinfo. What happens when the agent lacks permission to share its owner.

Guides · September 15, 2026

How to Let an AI Agent Sign In to Your Website

AI agent login for your website: add AgentID, the OpenID Connect provider built for agents, to the login you already have. Two configuration values, no SDK, and the agent signs in from a browser it enrolled once. Where sub, email, and owner_email actually arrive.

Prompt

Give yourself access to AgentMail
by following the guide at:

https://docs.agentmail.to/agent-onboarding

and refer to:

https://agentmail.to/llms.txt

for the documentation index.

Give your agent an identity of its own.

Create an AgentMail inbox and let your agent start signing in as a real user.