Owner API
41 authenticated endpoints for managing your own profile. Update your bio, skills, and experience; customize your theme and layout; access analytics and chat transcripts; export your data; and manage billing — all under /v1/me/*.
Owner API Design Notes
These endpoints are optimized for owner-facing tools. The CLI consumes the same contracts as the web dashboard instead of screen-scraping HTML.
Owner routes accept either JWT bearer auth or X-API-Key. JWT-backed owner sessions are interactive and do not consume API-key quota.
Plan-aware features such as themes, layout customization, transcripts, insights export, and billing return explicit availability or access errors rather than permissive fallbacks.
Owner Endpoint Inventory
41Core Profile and Resume Data (25)
| Method | Path | Description |
|---|---|---|
GET | /v1/me/profile | Fetch the private owner profile record. |
PATCH | /v1/me/profile | Update profile fields and explicit open-to-work state. |
GET | /v1/me/skills | List skills. |
POST | /v1/me/skills | Create a skill. |
PUT | /v1/me/skills/{skill_id} | Update a skill. |
DELETE | /v1/me/skills/{skill_id} | Delete a skill. |
GET | /v1/me/experience | List work experience. |
POST | /v1/me/experience | Create a work-experience row. |
PUT | /v1/me/experience/{experience_id} | Update a work-experience row. |
DELETE | /v1/me/experience/{experience_id} | Delete a work-experience row. |
GET | /v1/me/education | List education entries. |
POST | /v1/me/education | Create an education entry. |
PUT | /v1/me/education/{education_id} | Update an education entry. |
DELETE | /v1/me/education/{education_id} | Delete an education entry. |
GET | /v1/me/projects | List projects. |
POST | /v1/me/projects | Create a project. |
PUT | /v1/me/projects/{project_id} | Update a project. |
DELETE | /v1/me/projects/{project_id} | Delete a project. |
GET | /v1/me/certifications | List certifications. |
POST | /v1/me/certifications | Create a certification. |
PUT | /v1/me/certifications/{certification_id} | Update a certification. |
DELETE | /v1/me/certifications/{certification_id} | Delete a certification. |
POST | /v1/me/import/parse | Parse uploaded PDF, DOCX, or JSON resumes into a preview payload. |
POST | /v1/me/import/commit | Commit parsed resume data to the owner profile. |
GET | /v1/me/usage | Return API usage analytics. |
Presentation, Security, and Resume State (13)
| Method | Path | Description |
|---|---|---|
GET | /v1/me/theme | Return the active theme plus catalog and entitlement availability. |
PATCH | /v1/me/theme | Update theme and accent color. |
GET | /v1/me/layout | Return section order, hidden sections, and font preference. |
PATCH | /v1/me/layout | Update layout order, hidden sections, and font preference. |
GET | /v1/me/security-events | List recent security audit events. |
GET | /v1/me/insights | Return owner analytics and engagement payloads. |
GET | /v1/me/transcripts | List paginated chat transcripts for Pro users. |
GET | /v1/me/transcripts/{transcript_id} | Fetch one transcript with full detail. |
GET | /v1/me/exports/profile | Export the complete structured profile payload. |
GET | /v1/me/exports/transcripts | Export transcripts as JSON or CSV. |
GET | /v1/me/exports/insights | Export insights as JSON or CSV. |
POST | /v1/me/resume/reset | Clear imported resume content and embeddings. |
GET | /v1/me/resume/indexing-status | Report embedding/indexing completeness for the current profile. |
Billing Actions (3)
| Method | Path | Description |
|---|---|---|
GET | /v1/me/billing | Return current plan, cadence, waitlist state, and billing context. |
POST | /v1/me/billing/checkout | Create a Stripe checkout session or route to portal when a subscription already exists. |
POST | /v1/me/billing/portal | Create a Stripe customer portal session. |
Update owner profile fields with stable JSON semantics.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| full_name | string |
No | Display name |
| bio | string |
No | Bio text |
| location | string |
No | Location |
| website | string |
No | Website URL |
| github_url | string |
No | GitHub URL |
| linkedin_url | string |
No | LinkedIn URL |
| open_to_work | boolean |
No | Explicit availability signal |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| UserPrivate | object |
Yes | Updated owner profile* |
Request
{
"bio": "Backend engineer building scalable infrastructure.",
"open_to_work": true
}
Response 200 OK
{
"username": "hershel",
"bio": "Backend engineer building scalable infrastructure.",
"open_to_work": true
}
Update the active profile theme and accent color for eligible plans.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| theme_id | string |
No | Theme identifier from the returned catalog |
| accent_color | string |
No | Hex color in #RRGGBB format |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| theme_id | string |
Yes | Stored theme selection* |
| effective_theme_id | string |
Yes | Theme actually rendered after entitlement checks* |
| available | boolean |
Yes | Whether premium theming is currently available* |
| catalog | array |
Yes | Safe theme catalog for clients* |
Request
{
"theme_id": "terminal",
"accent_color": "#00d4ff"
}
Response 200 OK
{
"theme_id": "terminal",
"effective_theme_id": "terminal",
"accent_color": "#00d4ff",
"available": true,
"effective_plan": "pro",
"catalog": []
}
Return billing truth for the current owner account.
Response
| Field | Type | Required | Description |
|---|---|---|---|
| effective_plan | string |
Yes | Current plan after entitlement resolution* |
| entitlement_source | string |
Yes | billing, manual, trial, or another source* |
| billing | object |
Yes | Stripe and checkout state summary* |
| waitlist | object |
Yes | Waitlist signup truth for the current owner* |
Response 200 OK
{
"effective_plan": "free",
"entitlement_source": "none",
"billing": {
"checkout_available": true,
"portal_available": false
},
"waitlist": {
"signed_up": false
}
}