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.
currentPagenumberNoCurrent page.
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",
      "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: DOCDB aligned.
data[].applicationDatestring or nullISO date string.
data[].nationalPhaseEntryDatestring or nullISO date string.
data[].priorityDatestring or nullISO date string.
data[].publicationNumberstring or nullPublication number.
data[].publicationDatestring or nullISO date string.
data[].grantPublicationNumberstring or nullGrant publication number.
data[].grantDatestring or nullISO date string.
data[].pctApplicationNumberstring or nullPCT 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.