Appearance
Create patent instructions
POST /api/v2/external/patent-instructionsAuthentication: x-api-key header, with the patents:instructions:write scope. See Authentication and limits.
Applies one decision per patent event (PROCEED, SKIP_THIS_TIME or DROP) and returns the instruction receipt. Execution is immediate and synchronous (DIRECT mode); an executed instruction cannot be modified through the external API. A batch may span several patents, with one event per patent (the chronologically earliest un-instructed one).
Request body
The instructions to apply, one per patent event.
json
{
"instructions": [
{
"eventId": "9f0d1e7a-3b2c-4d5e-8f6a-7b8c9d0e1f2a",
"decision": "PROCEED"
}
]
}Body fields
| Field | Type | Required | Description |
|---|---|---|---|
instructions | array of objects | Yes | Instructions to apply, one per patent event. |
instructions[].eventId | string | Yes | UUID of the patent event to instruct. Format: uuid. |
instructions[].decision | string | Yes | One of: PROCEED, SKIP_THIS_TIME, DROP. |
Response
201 The instruction receipt created for the submitted patent events.
json
{
"object": "instructionReceipt",
"issueDate": "2026-07-22",
"reference": "REC-2026-0142",
"number": 142,
"instructions": [
{
"object": "instruction",
"id": "5d2f8c1a-6e7b-4f3d-9a0c-1b2d3e4f5a6b",
"decision": "PROCEED",
"status": "EXECUTED",
"executedAt": "2026-07-22T09:15:00.000Z",
"scheduledForExecutionAt": null,
"renewedDesignatedCountries": [
"text"
],
"excludedDesignatedCountries": [
"text"
]
}
]
}Response fields
| Field | Type | Description |
|---|---|---|
object | string | String describing the object type (auto-description). One of: instructionReceipt. |
issueDate | string or null | ISO date string. |
reference | string or null | Stable display reference of the receipt. |
number | integer or null | Sequential receipt number. |
instructions | array of objects | Instructions carried by this receipt. |
instructions[].object | string | String describing the object type (auto-description). One of: instruction. |
instructions[].id | string | Opaque Renewr UUID of the instruction. Format: uuid. |
instructions[].decision | string or null | One of: PROCEED, SKIP_THIS_TIME, DROP. |
instructions[].status | string | Lifecycle status of the instruction. One of: PENDING, SCHEDULED, EXECUTED, SUPERSEDED. |
instructions[].executedAt | string or null | ISO 8601 timestamp (UTC). Format: date-time. |
instructions[].scheduledForExecutionAt | string or null | ISO date string. |
instructions[].renewedDesignatedCountries | array of string or null | WO designations to renew. |
instructions[].excludedDesignatedCountries | array of string or null | WO designations to exclude. |
Errors
Errors use the application/problem+json envelope with stable machine-readable codes. See the Errors guide.
| Status | Description |
|---|---|
| 400 | Validation failed (validation_failed): carries per-field errors[] with RFC 6901 JSON Pointers. |
| 401 | Missing or invalid API key (invalid_api_key), or expired key (api_key_expired). |
| 403 | API key lacks the required scope (insufficient_scope, with requiredScope extension) or the operation is not enabled for this client (forbidden). |
| 404 | The resource does not exist in your portfolio (not_found). |
| 409 | The event already carries an executed instruction (instruction_already_set). |
| 422 | The instruction cannot be applied (instruction_too_early, instruction_skipped, instruction_lapsed, ...). |
| 429 | Daily API call limit exceeded (rate_limit_exceeded): the Retry-After header gives the seconds until reset. |
Example request
bash
curl -X POST "https://api.renewr.example/api/v2/external/patent-instructions" \
-H "x-api-key: $RENEWR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"instructions": [
{
"eventId": "9f0d1e7a-3b2c-4d5e-8f6a-7b8c9d0e1f2a",
"decision": "PROCEED"
}
]
}'