Skip to content

Create patent instructions

POST /api/v2/external/patent-instructions

Authentication: 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
FieldTypeRequiredDescription
instructionsarray of objectsYesInstructions to apply, one per patent event.
instructions[].eventIdstringYesUUID of the patent event to instruct. Format: uuid.
instructions[].decisionstringYesOne 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
FieldTypeDescription
objectstringString describing the object type (auto-description). One of: instructionReceipt.
issueDatestring or nullISO date string.
referencestring or nullStable display reference of the receipt.
numberinteger or nullSequential receipt number.
instructionsarray of objectsInstructions carried by this receipt.
instructions[].objectstringString describing the object type (auto-description). One of: instruction.
instructions[].idstringOpaque Renewr UUID of the instruction. Format: uuid.
instructions[].decisionstring or nullOne of: PROCEED, SKIP_THIS_TIME, DROP.
instructions[].statusstringLifecycle status of the instruction. One of: PENDING, SCHEDULED, EXECUTED, SUPERSEDED.
instructions[].executedAtstring or nullISO 8601 timestamp (UTC). Format: date-time.
instructions[].scheduledForExecutionAtstring or nullISO date string.
instructions[].renewedDesignatedCountriesarray of string or nullWO designations to renew.
instructions[].excludedDesignatedCountriesarray of string or nullWO designations to exclude.

Errors

Errors use the application/problem+json envelope with stable machine-readable codes. See the Errors guide.

StatusDescription
400Validation failed (validation_failed): carries per-field errors[] with RFC 6901 JSON Pointers.
401Missing or invalid API key (invalid_api_key), or expired key (api_key_expired).
403API key lacks the required scope (insufficient_scope, with requiredScope extension) or the operation is not enabled for this client (forbidden).
404The resource does not exist in your portfolio (not_found).
409The event already carries an executed instruction (instruction_already_set).
422The instruction cannot be applied (instruction_too_early, instruction_skipped, instruction_lapsed, ...).
429Daily 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"
      }
    ]
  }'

Renewr External API v2. Access on invitation.