Google Patents Search

Search for patents on Google Patents. Supports filtering by date, country, language, patent status, and more.

Endpoint

GET /api/google-patents/search

Generate Code with AI

Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.

Parameters

q string Required

The search query string. Example: machine learning, (Coffee) OR (Tea)

page integer Optional

Page number for pagination. Default: 1

num integer Optional

Number of results per page. Range: 1-100. Default: 10

sort string Optional

Sort order for results. Values: new, old. Default: new

before string Optional

Filter patents before this date. Format: filing:YYYYMMDD or publication:YYYYMMDD. Example: filing:20231231

after string Optional

Filter patents after this date. Format: filing:YYYYMMDD or publication:YYYYMMDD. Example: publication:20230101

country string Optional

Country code filter. Example: US, WO,JP,EP

language string Optional

Language filter. Example: ENGLISH, GERMAN

status string Optional

Patent status filter. Values: GRANT, APPLICATION

type string Optional

Patent type filter. Values: PATENT, DESIGN

inventor string Optional

Inventor name filter. Example: John Smith,Jane Doe

assignee string Optional

Assignee/company name filter. Example: Tesla Inc,Apple Inc

Request Examples

<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://scrappa.co/api/google-patents/search?q=machine+learning",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_HTTPHEADER => [
        "x-api-key: YOUR_API_KEY_HERE"
    ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}
<?php

use Illuminate\Support\Facades\Http;

$response = Http::timeout(30)
    ->withHeaders(['x-api-key' => 'YOUR_API_KEY_HERE'])
    ->get('https://scrappa.co/api/google-patents/search?q=machine+learning');

if ($response->successful()) {
    echo $response->body();
} else {
    echo "Error: " . $response->status();
}
const options = {
    method: 'GET',
    headers: {
        'x-api-key': 'YOUR_API_KEY_HERE'
    }
};

fetch('https://scrappa.co/api/google-patents/search?q=machine+learning', options)
    .then(response => {
        if (!response.ok) {
            throw new Error(`HTTP error! status: ${response.status}`);
        }
        return response.text();
    })
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));
const axios = require('axios');

const options = {
    method: 'GET',
    url: 'https://scrappa.co/api/google-patents/search?q=machine+learning',
    headers: {
        x-api-key: 'YOUR_API_KEY_HERE',
    }
};

try {
    const response = await axios(options);
    console.log(response.data);
} catch (error) {
    console.error('Error:', error.message);
}
require 'net/http'
require 'uri'

uri = URI.parse("https://scrappa.co/api/google-patents/search?q=machine+learning")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == 'https'

request = Net::HTTP::Get.new(uri.request_uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'

begin
    response = http.request(request)
    puts response.body
rescue => e
    puts "Error: #{e.message}"
end
import http.client
import json

conn = http.client.HTTPSConnection("scrappa.co")

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE',
}

try:
    conn.request("GET", "/api/google-patents/search?q=machine+learning", headers=headers)
    res = conn.getresponse()
    data = res.read()
    print(data.decode("utf-8"))
except Exception as e:
    print(f"Error: {e}")
finally:
    conn.close()
import requests

headers = {
    'x-api-key': 'YOUR_API_KEY_HERE',
}

try:
    response = requests.get('https://scrappa.co/api/google-patents/search?q=machine+learning', headers=headers)
    response.raise_for_status()
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"Error: {e}")
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

public class ApiExample {
    public static void main(String[] args) {
        OkHttpClient client = new OkHttpClient();

        Request request = new Request.Builder()
            .url("https://scrappa.co/api/google-patents/search?q=machine+learning")
        .addHeader("x-api-key", "YOUR_API_KEY_HERE")
            .build();

        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                System.out.println(response.body().string());
            } else {
                System.out.println("Error: " + response.code());
            }
        } catch (IOException e) {
            System.out.println("Error: " + e.getMessage());
        }
    }
}
package main

import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {
    client := &http.Client{}
    req, err := http.NewRequest("GET", "https://scrappa.co/api/google-patents/search?q=machine+learning", nil)
    if err != nil {
        fmt.Println("Error creating request:", err)
        return
    }
    req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")

    resp, err := client.Do(req)
    if err != nil {
        fmt.Println("Error making request:", err)
        return
    }
    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println("Error reading response:", err)
        return
    }

    fmt.Println(string(body))
}
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/google-patents/search?q=machine+learning"
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY_HERE");

        try
        {
            var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "https://scrappa.co/api/google-patents/search?q=machine+learning"));
            var content = await response.Content.ReadAsStringAsync();
            Console.WriteLine(content);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}
import axios from 'axios';

async function run(): Promise<void> {
    try {
        const response = await axios({
            method: 'GET',
            url: 'https://scrappa.co/api/google-patents/search?q=machine+learning',
            headers: {
        'x-api-key': 'YOUR_API_KEY_HERE',
            },
        });

        console.log(response.data);
    } catch (error) {
        console.error('Error:', error);
    }
}

void run();
use reqwest::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();

    let response = client
        .get("https://scrappa.co/api/google-patents/search?q=machine+learning")
        .header("x-api-key", "YOUR_API_KEY_HERE")
        .send()
        .await?;

    println!("{}", response.text().await?);

    Ok(())
}

Response Schema

JSON Response 200 OK
{
    "success": true,
    "data": {
        "total_results": 125048,
        "total_pages": 100,
        "current_page": 1,
        "patents": [
            {
                "patent_id": "patent/US9789384B1/en",
                "rank": 0,
                "title": "Self-balancing board having a suspension interface...",
                "snippet": "A self-balancing board including...",
                "publication_number": "US9789384B1",
                "language": "en",
                "dates": {
                    "priority": "2015-11-03",
                    "filing": "2017-07-05",
                    "grant": "2017-10-10",
                    "publication": "2017-10-10"
                },
                "inventor": "Shane Chen",
                "assignee": "Inventist, Inc.",
                "thumbnail": "https://patentimages.storage.googleapis.com/...",
                "pdf": "https://patentimages.storage.googleapis.com/...",
                "family_status": [
                    {
                        "country": "US",
                        "status": "ACTIVE"
                    },
                    {
                        "country": "EP",
                        "status": "NOT_ACTIVE"
                    }
                ]
            }
        ]
    }
}

Try It Live

Test this endpoint in our interactive playground with real data.

Open in Playground