Skip to main content
The Patch API lets you make small, targeted changes to your resume without sending the entire data object. Instead of replacing the whole resume with a PUT, you send a list of JSON Patch operations that describe exactly what to change. This is based on the JSON Patch (RFC 6902) standard.

When to Use PATCH vs PUT

The PATCH endpoint only modifies the resume data (the JSONB column). To update top-level resume properties like name, slug, tags, or isPublic, use the existing PUT /resume/{id} endpoint.

Authentication

All requests require your API key in the x-api-key header. See Using the API for how to create one.
If you’re self-hosting, replace https://rxresu.me with your instance URL. The API is served under /api/openapi.

Endpoint

Request Body

The resume ID is taken from the URL path, so the request body only requires the operations array:
Each operation is an object with the following properties:

Examples

Replace a Basic Field

Update the resume holder’s name and headline:

Add an Experience Entry

Append a new item to the experience section:
The path /sections/experience/items/- uses the special - index, which means “append to the end of the array”. To insert at a specific position, use a numeric index like /sections/experience/items/0 for the beginning.

Remove an Item from a Section

Remove the second skill (index 1) from the skills section:

Update Metadata (Template, Colors, Fonts)

Switch the template and update the primary color:

Test-Then-Replace (Optimistic Concurrency)

The test operation checks that a value matches before proceeding. If the test fails, the entire patch is rejected. This is useful to avoid overwriting changes made by another client:
If /basics/name is not "Albert Einstein" at the time of the request, the entire patch will fail with a 400 error and no changes will be applied.

Move an Item Within a Section

Move the first experience item to the third position:

Error Handling

All operations in a single request are applied atomically. If any operation fails (including a test), none of the operations are applied.

Tips

  • Fetch first, then patch. Use GET /resume/{id} to inspect the current structure before crafting your operations. This helps you target the correct paths and array indices.
  • Use test for safety. When updating a value you expect to be a specific value, combine test + replace to avoid accidentally overwriting concurrent changes.
  • Batch related changes. You can send multiple operations in a single request. They are applied in order, so later operations can depend on earlier ones.
  • The - index appends. When adding items to arrays, use - as the index (e.g., /sections/skills/items/-) to append to the end.