Start an API signup handoff (7-day free trial, card required)
Public endpoint for agents and AI tools to start a posterly signup with only an email address. By default this creates a posterly account (or reuses an unconfirmed, never-paid one that an earlier signup created) and starts Stripe Checkout for the monthly Starter plan plus the API/MCP add-on. Checkout starts a 7-day free trial: a valid card is required, nothing is charged today, you are charged on day 8 unless you start the paid plan sooner, and API and MCP are limited during the trial (20 writes and 100 reads per hour, 25 posts in total, no batch posting, AI video, webhooks or OAuth clients). An account that already had a trial is charged at checkout instead (billing.trial_period_days is 0). Agent signup is monthly only with the add-on. If the email already belongs to a real posterly account, the endpoint changes nothing, sends no email, creates no Checkout session and returns 200 with status sign_in_required, login_url and, when an OAuth handoff was supplied, oauth_authorize_url. The response is the same for every existing account and reveals no plan or billing state. The response always includes payment (trial terms, merchant and what an agent may do) and a billing block with trial, trial_period_days, card_required and charged_today. Nothing is due today, so payment.amount is null. Do not complete the trial Checkout with a one-time virtual card: it becomes the card on file and the day 8 charge fails. agent_pay (a prepaid PaymentIntent for a one-time Link virtual card, behind ENABLE_AGENT_CARD_PAY) is not available during a trial and is null. Browser Checkout is the path. The response includes poll_url so the AI conversation can report checkout/password/authorization progress. Password setup, social OAuth, and publish approval stay in the browser. No API key is returned from this endpoint. After the card is saved and the trial starts, the verified user lands on the API page and posterly auto-creates the first API key if none exists, showing it once. OAuth clients receive their access token after consent.
Request
- Base URL: https://www.poster.ly
- URL: https://www.poster.ly/api/v1/signup
- Auth: none required
Request body
Example request
{
"email": "owner@example.com",
"name": "Example Owner",
"tier": "starter",
"api_addon": true,
"source": "chatgpt"
}Response
Signup handoff created (status checkout_required), or the email already has an account (status sign_in_required)
Example response
{
"status": "checkout_required",
"payment_required": true,
"checkout_url": "https://checkout.stripe.com/c/pay/cs_live_...",
"checkout_redirect_url": "https://www.poster.ly/agents/signup/checkout?session_id=cs_live_123",
"checkout_session_id": "cs_live_123",
"poll_url": "https://www.poster.ly/api/v1/signup/sessions/cs_live_123",
"complete_url": "https://www.poster.ly/agents/signup/complete?session_id=cs_live_123",
"dashboard_url": "https://www.poster.ly/dashboard/api?api_signup=success",
"login_url": "https://www.poster.ly/login?next=%2Fdashboard%2Fapi%3Fapi_signup%3Dsuccess",
"oauth_authorize_url": null,
"payment": {
"amount": null,
"currency": "usd",
"amount_display": null,
"billing": "monthly_subscription",
"description": "posterly Starter plan + API access, billed monthly, with a 7-day free trial (card required, charged on day 8)",
"trial_period_days": 7,
"charged_today": false,
"merchant_name": "posterly",
"merchant_url": "https://www.poster.ly",
"checkout_redirect_url": "https://www.poster.ly/agents/signup/checkout?session_id=cs_live_123",
"pay_with": "stripe_hosted_checkout",
"agent_wallet": {
"supported": true,
"how": "This Checkout starts a free trial that requires a valid card. Nothing is charged today. Do not use a one-time virtual card: it becomes the card on file and the day 8 charge fails. Use a reusable card the person approved, or send checkout_redirect_url to the person.",
"spend_request": {
"merchant_name": "posterly",
"merchant_url": "https://www.poster.ly",
"amount": null,
"currency": "usd",
"context": "7-day free trial of posterly Starter plan + API access, charged on day 8"
}
}
},
"signup_session": {
"id": "cs_live_123",
"status": "checkout_pending",
"checkout_redirect_url": "https://www.poster.ly/agents/signup/checkout?session_id=cs_live_123",
"poll_url": "https://www.poster.ly/api/v1/signup/sessions/cs_live_123",
"complete_url": "https://www.poster.ly/agents/signup/complete?session_id=cs_live_123",
"status_message": "Waiting for the user to complete secure Stripe checkout and save a card. Start a 7-day free trial of posterly with API and MCP access. A card is required. You are charged on day 8, unless you start the paid plan sooner. API and MCP are limited during the trial."
},
"email_sent": false,
"account": {
"email": "owner@poster.ly",
"created": true
},
"billing": {
"mode": "base_and_api_addon_checkout",
"tier": "starter",
"interval": "month",
"api_addon": true,
"trial": true,
"trial_period_days": 7,
"card_required": true,
"charged_today": false
}
}Changes
No recorded changes to this operation across all 1 revision of this API.