API Reference
Authenticated CRUD
Authenticated CRUD
17 endpoints to manage your profile, skills, experience, education, projects, and resume import.
All require an X-API-Key header.
Base URL
Authenticated CRUD
17Profile
Get your full profile
Response
| Field | Type | Required | Description |
|---|---|---|---|
| id | uuid |
Yes | User ID* |
| username | string |
Yes | Username* |
string |
Yes | Email (private)* | |
| full_name | string |
Yes | Display name* |
| bio | string? |
No | Bio |
Requires API Key — set it in the auth bar above
Response 200 OK
{
"id": "a1b2c3d4-5678-9abc-def0-123456789abc",
"username": "hershel",
"email": "hershel@example.com",
"full_name": "Hershel Moshkovitz",
"bio": "Full-stack developer passionate about building elegant APIs.",
"location": "Herzliya, Israel",
"website": "https://hershel.dev",
"github_url": "https://github.com/hershel",
"linkedin_url": "https://linkedin.com/in/hershel"
}
Update your profile
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| full_name | string |
No | Display name |
| bio | string |
No | Bio (max 1000 chars) |
| location | string |
No | Location |
| website | string |
No | Website URL |
| github_url | string |
No | GitHub profile URL |
| linkedin_url | string |
No | LinkedIn profile URL |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| UserPrivate | object |
Yes | Updated profile data* |
Requires API Key — set it in the auth bar above
Request
{
"bio": "Building APIs that make resumes come alive.",
"location": "Tel Aviv, Israel"
}
Response 200 OK
{
"id": "a1b2c3d4-5678-9abc-def0-123456789abc",
"username": "hershel",
"email": "hershel@example.com",
"full_name": "Hershel Moshkovitz",
"bio": "Building APIs that make resumes come alive.",
"location": "Tel Aviv, Israel"
}
Skills
Add a new skill
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string |
Yes | Skill name (e.g. "Python")* |
| category | string |
No | Category (e.g. "Languages") |
| proficiency | string |
No | Level: beginner, intermediate, advanced, expert |
| years_of_experience | integer |
No | Years of experience |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| SkillResponse | object |
Yes | Created skill with id and timestamps* |
Requires API Key — set it in the auth bar above
Request
{
"name": "Python",
"category": "Languages",
"proficiency": "expert",
"years_of_experience": 5
}
Response 200 OK
{
"id": "c3d4e5f6-789a-bcde-f012-3456789abcde",
"name": "Python",
"category": "Languages",
"proficiency": "expert",
"years_of_experience": 5,
"user_id": "a1b2c3d4-5678-9abc-def0-123456789abc"
}
Update a skill
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| skill_id | uuid |
Yes | Skill ID* |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string |
No | Skill name |
| category | string |
No | Category |
| proficiency | string |
No | Proficiency level |
| years_of_experience | integer |
No | Years |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| SkillResponse | object |
Yes | Updated skill* |
Requires API Key — set it in the auth bar above
Request
{
"proficiency": "advanced",
"years_of_experience": 6
}
Response 200 OK
{
"id": "c3d4e5f6-789a-bcde-f012-3456789abcde",
"name": "Python",
"category": "Languages",
"proficiency": "advanced",
"years_of_experience": 6
}
Delete a skill
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| skill_id | uuid |
Yes | Skill ID* |
Requires API Key — set it in the auth bar above
Response 200 OK
204 No Content
Experience
Add work experience
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| company | string |
Yes | Company name* |
| title | string |
Yes | Job title* |
| location | string |
No | Location |
| description | string |
No | Role description |
| start_date | date |
Yes | Start date (YYYY-MM-DD)* |
| end_date | date |
No | End date (YYYY-MM-DD) |
| is_current | boolean |
No | Currently working here? |
| technologies | string |
No | Technologies used |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| ExperienceResponse | object |
Yes | Created experience entry* |
Requires API Key — set it in the auth bar above
Request
{
"company": "RESTume Inc.",
"title": "Senior Backend Engineer",
"location": "Herzliya, Israel",
"start_date": "2024-01-15",
"is_current": true,
"technologies": "Python, FastAPI, ChromaDB",
"description": "Building the next-gen developer resume platform."
}
Response 200 OK
{
"id": "e5f67890-abcd-ef01-2345-6789abcdef01",
"company": "RESTume Inc.",
"title": "Senior Backend Engineer",
"location": "Herzliya, Israel",
"start_date": "2024-01-15",
"end_date": null,
"is_current": true,
"description": "Building the next-gen developer resume platform.",
"technologies": "Python, FastAPI, ChromaDB"
}
Update experience
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| experience_id | uuid |
Yes | Experience ID* |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| company | string |
No | Company name |
| title | string |
No | Job title |
| location | string |
No | Location |
| description | string |
No | Description |
| start_date | date |
No | Start date |
| end_date | date |
No | End date |
| is_current | boolean |
No | Currently working here? |
| technologies | string |
No | Technologies |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| ExperienceResponse | object |
Yes | Updated experience* |
Requires API Key — set it in the auth bar above
Request
{
"title": "Lead Backend Engineer",
"technologies": "Python, FastAPI, ChromaDB, Docker"
}
Response 200 OK
{
"id": "e5f67890-abcd-ef01-2345-6789abcdef01",
"company": "RESTume Inc.",
"title": "Lead Backend Engineer",
"location": "Herzliya, Israel",
"start_date": "2024-01-15",
"is_current": true,
"technologies": "Python, FastAPI, ChromaDB, Docker"
}
Delete experience
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| experience_id | uuid |
Yes | Experience ID* |
Requires API Key — set it in the auth bar above
Response 200 OK
204 No Content
Education
Add education entry
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| institution | string |
Yes | Institution name* |
| degree | string |
Yes | Degree (e.g. "B.Sc Computer Science")* |
| field_of_study | string |
No | Field of study |
| description | string |
No | Description |
| start_date | date |
Yes | Start date (YYYY-MM-DD)* |
| end_date | date |
No | End date (YYYY-MM-DD) |
| gpa | float |
No | GPA (0.0-4.0) |
| is_current | boolean |
No | Currently enrolled? |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| EducationResponse | object |
Yes | Created education entry* |
Requires API Key — set it in the auth bar above
Request
{
"institution": "IDC Herzliya",
"degree": "B.Sc.",
"field_of_study": "Computer Science",
"start_date": "2022-10-01",
"end_date": "2025-06-30",
"gpa": 3.7,
"description": "Specialization in AI and distributed systems."
}
Response 200 OK
{
"id": "f6789012-bcde-f012-3456-789abcdef012",
"institution": "IDC Herzliya",
"degree": "B.Sc.",
"field_of_study": "Computer Science",
"start_date": "2022-10-01",
"end_date": "2025-06-30",
"gpa": 3.7,
"is_current": false,
"description": "Specialization in AI and distributed systems."
}
Update education
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| education_id | uuid |
Yes | Education ID* |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| institution | string |
No | Institution |
| degree | string |
No | Degree |
| field_of_study | string |
No | Field of study |
| description | string |
No | Description |
| start_date | date |
No | Start date |
| end_date | date |
No | End date |
| gpa | float |
No | GPA |
| is_current | boolean |
No | Currently enrolled? |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| EducationResponse | object |
Yes | Updated education* |
Requires API Key — set it in the auth bar above
Request
{
"gpa": 3.85,
"description": "Graduated with honors. Focus on AI and distributed systems."
}
Response 200 OK
{
"id": "f6789012-bcde-f012-3456-789abcdef012",
"institution": "IDC Herzliya",
"degree": "B.Sc.",
"field_of_study": "Computer Science",
"gpa": 3.85,
"description": "Graduated with honors. Focus on AI and distributed systems."
}
Delete education
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| education_id | uuid |
Yes | Education ID* |
Requires API Key — set it in the auth bar above
Response 200 OK
204 No Content
Projects
Add a portfolio project
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string |
Yes | Project name* |
| description | string |
No | Project description |
| url | string |
No | Live URL |
| repository_url | string |
No | Repository URL |
| technologies | string |
No | Technologies used |
| highlights | string |
No | Key highlights |
| start_date | string |
No | Start date |
| end_date | string |
No | End date |
| is_featured | boolean |
No | Featured project? |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| ProjectResponse | object |
Yes | Created project* |
Requires API Key — set it in the auth bar above
Request
{
"name": "RESTume",
"description": "SaaS platform that turns resumes into live APIs with AI chat.",
"technologies": "Python, FastAPI, ChromaDB, HTMX, Tailwind CSS",
"url": "https://restume.com",
"repository_url": "https://github.com/HershelT/RESTume",
"is_featured": true
}
Response 200 OK
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "RESTume",
"description": "SaaS platform that turns resumes into live APIs with AI chat.",
"technologies": "Python, FastAPI, ChromaDB, HTMX, Tailwind CSS",
"url": "https://restume.com",
"repository_url": "https://github.com/HershelT/RESTume",
"is_featured": true
}
Update a project
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| project_id | uuid |
Yes | Project ID* |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string |
No | Project name |
| description | string |
No | Description |
| url | string |
No | Live URL |
| repository_url | string |
No | Repository URL |
| technologies | string |
No | Technologies |
| highlights | string |
No | Highlights |
| start_date | string |
No | Start date |
| end_date | string |
No | End date |
| is_featured | boolean |
No | Featured? |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| ProjectResponse | object |
Yes | Updated project* |
Requires API Key — set it in the auth bar above
Request
{
"description": "Full-stack SaaS platform with RAG AI, MCP recruiting server, and live API.",
"technologies": "Python, FastAPI, ChromaDB, HTMX, Alpine.js, Tailwind CSS"
}
Response 200 OK
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"name": "RESTume",
"description": "Full-stack SaaS platform with RAG AI, MCP recruiting server, and live API.",
"technologies": "Python, FastAPI, ChromaDB, HTMX, Alpine.js, Tailwind CSS",
"is_featured": true
}
Delete a project
Path Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| project_id | uuid |
Yes | Project ID* |
Requires API Key — set it in the auth bar above
Response 200 OK
204 No Content
Import
Parse a resume file (PDF, DOCX, or JSON)
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| file | file |
Yes | Resume file (PDF, DOCX, or JSON). Send as multipart/form-data.* |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| profile | object |
Yes | Parsed profile fields* |
| skills | array |
Yes | Parsed skills list* |
| experience | array |
Yes | Parsed work experience* |
| education | array |
Yes | Parsed education entries* |
| projects | array |
Yes | Parsed projects* |
Requires API Key — set it in the auth bar above
Response 200 OK
{
"profile": {
"full_name": "Hershel Moshkovitz",
"bio": "Full-stack developer",
"location": "Herzliya, Israel"
},
"skills": [
{"name": "Python", "category": "Languages", "proficiency": "expert"}
],
"experience": [...],
"education": [...],
"projects": [...]
}
Commit parsed resume data to your profile
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| profile | object |
No | Profile fields to update |
| skills | array |
No | Skills to add |
| experience | array |
No | Experience entries to add |
| education | array |
No | Education entries to add |
| projects | array |
No | Projects to add |
Response
| Field | Type | Required | Description |
|---|---|---|---|
| profile_updated | boolean |
Yes | Whether profile was updated* |
| skills_added | integer |
Yes | Number of skills added* |
| experience_added | integer |
Yes | Number of experience entries added* |
| education_added | integer |
Yes | Number of education entries added* |
| projects_added | integer |
Yes | Number of projects added* |
Requires API Key — set it in the auth bar above
Request
{
"profile": {"bio": "Full-stack developer"},
"skills": [{"name": "Python", "category": "Languages"}],
"experience": [],
"education": [],
"projects": []
}
Response 200 OK
{
"profile_updated": true,
"skills_added": 1,
"experience_added": 0,
"education_added": 0,
"projects_added": 0
}
Usage
Get your API usage analytics
Response
| Field | Type | Required | Description |
|---|---|---|---|
| total_requests | integer |
Yes | Total API requests* |
| last_24h | integer |
Yes | Requests in last 24 hours* |
| last_7d | integer |
Yes | Requests in last 7 days* |
| last_30d | integer |
Yes | Requests in last 30 days* |
Requires API Key — set it in the auth bar above
Response 200 OK
{
"total_requests": 1247,
"last_24h": 38,
"last_7d": 256,
"last_30d": 891
}