# Google Patents API

Patents from Google Patents with title, abstract, assignees, inventors, priority date and filing date. Search by keyword.

**Pricing:** $0.0105 per patent

**Endpoint:** `POST /v1/data/google-patents/patents/run`

**Auth:** `Authorization: Bearer mk_live_...`

## Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `query` | string | Yes | Search Query. |
| `assignee` | string | No | Assignee. |
| `dateFrom` | date | No | Date From as a date (YYYY-MM-DD). |
| `dateTo` | date | No | Date To as a date (YYYY-MM-DD). |
| `dateType` | string | No | Date Type to use. Publication Date by default. |
| `country` | string | No | Patent office to search, picked by name (stored as its two-letter office code). Leave empty to search every office. Example: United States (US), European Patent Office (EP), Japan (JP). |
| `status` | string | No | Status to use. Any by default. |
| `sortBy` | string | No | Sort By to use. Relevance by default. |
| `maxResults` | integer | No | How many patents to return in total. Defaults to 100; use 0 for all. |

## Example

`?wait=true` holds the request open until the run finishes (up to 60s) and returns the rows inline: one request, no polling.

```bash
curl -X POST "https://api.mindcase.co/v1/data/google-patents/patents/run?wait=true" \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"params":{"query":"..."}}'
```

```python
import requests

resp = requests.post(
    "https://api.mindcase.co/v1/data/google-patents/patents/run",
    params={"wait": "true"},
    headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
    json={"params": {
    "query": "..."
}},
)
rows = resp.json()["data"]
```

## Longer runs

If the run is still going at the 60s ceiling you get back `{ job_id, status: "running" }` instead of rows (same if the result is over 100 rows; those come back `truncated`). Poll with that `job_id`:

```bash
# 1) check status
curl https://api.mindcase.co/v1/jobs/JOB_ID \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"

# 2) when status == completed, fetch the rows
curl https://api.mindcase.co/v1/jobs/JOB_ID/results \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"
```

Full API reference (auth, jobs, balance, SDKs, MCP): https://mindcase.co/skills.md

## Response columns

| Field | Display name | Type |
|-------|--------------|------|
| `publicationNumber` | Publication Number | text |
| `title` | Title | text |
| `abstract` | Abstract | text |
| `assignees` | Assignees | array |
| `inventors` | Inventors | array |
| `priorityDate` | Priority Date | text |
| `filingDate` | Filing Date | text |
| `publicationDate` | Publication Date | text |
| `grantDate` | Grant Date | text |
| `status` | Status | text |
| `applicationNumber` | Application Number | text |
| `language` | Language | text |
| `cpcCodes` | Cpc Codes | array |
| `claimsCount` | Claims Count | number |
| `patentCitations` | Patent Citations | number |
| `nonPatentCitations` | Non Patent Citations | number |
| `citedBy` | Cited By | number |
| `figureCount` | Figure Count | number |
| `pdfUrl` | Pdf URL | url |
| `patentUrl` | Patent URL | url |
