Skip to content

Get sync batch status

GET /api/v2/external/patents/sync/{importId}

Authentication: x-api-key header, with the patents:write scope. See Authentication and limits.

Poll a batch: status, live counters, and one page of per-item outcomes (?currentPage=&itemsPerPage=, page size capped at 100, POST-body order).

Path parameters

NameTypeRequiredDescription
importIdstringYesThe importId returned by the sync POST.

Response

200 The batch with a page of per-item outcomes.

json
{
  "object": "patentSyncBatch",
  "importId": "2e7a9c40-5b1d-4f8e-9a3c-6d0e1f2a3b4c",
  "status": "TRIAGED",
  "mode": "ASYNC",
  "totalItems": 250,
  "processedItems": 250,
  "autoAppliedItems": 180,
  "stagedItems": 60,
  "rejectedItems": 8,
  "suppressedItems": 2,
  "createdAt": "2026-08-07T06:10:00.000Z",
  "completedAt": "2026-08-07T06:12:41.000Z",
  "results": {
    "pagination": {
      "totalItems": 250,
      "currentPage": 1,
      "itemsPerPage": 100,
      "totalPages": 3,
      "hasMore": true
    },
    "data": [
      {
        "providerId": "ACME-2021-0042",
        "renewrPatentId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "action": "UPDATE",
        "outcome": "APPLIED",
        "requestId": "f87cb600-908d-4e00-ab57-4600cf7cfe00",
        "reason": null
      },
      {
        "providerId": "ACME-2019-0007",
        "renewrPatentId": "4ffdaa00-d4cd-4200-aa03-5a0084d98200",
        "action": "CREATE",
        "outcome": "ACCEPTED",
        "requestId": "787f2500-a968-4100-a11c-cc00876b0c00",
        "reason": null
      },
      {
        "providerId": null,
        "renewrPatentId": null,
        "action": null,
        "outcome": "REJECTED",
        "requestId": "c98f6400-da85-4400-a4ac-a4004f7a0400",
        "reason": "no identity provided (providerId / renewrPatentId both absent)"
      }
    ]
  }
}
Response fields
FieldTypeDescription
objectstringString describing the object type (auto-description). One of: patentSyncBatch.
importIdstringId of the import batch, the handle for the status endpoint. Format: uuid.
statusstringPENDING and PROCESSING: the batch is still being processed. TRIAGED: every item has an outcome, at least one awaits review. SETTLED: nothing left to wait on. ERROR: at least one item could not be recorded; contact support with the importId. One of: PENDING, PROCESSING, TRIAGED, SETTLED, ERROR.
modestringSYNC (processed inline) or ASYNC (processed in the background). One of: SYNC, ASYNC.
totalItemsintegerNumber of items in the batch.
processedItemsintegerItems processed so far, whatever their outcome.
autoAppliedItemsintegerItems applied automatically (no critical field touched).
stagedItemsintegerItems staged for review. Counted at triage; the counter does not decrease when decisions are made.
rejectedItemsintegerItems rejected as invalid.
suppressedItemsintegerIdentical re-pushes of previously refused proposals.
createdAtstring or nullWhen the batch was received. Format: date-time.
completedAtstring or nullWhen the batch finished processing (null while PENDING or PROCESSING). Format: date-time.
resultsobjectPer-item outcomes in POST-body order, as the standard v2 list envelope. The GET paginates them (?currentPage=&itemsPerPage=, page size capped at 100); the POST answers with the first page (all outcomes of an inline batch, empty while an async batch is pending).
results.paginationobjectPagination metadata.
results.pagination.totalItemsintegerTotal number of items across all pages.
results.pagination.currentPageinteger1-based index of the current page.
results.pagination.itemsPerPageintegerNumber of items per page (server cap: 100).
results.pagination.totalPagesintegerTotal number of pages.
results.pagination.hasMorebooleanTrue when another page exists after the current one.
results.dataarray of objectsPage of results.
results.data[].providerIdstring or nullThe providerId of the item, echoed back (null when the item did not carry one).
results.data[].renewrPatentIdstring or nullRenewr UUID of the target patent. Null when no patent is attached yet: rejected before matching, or a create still awaiting review (an accepted create carries the UUID of the new patent on later polls).
results.data[].actionstring or nullCREATE | UPDATE (null when rejected pre-match). One of: CREATE, UPDATE.
results.data[].outcomestringOne of: APPLIED, ACCEPTED, STAGED, SUPPRESSED, REJECTED.
results.data[].requestIdstring or nullStable id of the change request recorded for this item; quote it in support requests (null only when the item could not be recorded). Format: uuid.
results.data[].reasonstring or nullWhy the item was rejected or suppressed; for a proposal refused during review, the reviewer reason verbatim (null otherwise).

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).
429Daily API call limit exceeded (rate_limit_exceeded): the Retry-After header gives the seconds until reset.

Example request

bash
curl "https://api.renewr.example/api/v2/external/patents/sync/$IMPORT_ID?currentPage=1&itemsPerPage=100" \
  -H "x-api-key: $RENEWR_API_KEY"

Renewr External API v2. Access on invitation.