UUpward API
v1
POST/api/public/v1/create-member
Requires x-auth-token

Create member

Create a team member under your company.

Creates the member under the company the API key belongs to, provisions their pages automatically and (unless disabled) sends them a branded welcome email with their page link. The pagename is auto-generated from the name when omitted. Every member gets an enroller: the member named in enroller_username, or the company owner when it is omitted.

Body fields

first_namestring (1–80)required

Member first name.

last_namestring (≤80)optional

Member last name.

emailstring (email)required

Member email; the welcome email and page link go here.

phonestring (≤40)optional

Member phone number.

pagenamestring (≤63)optional

Page slug. Letters, numbers and dashes only — no spaces, symbols, or leading/trailing dash. Auto-generated from the name when omitted; 422 when invalid, 409 when already taken.

titlestring (≤120)optional

Job title shown on the member page.

enroller_usernamestring (≤63)optional

Pagename/username of the member who enrolled them (the same value used for x-auth-user). Defaults to the company owner when omitted; 422 when no active member matches.

external_idstring (≤120)optional

Your own reference for this member (e.g. your internal ID). Must be unique inside your company; 409 when another member already uses it. Accepted afterwards as x-auth-user on Get member.

send_welcome_emailbooleanoptional

Defaults to true. Set to false to skip the branded welcome email.

Responses

201CreatedThe member was created and their pages provisioned.
{
  "success": true,
  "error": "none",
  "id": "7c4e2a1b-3d5f-4a0e-8b12-9f6c1d2e3a45",
  "pagename": "jane-doe",
  "first_name": "Jane",
  "last_name": "Doe",
  "email": "jane@example.com",
  "profile_url": "https://yourcompany.upward.page/jane-doe",
  "external_id": "CRM-1042",
  "enroller_username": "company-owner"
}
400Bad requestThe request body is not valid JSON.
{ "success": false, "error": "Body must be valid JSON" }
401UnauthorizedMissing, invalid, disabled or expired key.
{ "success": false, "error": "Missing x-auth-token header" }
409ConflictThe requested pagename is already taken within your company.
{ "success": false, "error": "The pagename \"jane-doe\" is already taken." }
422UnprocessableValidation failed; see the issues array.
{
  "success": false,
  "error": "Validation failed",
  "issues": ["email: Invalid email"]
}
500Server errorThe member could not be created; the request is logged for support.
{ "success": false, "error": "…database error message…" }
POST/api/public/v1/create-member

Member first name.

Member last name.

Member email; the welcome email and page link go here.

Member phone number.

Page slug. Letters, numbers and dashes only — no spaces, symbols, or leading/trailing dash. Auto-generated from the name when omitted; 422 when invalid, 409 when already taken.

Job title shown on the member page.

Pagename/username of the member who enrolled them (the same value used for x-auth-user). Defaults to the company owner when omitted; 422 when no active member matches.

Your own reference for this member (e.g. your internal ID). Must be unique inside your company; 409 when another member already uses it. Accepted afterwards as x-auth-user on Get member.

Defaults to true. Set to false to skip the branded welcome email.

ResponseNot sent yet