Skip to main content
This walks through the hero curl from the marketing site — create a person, declare a new schema attribute, then write the attribute on that person, and watch enum validation reject a bad value.

1. Get an API key

Sign up at $SALTY_WEB/signup — see Introduction → Hosts at a glance for the env vars. After email verification you land on /api with your first sk_live_… key shown ONCE — store it as $SALTY_API_KEY:
(For purely scripted setups, hit POST $SALTY_API/workspaces/bootstrap with a Supabase JWT to provision a workspace + first key idempotently.)
Only the first 16 characters (sk_live_xxxxxxxx) are stored on the server, hashed with argon2. If you lose the full key, revoke it and create a new one.

2. Create a person

Response:

3. Add a custom attribute to the People schema

Define a lifecycle_stage enum on the person object. Now every person write that includes custom_attributes.lifecycle_stage is validated against this enum.

4. Use the new attribute

Returns 200 with the updated person.

5. Watch validation reject a bad value

Returns 400 with the precise error envelope:

Where to go next