ScavioScavio
FeaturesPricingDocs
Sign InGet Started
  1. Home
  2. Tutorials
  3. How to Extract Google Knowledge Graph Data via API
Tutorial

How to Extract Google Knowledge Graph Data via API

Pull structured knowledge graph entities from Google SERP responses using the Scavio API. Extract names, descriptions, facts, and entity type in JSON.

Get Free API KeyAPI Docs

Google Knowledge Graph panels appear at the top of search results for entities like brands, people, places, and products. They contain structured information including descriptions, official website links, social profiles, and key attributes. The Scavio API includes the knowledge_graph field in its SERP response when a panel is available. This tutorial shows how to query for an entity, extract the knowledge_graph object, and use it to build a structured entity profile without screen-scraping.

Prerequisites

  • Python 3.8 or higher
  • requests library installed
  • A Scavio API key
  • Basic understanding of JSON parsing

Walkthrough

Step 1: Query for an entity that has a Knowledge Panel

Knowledge Panels appear for well-known entities. Search for a brand, person, or place by name. Google surfaces a panel when confident about the entity.

Python
def get_serp(entity: str) -> dict:
    response = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"query": entity, "country_code": "us"}
    )
    response.raise_for_status()
    return response.json()

Step 2: Extract the knowledge_graph field

Check for the knowledge_graph key in the response. It will be None if Google does not show a panel for the query.

Python
data = get_serp("OpenAI")
kg = data.get("knowledge_graph")
if kg:
    print(kg)
else:
    print("No knowledge graph found for this query")

Step 3: Parse entity attributes

The knowledge_graph object contains fields like title, type, description, website, and a list of attributes. Extract them by key.

Python
if kg:
    print("Title:", kg.get("title"))
    print("Type:", kg.get("type"))
    print("Description:", kg.get("description"))
    print("Website:", kg.get("website"))
    for attr in kg.get("attributes", []):
        print(f"  {attr['name']}: {attr['value']}")

Step 4: Build a structured entity profile

Combine the knowledge graph fields into a dictionary that can be stored or fed into a downstream pipeline.

Python
def build_profile(kg: dict) -> dict:
    return {
        "name": kg.get("title"),
        "entity_type": kg.get("type"),
        "description": kg.get("description"),
        "website": kg.get("website"),
        "attributes": {a["name"]: a["value"] for a in kg.get("attributes", [])},
    }

Python Example

Python
import os
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

def get_knowledge_graph(entity: str) -> dict | None:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"query": entity, "country_code": "us"})
    r.raise_for_status()
    return r.json().get("knowledge_graph")

def build_profile(kg: dict) -> dict:
    return {
        "name": kg.get("title"),
        "type": kg.get("type"),
        "description": kg.get("description"),
        "website": kg.get("website"),
        "attributes": {a["name"]: a["value"] for a in kg.get("attributes", [])},
    }

if __name__ == "__main__":
    entities = ["OpenAI", "Stripe", "Cloudflare"]
    for name in entities:
        kg = get_knowledge_graph(name)
        if kg:
            profile = build_profile(kg)
            print(profile)
        else:
            print(f"No KG for {name}")

JavaScript Example

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";

async function getKnowledgeGraph(entity) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ query: entity, country_code: "us" })
  });
  const data = await res.json();
  return data.knowledge_graph || null;
}

function buildProfile(kg) {
  return {
    name: kg.title,
    type: kg.type,
    description: kg.description,
    website: kg.website,
    attributes: Object.fromEntries((kg.attributes || []).map(a => [a.name, a.value]))
  };
}

async function main() {
  const kg = await getKnowledgeGraph("OpenAI");
  if (kg) console.log(JSON.stringify(buildProfile(kg), null, 2));
}
main().catch(console.error);

Expected Output

JSON
{
  "knowledge_graph": {
    "title": "OpenAI",
    "type": "Research laboratory",
    "description": "American artificial intelligence research laboratory...",
    "website": "https://openai.com",
    "founded": "December 11, 2015",
    "headquarters": "San Francisco, California",
    "attributes": [
      { "name": "Founded", "value": "December 11, 2015" },
      { "name": "CEO", "value": "Sam Altman" }
    ]
  }
}

Related Tutorials

  • How to Fetch Google Search Results in Python
  • How to Extract People Also Ask Data from Google SERP

Frequently Asked Questions

Most developers complete this tutorial in 15 to 30 minutes. You will need a Scavio API key (free tier works) and a working Python or JavaScript environment.

Python 3.8 or higher. requests library installed. A Scavio API key. Basic understanding of JSON parsing. A Scavio API key gives you 250 free credits per month.

Yes. The free tier includes 250 credits per month, which is more than enough to complete this tutorial and prototype a working solution.

Scavio has a native LangChain package (langchain-scavio), an MCP server, and a plain REST API that works with any HTTP client. This tutorial uses the raw REST API, but you can adapt to your framework of choice.

Related Resources

Best Of

Best Google Knowledge Graph API in 2026

Read more
Best Of

Best Queue-Based SERP API in 2026

Read more
Glossary

Knowledge Graph API

Read more
Comparison

Google CSE (Paid Tier) vs Third-Party SERP API (Scavio, SerpApi, Serper)

Read more
Solution

Google Ads Data from SERP APIs

Read more
Use Case

Google Ads SERP Extraction

Read more

Start Building

Pull structured knowledge graph entities from Google SERP responses using the Scavio API. Extract names, descriptions, facts, and entity type in JSON.

Get Free API KeyRead the Docs
ScavioScavio

Real-time search API for AI agents. Search every platform, not just Google.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative

Tools

  • JSON Formatter
  • cURL to Code
  • Token Counter
  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy