People

Create a person

Create a person

Required scopes: people:write

Accepts both publishable (ys_pk_*) and secret (ys_sk_*) keys. Use a publishable key when posting from a browser intake form (the example below); use a secret key with people:write for server-to-server flows — the canonical create path before POST /v1/applications, which requires person_id.

Example (curl):

curl -X POST https://api.yardstick.team/v1/people \
  -H 'Authorization: Bearer ys_pk_live_…' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7c3a…' \
  -d '{"email":"alex@example.com","name":"Alex Lee"}'

Example (TypeScript):

await fetch("https://api.yardstick.team/v1/people", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.YS_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": crypto.randomUUID(),
  },
  body: JSON.stringify({ email: "alex@example.com", name: "Alex Lee" }),
});
post/v1/people

Request

  • Base URL: https://api.yardstick.team
  • URL: https://api.yardstick.team/v1/people
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Supported for safe retry. Reuse the same key to receive the cached response without repeating the operation.

X-Request-Idstring

Optional caller-supplied request identifier. Values must match ^[A-Za-z0-9_-]{1,128}$; a valid value is echoed in the response X-Request-Id header, otherwise the API generates one.

Request body

namestring
emailstring email
phonestring
linkedin_urlstring uri
resume_urlstring uri
notesstring

Response

Success

idstring required

Display id, e.g. per_<base32>

object'person' required
namestring nullable required
emailstring nullable required
phonestring nullable required
linkedin_urlstring nullable required
resume_urlstring nullable required
notesstring nullable required
livemodeboolean required

Changes

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