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 the rest of the patch runs. If the test fails, the whole patch is rejected, which keeps you from 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 writing your operations, so you target the correct paths and array indices.
  • Use test for safety. When you expect a field to hold a specific value, combine test + replace so you don’t overwrite a concurrent change.
  • Batch related changes. You can send multiple operations in one request. They are applied in order, so a later operation can depend on an earlier one.
  • The - index appends. When adding items to arrays, use - as the index (e.g., /sections/skills/items/-) to append to the end.