Skip to main content
API Reference Owner API

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/*.

Auth Authorization: Bearer <jwt> or X-API-Key: rst_...
JWT set Key set No credentials set

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

41

Core Profile and Resume Data (25)

MethodPathDescription
GET/v1/me/profileFetch the private owner profile record.
PATCH/v1/me/profileUpdate profile fields and explicit open-to-work state.
GET/v1/me/skillsList skills.
POST/v1/me/skillsCreate a skill.
PUT/v1/me/skills/{skill_id}Update a skill.
DELETE/v1/me/skills/{skill_id}Delete a skill.
GET/v1/me/experienceList work experience.
POST/v1/me/experienceCreate 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/educationList education entries.
POST/v1/me/educationCreate 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/projectsList projects.
POST/v1/me/projectsCreate a project.
PUT/v1/me/projects/{project_id}Update a project.
DELETE/v1/me/projects/{project_id}Delete a project.
GET/v1/me/certificationsList certifications.
POST/v1/me/certificationsCreate a certification.
PUT/v1/me/certifications/{certification_id}Update a certification.
DELETE/v1/me/certifications/{certification_id}Delete a certification.
POST/v1/me/import/parseParse uploaded PDF, DOCX, or JSON resumes into a preview payload.
POST/v1/me/import/commitCommit parsed resume data to the owner profile.
GET/v1/me/usageReturn API usage analytics.

Presentation, Security, and Resume State (13)

MethodPathDescription
GET/v1/me/themeReturn the active theme plus catalog and entitlement availability.
PATCH/v1/me/themeUpdate theme and accent color.
GET/v1/me/layoutReturn section order, hidden sections, and font preference.
PATCH/v1/me/layoutUpdate layout order, hidden sections, and font preference.
GET/v1/me/security-eventsList recent security audit events.
GET/v1/me/insightsReturn owner analytics and engagement payloads.
GET/v1/me/transcriptsList paginated chat transcripts for Pro users.
GET/v1/me/transcripts/{transcript_id}Fetch one transcript with full detail.
GET/v1/me/exports/profileExport the complete structured profile payload.
GET/v1/me/exports/transcriptsExport transcripts as JSON or CSV.
GET/v1/me/exports/insightsExport insights as JSON or CSV.
POST/v1/me/resume/resetClear imported resume content and embeddings.
GET/v1/me/resume/indexing-statusReport embedding/indexing completeness for the current profile.

Billing Actions (3)

MethodPathDescription
GET/v1/me/billingReturn current plan, cadence, waitlist state, and billing context.
POST/v1/me/billing/checkoutCreate a Stripe checkout session or route to portal when a subscription already exists.
POST/v1/me/billing/portalCreate a Stripe customer portal session.

Update owner profile fields with stable JSON semantics.

Request Body

FieldTypeDescription
full_name string Display name
bio string Bio text
location string Location
website string Website URL
github_url string GitHub URL
linkedin_url string LinkedIn URL
open_to_work boolean Explicit availability signal

Response

FieldTypeDescription
UserPrivate object Updated owner profile*
Requires owner auth — set a JWT token or API key in the auth bar above

                    
                

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

FieldTypeDescription
theme_id string Theme identifier from the returned catalog
accent_color string Hex color in #RRGGBB format

Response

FieldTypeDescription
theme_id string Stored theme selection*
effective_theme_id string Theme actually rendered after entitlement checks*
available boolean Whether premium theming is currently available*
catalog array Safe theme catalog for clients*
Requires owner auth — set a JWT token or API key in the auth bar above

                    
                

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

FieldTypeDescription
effective_plan string Current plan after entitlement resolution*
entitlement_source string billing, manual, trial, or another source*
billing object Stripe and checkout state summary*
waitlist object Waitlist signup truth for the current owner*
Requires owner auth — set a JWT token or API key in the auth bar above

                    
                

Response 200 OK

{
  "effective_plan": "free",
  "entitlement_source": "none",
  "billing": {
    "checkout_available": true,
    "portal_available": false
  },
  "waitlist": {
    "signed_up": false
  }
}