GET /v1/user/details?user_id=<you>
Your account profile, dual-profile flags, verification state.
API
Personal API keys for every account. Pull your shifts into Replit, automate from Claude Code, sync your schedule into Notion, build anything you want. We auto-provision a key for everyone — sign in and copy it from your settings.
Authentication
Every API request to https://api.shiftsee.com/v1/* requires an Authorization header with your personal API key. The key resolves to your user account; permissions match what you can do in the app.
GET https://api.shiftsee.com/v1/user/details
Authorization: Bearer ssk_live_a1b2c3d4e5f6...
Content-Type: application/json
Quick start
Find your key in User Settings → API key. Then:
curl https://api.shiftsee.com/v1/shifter/of_user \
-H "Authorization: Bearer $SHIFTSEE_API_KEY" \
-H "Content-Type: application/json"
import httpx, os
key = os.environ["SHIFTSEE_API_KEY"]
r = httpx.get(
"https://api.shiftsee.com/v1/shifter/of_user",
headers={"Authorization": f"Bearer {key}"},
)
print(r.json())
const key = process.env.SHIFTSEE_API_KEY;
const res = await fetch("https://api.shiftsee.com/v1/shifter/of_user", {
headers: { "Authorization": `Bearer ${key}` },
});
console.log(await res.json());
Common endpoints
Below is a handful of endpoints that map directly to typical personal-integration use cases. The full schema lives in the OpenAPI spec; any client generator (openapi-generator, oasdiff, etc) consumes it directly.
GET /v1/user/details?user_id=<you>Your account profile, dual-profile flags, verification state.
GET /v1/shifter/of_user?user_id=<you>Your shifter profile (slug, public details, ratings).
GET /v1/business/of_user?user_id=<you>Every business you own, with default-business flag.
POST /v1/shift_request/list_of_requestsFilterable list of your shift requests by date / status / role / counterparty.
POST /v1/request_authorization/list_of_requestsYour connections (incoming, outgoing, accepted) for either side.
GET /v1/messaging/inboxUnified inbox: direct + request-tab + pinned threads.
POST /v1/messaging/messagesSend a message to a connected counterparty.
POST /v1/help/searchSearch the help corpus the same way the in-app helper does.
Need the full spec? Sign in and head to /admin#/api-docs if you have admin access, or email api@shiftsee.com for the OpenAPI dump.
Plug it in
Add SHIFTSEE_API_KEY as a Secret. Every request reads from process.env or os.environ. Done.
Tell Claude what you want to build, paste the curl example above as context. The OpenAPI spec gives full type info.
Use any HTTP-based automation tool (Make, Zapier, n8n) to sync your schedule, payments, or messages out.
"Get URL contents" with the Authorization header turns ShiftSee into a personal data source on your phone.
Apps Script + UrlFetchApp pulls your shift list into a sheet for accounting, tax prep, or cap-table-style reporting.
Build anything: a personal earnings tracker, a rate-trend chart, a Slack reminder bot. The platform is yours.
Safety
The full key is shown once at creation or regenerate. After that we only show the first 12 characters as a prefix for identification. Never paste a key into a public repo, a public chat, or a screenshot. If a key leaks, click Regenerate in your settings — that revokes the old key immediately and mints a new one.
Demo accounts (shifterdemo and businessdemo) get keys too. Their data is reset every night, so don't build anything you care about on top of demo keys — they're for kicking the tires only.
Limits
Personal API keys are rate-limited to 600 requests / 5 minutes per key. That's plenty for personal automation, dashboards, and AI agents. Need more for a real product? Look at the External Partner API — different surface, OAuth, scoped credentials, written for company integrations. Email partners@shiftsee.com.