Entity SEO API - Google Knowledge Graph for Any URL avatar

Entity SEO API - Google Knowledge Graph for Any URL

Pricing

from $19.90 / 1,000 results

Go to Apify Store
Entity SEO API - Google Knowledge Graph for Any URL

Entity SEO API - Google Knowledge Graph for Any URL

See what Google thinks your pages are about. Entity SEO & entity extraction API: Google Knowledge Graph entities + 0-100 scores for any URL. Free to try.

Pricing

from $19.90 / 1,000 results

Rating

0.0

(0)

Developer

Thodor

Thodor

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

8 days ago

Last modified

Share

An entity extraction API that shows what Google thinks a page is about. Paste any URL and get back the Google Knowledge Graph entities Google associates with that page, each scored 0 to 100 and resolved to a human-readable name. This is Google's own read of the live page, not a re-analysis of text you paste in.

Run your page next to the competitor above you and the difference stops being a mystery: a scored list of concepts Google credits them for and not you. Scores update on recrawl, usually well before rankings move, so the same call doubles as a feedback loop: edit, re-run, see whether Google understood.

๐Ÿ“‹ How to find the entities Google associates with a page

  1. Paste one or more page URLs into the URLs field. Bare domains work; https:// is assumed.
  2. Click Start.
  3. Open the Output tab and click Export for JSON, CSV, Excel, or HTML.

๐ŸŽ So what do you get?

๐Ÿง  Every entity Google credits the page๐Ÿ’ฏ 0 to 100 confidence scores๐Ÿท๏ธ Names, not codes
๐Ÿ†” Stable Knowledge Graph IDs๐Ÿ“ Entity descriptions๐Ÿ–ผ๏ธ The page's hero image
๐Ÿ”— About-this-site link#๏ธโƒฃ Entity count per URL๐Ÿšซ Failed URLs logged, never billed

๐ŸฅŠ What a competitor gap looks like

Real output from two pages competing for "tiktok comments scraper", one ranking #1 and one #6 (abridged, July 2026):

Entity Google creditsPage ranking #1Page ranking #6
web scraping6065
TikTok5763
application programming interface6315
web crawler37not credited
video recording3858
JSONnot credited19

Both pages get credit for the basics, so Google understood what they are. The gap is the content brief: the #1 page scores 63 on API and 37 on web crawler, the #6 page scores 15 and nothing. Own the #6 page? Those two rows are what to add. No claim that this is why #1 wins, but it is what you can measure, and scores shift on recrawl, so you also learn whether the fix landed.

โš–๏ธ Compared to NLP and entity tools

This actorGoogle Cloud NLPTextRazorInLinks / WordLift
Inputโœ… A URLโŒ Text you supplyโš ๏ธ Text or URLโš ๏ธ URL / your CMS
Entities fromโœ… Google's own page understandingโŒ NLP run on your textโŒ TextRazor's modelโŒ Their own model
Scoreโœ… 0 to 100, comparable across pagesโš ๏ธ Relative salienceโš ๏ธ Relevanceโš ๏ธ Varies
Pricingโœ… Pay per URL, no subscriptionโš ๏ธ Usage-based, you crawlโŒ From ~$200/moโŒ ~$39-49/mo

An NLP model can only tell you what your text says; your text can be fine while Google's model of the page is not. From a real run: a page with "Exporter" in its headline scored 3/100 for export, because the title tag hadn't caught up with the copy. No text-analysis tool would have caught that.

๐ŸŽฏ Three things people run this for

How
๐ŸฅŠ Competitor gap briefsRun your page and theirs in one run, diff on entity_id. "Their page is somehow stronger" becomes "they score 63 on API, we score 15"
โฑ๏ธ Edit feedback before rankings moveEdit the page, wait for the recrawl, re-run. Shifted scores mean Google understood the change, usually weeks before a rank tracker reacts
๐Ÿ“ก Indexation monitoringDaily run on a Schedule. Any entities at all prove Google has crawled and classified the page, so the day an empty list turns into entities is the day a new page got picked up

๐Ÿ“ฅ Input

{
"urls": [
"https://en.wikipedia.org/wiki/Marie_Curie",
"https://www.nike.com/"
]
}
  • urls: the pages to analyze. Any URL works, including ones you don't own: competitors, whole SERPs, your own site section

That is the whole input.

๐Ÿ“ค Output

One record per URL, entities ranked highest confidence first. Failed URLs are never charged and never appear in the dataset; they land in the FAILURES record of the run's key-value store with reasons.

Entity SEO API results in the Apify Console: one record per URL with entity count, hero image and about-this-site link

{
"url": "https://en.wikipedia.org/wiki/Marie_Curie",
"entity_count": 34,
"entities": [
{ "entity_id": "/m/053_d", "score": 100, "name": "Marie Curie", "description": "Polish-French physicist and chemist (1867โ€“1934)" },
{ "entity_id": "/m/059x1", "score": 65, "name": "Nobel Prize", "description": "set of annual international awards" },
{ "entity_id": "/m/063wl", "score": 58, "name": "Pierre Curie", "description": "French physicist (1859โ€“1906)" }
// HIDDEN: 31 more entities, ranked by score
],
"hero_image": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9Gc...",
"about_this_site": "https://www.google.com/search?q=About+https://en.wikipedia.org/wiki/Marie_Curie&tbm=ilp"
}

โš ๏ธ Site-level entities show up on every page. Your brand, platform, and domain score high on every URL of your site. Add a sibling page from your own site to the run and subtract what both share; what remains is the page's actual topic profile.

Fields

FieldDescription
entity_countNumber of entities returned for the page
entities[].entity_idGoogle Knowledge Graph / Freebase ID, like /m/053_d. Stable across languages and phrasings, so diff on this, not on names
entities[].scoreGoogle's confidence, 0 to 100. The page's main subject sits near 100
entities[].name, entities[].descriptionResolved via Wikidata. null for the few IDs with no public mapping
hero_imageThe page's hero image, when Google has one
about_this_siteGoogle's "about this site" link, when available

โš™๏ธ Use it as an entity extraction API

Every run is an HTTP endpoint: POST the same JSON as the form and the records come back in the response body. The Python example is the full competitor gap analysis:

Python

import requests
resp = requests.post(
"https://api.apify.com/v2/acts/thodor~entity-seo-api/run-sync-get-dataset-items",
params={"token": "YOUR_APIFY_TOKEN"},
json={"urls": ["https://your-site.com/guide", "https://competitor.com/guide"]},
)
yours, theirs = resp.json()
covered = {e["entity_id"] for e in yours["entities"]}
for e in theirs["entities"]:
if e["entity_id"] not in covered:
print(f'{e["score"]:>3} {e.get("name") or e["entity_id"]}')

Paste that gap list and your draft into an LLM and ask which sections to add or expand; the scores tell it what to prioritize.

Node.js

import axios from "axios";
const { data } = await axios.post(
"https://api.apify.com/v2/acts/thodor~entity-seo-api/run-sync-get-dataset-items",
{ urls: ["https://en.wikipedia.org/wiki/Marie_Curie"] },
{ params: { token: process.env.APIFY_TOKEN } }
);
data[0].entities.slice(0, 5).forEach((e) => console.log(e.score, e.name || e.entity_id));

curl

curl -X POST "https://api.apify.com/v2/acts/thodor~entity-seo-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls":["https://en.wikipedia.org/wiki/Marie_Curie"]}'

Swap run-sync-get-dataset-items for runs to fire async with a webhook. The apify-client SDK works too, in Python and JavaScript, and the n8n, Make, and Zapier integrations take the same input.

๐Ÿ’ก Tip: no need to write the JSON by hand. Fill in the form on the Input tab, switch the editor from Form to JSON, and copy the result into your code.

๐Ÿค– Entity SEO for AI Overviews and LLM visibility

AI Overviews, ChatGPT, and Perplexity cite pages for what they are about at the entity level. The check is simple: does Google credit your pages for your brand, your products, your core topics? If not, a citation is unlikely however good the writing.

๐Ÿ’ฐ How much does the Entity SEO API cost?

Billing is per URL analyzed, at the rate on the price card on this page. No subscription, no monthly minimum, and failed URLs are not charged.

โ“ FAQ

What is entity SEO? Optimizing the things a page is about rather than only the keywords on it. Google's model of a page is a set of Knowledge Graph entities with confidence scores: Marie Curie is /m/053_d whether the page writes "Marie Curie" or "Madame Curie". Being credited for the right entities with high scores is how a page ranks for a topic rather than a single phrase.

Can I use the Entity SEO API for free? Yes. Registering on Apify comes with $5 of free platform credit every month, no credit card needed, enough for several hundred URLs.

Why do some entities come back without a name? Some IDs have no public name or Wikidata mapping anywhere, so they come back bare with their score. A trick that resolves most: give the IDs and the page text to an LLM and ask what each likely refers to. You can also check which competing pages carry the same ID.

Why does a page return no entities? Google doesn't associate entities with every URL; new, thin, or low-authority pages often have none yet. An empty list means the request succeeded and Google has no model of that page. That is an answer, not an error.

Can this tell me when Google indexed my page? Not directly, but a daily schedule turns it into a monitor: the run where an empty list becomes entities brackets first classification to within a day, and the run where the profile shifts brackets a recrawl. Two limits: Google's serving cache refreshes about once a day, so resolution is one day at best, and only a changed profile proves anything; an unchanged one can still follow a recrawl.

Does this tell me which keywords to target? No. It reports what Google credits a page for, not what people search for. Pick targets with keyword research; use this to check whether Google's model of your page matches, and to verify after a recrawl that edits registered.

Is this legal? It returns publicly available entity classifications for URLs you choose to analyze and extracts no private data. Use the output to inform your own content decisions.

๐Ÿ›Ÿ Support

Something not working, or a field missing? Message me in the Issues tab and I'll look into it quickly. I'm a solo dev, so don't hesitate.

  • Thodor