Skip to main content

Account Setup

Get from zero to your first API call in four steps: authenticate, create an organization, store your API key, and start building.

1. Authenticate​

Embedd uses passwordless authentication. Provide your email and enter the verification code sent to your inbox.

Request a code:

curl -X POST https://api.embedd.to/v1/auth/otp \
-H "Content-Type: application/json" \
-d '{"email": "you@company.com"}'

Verify the code:

curl -X POST https://api.embedd.to/v1/auth/verify \
-H "Content-Type: application/json" \
-d '{"email": "you@company.com", "code": "85056034"}'

Response:

{
"access_token": "eyJhbGciOi...",
"refresh_token": "53bku3di52oi...",
"expires_in": 3600,
"token_type": "bearer"
}

The access_token is your JWT — valid for 1 hour. Use it to create an organization. When it expires, use the refresh endpoint to get a new one.

2. Create an Organization​

Organizations are the top-level container for all your resources. Create one using your JWT:

curl -X POST https://api.embedd.to/v1/organizations \
-H "Authorization: Bearer eyJhbGciOi..." \
-H "Content-Type: application/json" \
-d '{"name": "my-company"}'

Response:

{
"organization": {
"id": "org_abc123",
"name": "my-company",
"status": "active",
"tier": "free",
"created_at": "2026-03-13T10:00:00Z"
},
"api_key": "sk_live_abc123..."
}

This does three things:

  • Creates your organization on the free tier
  • Makes you the owner
  • Generates your first API key and returns it once — store it now

The api_key value is the raw key. It will never be shown again.

3. Store Your API Key​

From this point on, you use the API key for all resource operations — not the JWT.

Your API key is prefixed with sk_ and is used for all resource operations (connections, vector tables, queries). Include it in the Authorization header:

curl https://api.embedd.to/v1/connections \
-H "Authorization: Bearer sk_live_abc123..."

You can create additional API keys later via the API Keys endpoint.

What You Get​

After creating an organization, you have:

ResourceDetails
OrganizationOn the free tier (3 tables, 100K vectors, 25 RPM)
Your roleOwner (full permissions)
API keyOne full permission key
Environmentprod (created automatically, cannot be deleted)

Environments​

The prod environment is created automatically. All resources are scoped to an environment via the X-Environment-Id header. If you omit the header, requests default to prod.

To create additional environments (e.g., for development or staging):

curl -X POST https://api.embedd.to/v1/environments \
-H "Authorization: Bearer sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"name": "dev"}'

See Environments API Reference for details.

Inviting Team Members​

Owners and admins can invite others to the organization:

curl -X POST https://api.embedd.to/v1/organizations/org_abc123/invitations \
-H "Authorization: Bearer YOUR_SUPABASE_JWT" \
-H "Content-Type: application/json" \
-d '{"email": "teammate@company.com", "role": "admin"}'

Invitations expire after 7 days. See Organizations API Reference for the full invitation flow.

Next Steps​