Solo Accounts

Provision a solo creator account

Creates a solo creator account for one of your users, and returns either active (grant uploads now) or the pending shape with an onboardingUrl to redirect them to. Idempotent on two natural keys, (partner, externalUserId) and (partner, email), so a retry after a timeout cannot produce a second account, a second charge, or a second email. There is no idempotency header to send. If the address already belongs to an Easy2257 user, Easy2257 emails that person for approval instead of handing their identity records to your platform. The response is deliberately identical either way, so your integration cannot be used to probe whether one of your users already has an Easy2257 account.

post/api/v1/solo-accounts

Request

  • Base URL: https://easy2257.com
  • URL: https://easy2257.com/api/v1/solo-accounts
  • Auth: HTTP bearer

Request body

externalUserIdstring required

Your own user id for this creator. Half of the natural idempotency key: a repeat POST with the same externalUserId returns the existing account with 200 instead of 201. Store the accountId you get back; every later call needs it.

emailstring email required

The creator's email address. The second idempotency scope: one account per (partner, exact address), so a creator's consent decision survives a change to your own user id for them. If the address already belongs to an Easy2257 user, Easy2257 emails that user for approval instead of linking them to you.

callbackUrlstring uri required

Required. Stored on the account record for your own reference. It does NOT subscribe you to anything: webhook deliveries go only to endpoints you register in the partner portal at partner.easy2257.com/webhooks.

firstNamestring

Optional. Used in the email Easy2257 sends the creator. Sanitized and truncated to 100 characters.

lastNamestring

Optional. Sanitized and truncated to 100 characters.

redirectUrlstring uri

Optional. Where Easy2257 sends the creator after they finish onboarding.

Example request

{
  "externalUserId": "user_12345",
  "email": "creator@example.com",
  "callbackUrl": "https://your-platform.com/webhooks/ez2257",
  "firstName": "Jane",
  "lastName": "Doe",
  "redirectUrl": "https://your-platform.com/dashboard"
}

Response

Existing account returned (replay, or an account already provisioned for this address).

accountIdstring required

Easy2257's id for this account. Opaque cuid. Store it: every later call is addressed by it.

status'pending_id_verification' | 'subscribed_pending_id' | 'active' | 'suspended' required

The four values a partner can observe. pending_id_verification: not finished. This one value covers every pre-active state, including an emailed link request that has not been answered, so account existence and consent decisions are never observable through the API. subscribed_pending_id: paid, ID not yet verified. Still not uploadable. active: paid and ID verified. This is the only value that unlocks uploads. suspended: not in custody right now. Revoke upload access. suspendReason says why: the creator's own subscription lapsed, your platform fee lapsed, Easy2257 suspended them, or you deactivated them through POST .../deactivate.

onboardingUrlstring uri

Present on every not-yet-active response, absent when status is active. Send the creator here in top-level navigation, not an iframe, because ID verification needs camera access. Tokens last 7 days and are refreshed automatically on later reads, so redirect to whatever the API just returned rather than storing the link.

createdAtstring date-time required

Example response

{
  "accountId": "cmd4k2x9p0001qz8h3v7ftg2a",
  "onboardingUrl": "https://easy2257.com/partner-onboard/9f2c...",
  "createdAt": "2026-04-22T12:00:00Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.