Skip to main content
POST
Start a signup

Body

application/json
email
string<email>
required

The person who will own the workspace and complete the payment. Lowercased before use. They can edit it on the checkout page.

Maximum string length: 254
workspace_name
string
required

What to call the workspace. Shown on the checkout page; it does not create anything.

Required string length: 1 - 64
primary_domain
string | null

The site to be tracked. A full URL is accepted and reduced to its hostname, so https://www.example.com/pricing is stored as www.example.com. Anything that is not a hostname is rejected rather than guessed at.

plan
enum<string> | null

Preselects the plan on the checkout page. Omit it and the person picks one there.

Available options:
growth,
scale,
performance,
null
key_request
object | null

Ask for a read key now. The person sees the approval card after payment. Any scope other than datalyr:read returns 400 with code: scope_not_allowed_at_signup.

Response

Accepted. The checkout link is ready, and a backup verification email has been sent. Identical for an address that already has an account.

The same shape for a new address and one that already has an account. No workspace id or key is returned here before payment.

status
enum<string>
required
Available options:
checkout_ready
signup_id
string<uuid>
required
signup_secret
string
required

dl_signup_ plus 43 characters. Returned once. The bearer credential for status_url and key_request.poll_url.

checkout_url
string<uri>
required

Give this to the person. Reusable until they pay. The token after # is the credential, so treat the whole URL as a secret.

status_url
string<uri>
required

GET /signup/{signupId} for this signup.

expires_at
string<date-time>
required

The checkout link stops working 7 days after creation.

key_request
object | null
required

null when the request carried no key_request.