Skip to content

List patents

GET /api/v2/external/patents

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

Paginated list of the patents owned by the authenticated client. Use itemsPerPage and currentPage for pagination (server cap: 100 / page). Filter by your own reference with ?providerId= (exact match). Sort with ?sort=field (ascending) or ?sort=-field (descending) over the external field names clientCaseReference, office, applicationDate, publicationNumber, status (unknown fields are rejected with 400).

Query parameters

NameTypeRequiredDescription
itemsPerPagenumberNoNumber of items per page. Default 10; values above 100 are silently clamped to 100 (hard server cap, spec §6.1).
currentPagenumberNoCurrent page (1-based). Offset pagination: a page can shift if the collection mutates between calls; re-fetch from page 1 for a consistent sweep.
sortstringNoSort field expressed as field (ASC) or -field (DESC). Allowed fields: clientCaseReference, office, applicationDate, publicationNumber, status.
providerIdstringNoExact-match filter on your own client-side reference (provider id). Returns at most one patent.

Response

200 A page of patents with the standard v2 list envelope { pagination, data }.

json
{
  "pagination": {
    "totalItems": 128,
    "currentPage": 1,
    "itemsPerPage": 10,
    "totalPages": 13,
    "hasMore": true
  },
  "data": [
    {
      "object": "patent",
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "providerId": "ACME-2021-0042",
      "clientCaseReference": "P-2021-0042-EP",
      "clientFamilyReference": "FAM-0042",
      "title": "Heat exchanger with corrugated fins",
      "office": "EP",
      "patentType": "PATENT",
      "applicationNumber": "21305432.1",
      "applicationDate": "2021-04-02",
      "nationalPhaseEntryDate": null,
      "priorityDate": "2020-04-03",
      "publicationNumber": "EP3891234A1",
      "publicationDate": "2022-10-05",
      "grantPublicationNumber": "EP3891234B1",
      "grantDate": "2024-03-13",
      "pctApplicationNumber": "PCT/EP2021/059012",
      "officialNumbers": {
        "applicationNumber": "21305432.1",
        "publicationNumber": "EP3891234A1",
        "grantPublicationNumber": "EP3891234B1",
        "pctApplicationNumber": "PCT/EP2021/059012"
      },
      "expirationDate": "2041-04-02",
      "extendedExpirationDate": null,
      "lapseDate": null,
      "renewalsManagedFrom": "2021-04-02",
      "status": "GRANTED",
      "filingRoute": "EP",
      "applicantType": "LARGE",
      "claimCount": 15,
      "designatedCountries": [
        "DE",
        "FR",
        "GB",
        "IT"
      ],
      "owner": "Acme Industries SA",
      "secondaryOwners": [],
      "subCase": null,
      "createdAt": "2026-01-10T08:30:00.000Z",
      "updatedAt": "2026-07-15T14:00:00.000Z"
    }
  ]
}
Response fields
FieldTypeDescription
paginationobjectPagination metadata.
pagination.totalItemsintegerTotal number of items across all pages.
pagination.currentPageinteger1-based index of the current page.
pagination.itemsPerPageintegerNumber of items per page (server cap: 100).
pagination.totalPagesintegerTotal number of pages.
pagination.hasMorebooleanTrue when another page exists after the current one.
dataarray of objectsPage of results.
data[].objectstringString describing the object type (auto-description). One of: patent.
data[].idstringOpaque, stable Renewr UUID of the patent. Format: uuid.
data[].providerIdstring or nullClient-provided matching reference; searchable via ?providerId=.
data[].clientCaseReferencestring or nullCase reference on the client side.
data[].clientFamilyReferencestring or nullFamily reference on the client side.
data[].titlestring or nullTitle of the patent.
data[].officestringPatent office / authority code (WO, EP, EA, or an ISO 3166-1 national office code).
data[].patentTypestring or nullOne of: PATENT, UTILITY, DESIGN.
data[].applicationNumberstring or nullApplication (filing) number, as recorded in your portfolio (no normalization applied); the office-standard form lives in officialNumbers.
data[].applicationDatestring or nullISO date string.
data[].nationalPhaseEntryDatestring or nullISO date string.
data[].priorityDatestring or nullISO date string.
data[].publicationNumberstring or nullPublication number, as recorded in your portfolio.
data[].publicationDatestring or nullISO date string.
data[].grantPublicationNumberstring or nullGrant publication number, as recorded in your portfolio.
data[].grantDatestring or nullISO date string.
data[].pctApplicationNumberstring or nullPCT application number, as recorded in your portfolio.
data[].officialNumbersobjectOffice-standard numbers maintained by Renewr operators (the form required by the IP offices, used for official payments). Read-only: not writable via sync.
data[].officialNumbers.applicationNumberstring or nullOffice-standard application (filing) number.
data[].officialNumbers.publicationNumberstring or nullOffice-standard publication number.
data[].officialNumbers.grantPublicationNumberstring or nullOffice-standard grant publication number.
data[].officialNumbers.pctApplicationNumberstring or nullOffice-standard PCT application number.
data[].expirationDatestring or nullISO date string.
data[].extendedExpirationDatestring or nullISO date string.
data[].lapseDatestring or nullISO date string.
data[].renewalsManagedFromstring or nullISO date string.
data[].statusstring or nullShared IP right status. One of: PENDING, PUBLISHED, GRANTED, LAPSED.
data[].filingRoutestring or nullHow the title was filed. One of: NATIONAL, PCT, EP, EA, DIVISIONAL.
data[].applicantTypestring or nullOne of: MICRO, SMALL, LARGE.
data[].claimCountinteger or nullNumber of claims.
data[].designatedCountriesarray of string or nullISO 3166-1 alpha-2 designations (EP/regional).
data[].ownerstring or nullOwner (display).
data[].secondaryOwnersarray of string or nullCo-owners.
data[].subCasestring or nullSub-case.
data[].createdAtstring or nullISO 8601 timestamp (UTC). Format: date-time.
data[].updatedAtstring or nullISO 8601 timestamp (UTC). Format: date-time.

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).
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?itemsPerPage=10&currentPage=1" \
  -H "x-api-key: $RENEWR_API_KEY"

Renewr External API v2. Access on invitation.