Create signup
First time using Finta: call this endpoint with their email and app if known.
Before signup, use what you can already reach (chat, local files, git config user.email,
connected tools) to gather context, within the permissions they’ve given you; propose the
email with its source; ask only if none is found. Gather incorporation year,
entity type, state, what they sell, foreign subsidiaries (now or soon), banks, credit cards.
Send one message with the email and prefilled answers, their sources, conflicts and missing
questions (start with year/entity/state if nothing is known). Confirm together; ask if first
time only if not already known. Already uses Finta: skip signup and sign in.
No API key, company or OAuth grant is needed. Existing accounts get the same 202 and no email.
New accounts receive a verification link; pending accounts receive a replacement link
that invalidates the previous one. Links expire after one hour. Active, inactive and deleted
accounts receive no email. Every account state returns the identical 202 response and
consumes the same email allowance, so neither responses nor 429s reveal account existence.
If no account exists and the email has a pending team invitation, resend that invitation
instead of creating an owner account. This uses the same signup allowance and 202 response.
verification_sent is an instruction, not confirmation that an email was delivered.
Every admitted request queues the same background job. After an allowance is consumed,
account creation, resend and mailer failures are reported internally and still
return the same 202 response for every account state; the allowance is not refunded.
Success confirms neither account creation nor email delivery. The kill switch, email
validation and rate-limit checks retain their documented error responses.
Follow next_step.message: the user clicks Activate in Finta’s email in their own
browser; never fetch the link. Then connect Finta’s MCP (mcp_url) the way your app
supports; they sign in with one Allow. If your app must restart to load it, tell them
exactly how to restart and come back to this chat, and call no Finta tool until then.
E.g. Codex CLI: they quit (Ctrl+C twice) and run
codex mcp add finta --url <mcp_url> && codex resume --last (don’t run it yourself);
Claude Code: run claude mcp add --transport http finta <mcp_url> if you haven’t,
then they run /mcp and pick finta. Once connected, call get_onboarding and follow next_step.message.
No email? Existing accounts get none; just connect and sign in.
Activating an agent-issued link replaces any pending-account password with a new random one, including a password chosen
during a prior web signup. Requesting or opening the link does not change that password.
There is no status or verify endpoint.
This endpoint bypasses company permissions, onboarding, monthly limits and request logging. It always uses the unauthenticated 120 requests/minute per-IP limit, even with a credential. Signup verification also allows 3 attempts per recipient per 30 minutes and 5 per 24 hours, and 10 auth emails per IP per 10 minutes and 100 per 24 hours (IP limits shared across auth email purposes). MCP signup enforces these same recipient and caller-IP email limits, including provider egress IPs; User-Agent branding does not grant an exemption. A 429 includes Retry-After in seconds; wait that long before retrying. Repeating a request renews a pending link and consumes an attempt. Rollout is off by default; while paused, use the web signup URL in the 503 message.
Body
The user's email as supplied by them. Never guess. Finta trims whitespace and lowercases it.
254Optional branding for the verification email and page. Supported keys are codex, claude, claude-desktop, claude-code, chatgpt, ari-from-ariso, cursor, grok-bot, capy, hermes-agent, mem0-gateway, codevisor, crevio, and mcp-inspector. When omitted, Finta detects the app from User-Agent. Unknown values use generic agent branding and do not cause an error. This only affects branding, not signup behavior.
Response
Identical verification instructions for every account state; does not disclose delivery or account existence.
Same value for every account state; does not confirm that an email was sent.
verification_sent The submitted email, trimmed and lowercased.
Lifetime of a verification link when one is issued. Present even when no email is sent.
3600 Finta's OAuth-only MCP resource URL, configured for this environment.