> ## Documentation Index
> Fetch the complete documentation index at: https://docs.case.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Patent Search

> Search US patent applications and granted patents via the USPTO

Search US patent applications and granted patents via the [USPTO Open Data Portal](https://data.uspto.gov/apis/patent-file-wrapper/search). Covers applications filed on or after January 1, 2001. Supports free-text queries, field-specific filters, date ranges, sorting, and pagination.

## Search patents

```bash title="Endpoint" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
POST /legal/v1/patent-search
```

<CodeGroup>
  ```bash title="cURL" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  curl -X POST https://api.case.dev/legal/v1/patent-search \
    -H "Authorization: Bearer $CASEDEV_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "query": "neural network medical imaging",
      "assignee": "General Electric",
      "applicationType": "Utility",
      "filingDateFrom": "2018-01-01",
      "limit": 5,
      "sortBy": "filingDate",
      "sortOrder": "desc"
    }'
  ```

  ```bash title="CLI" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  casedev legal:v1 patent-search \
    --query "neural network medical imaging" \
    --assignee "General Electric" \
    --application-type Utility \
    --filing-date-from 2018-01-01 \
    --limit 5 \
    --sort-by filingDate \
    --sort-order desc
  ```

  ```typescript title="Typescript" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  const result = await client.legal.patentSearch({
    query: 'neural network medical imaging',
    assignee: 'General Electric',
    applicationType: 'Utility',
    filingDateFrom: '2018-01-01',
    limit: 5,
    sortBy: 'filingDate',
    sortOrder: 'desc'
  });

  console.log(`Found ${result.totalResults} patents`);

  for (const item of result.results) {
    console.log(`${item.title} (${item.applicationNumber})`);
    if (item.patentNumber) {
      console.log(`  Patent: ${item.patentNumber}`);
    }
  }
  ```

  ```python title="Python" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  result = client.legal.v1.patent_search(
      query='neural network medical imaging',
      assignee='General Electric',
      application_type='Utility',
      filing_date_from='2018-01-01',
      limit=5,
      sort_by='filingDate',
      sort_order='desc'
  )

  print(f'Found {result.total_results} patents')

  for item in result.results:
      print(f'{item.title} ({item.application_number})')
      if item.patent_number:
          print(f'  Patent: {item.patent_number}')
  ```

  ```go title="Go" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  result, _ := client.Legal.V1.PatentSearch(ctx, casedev.LegalV1PatentSearchParams{
      Query:           casedev.F("neural network medical imaging"),
      Assignee:        casedev.F("General Electric"),
      ApplicationType: casedev.F("Utility"),
      FilingDateFrom:  casedev.F("2018-01-01"),
      Limit:           casedev.F(int64(5)),
      SortBy:          casedev.F("filingDate"),
      SortOrder:       casedev.F("desc"),
  })

  fmt.Printf("Found %d patents\n", result.TotalResults)

  for _, item := range result.Results {
      fmt.Printf("%s (%s)\n", item.Title, item.ApplicationNumber)
      if item.PatentNumber != "" {
          fmt.Printf("  Patent: %s\n", item.PatentNumber)
      }
  }
  ```
</CodeGroup>

### Key parameters

| Parameter           | Type   | Description                                                    |
| ------------------- | ------ | -------------------------------------------------------------- |
| `query`             | string | Free-text query or field-specific search (supports AND/OR/NOT) |
| `applicationType`   | string | Utility, Design, Plant, Provisional, Reissue                   |
| `applicationStatus` | string | Filter by status (Patented Case, Pending, Abandoned)           |
| `assignee`          | string | Filter by assignee/owner name                                  |
| `inventor`          | string | Filter by inventor name                                        |
| `filingDateFrom`    | string | Start of filing date range (YYYY-MM-DD)                        |
| `filingDateTo`      | string | End of filing date range (YYYY-MM-DD)                          |
| `grantDateFrom`     | string | Start of grant date range (YYYY-MM-DD)                         |
| `grantDateTo`       | string | End of grant date range (YYYY-MM-DD)                           |
| `limit`             | number | Results to return (max 100)                                    |
| `offset`            | number | Pagination offset                                              |

See the [API reference](/api-reference/legal/search-uspto-patent-applications) for the full parameter and response schema.
