Public API

No-auth endpoints for Discover volatility signals, Google Profile checks, and Google News domain checks.

Public API endpoints are no-auth JSON methods for lightweight checks and open signals. Use them to read Google Discover volatility, verify whether a domain has a Google Profile, search Google Profile candidates by entity query, or check whether Google News returns recent RSS items for a publisher domain.

#Google Profile by domain

GET/public/google-profilePublic

Builds Google's profile.google.com/cp URL for the normalized domain, fetches the public profile shell, and marks the profile as found only when Google returns real metadata.

Query parameters
domainstringrequired
Domain or full URL to check. The API normalizes protocol, path and www. before testing.
curl
curl "https://d2tr.com/api/public/google-profile?domain=bbc.com"
Response
{
  "ok": true,
  "domain": "bbc.com",
  "input": "bbc.com",
  "profileUrl": "https://profile.google.com/cp/EgkKB2JiYy5jb20=",
  "knowledgeGraphId": "/m/0nc18zk",
  "exists": true,
  "confidence": "high",
  "title": "BBC",
  "description": "The British Broadcasting Corporation is a British public service broadcaster...",
  "sourceLabel": "Wikipedia",
  "sourceUrl": "https://en.wikipedia.org/wiki/BBC",
  "totalFollowers": "43.9M total followers",
  "socialProfiles": [
    { "label": "YouTube", "url": "https://www.youtube.com/user/BBC", "metric": "15.5M followers" }
  ],
  "reason": "Google returned profile metadata, including a descriptive source block."
}

#Google Profile bulk

POST/public/google-profile/bulkPublic

Checks a domain list with the same validation as the tool UI. Empty values are ignored and the request is rejected when more than 100 domains are sent.

JSON body
domainsstring[]required
Domains or URLs to check. Each item is normalized independently.
curl
curl "https://d2tr.com/api/public/google-profile/bulk" \
  -H "Content-Type: application/json" \
  -d '{"domains":["bbc.com","nytimes.com","bbcasd.com"]}'
Response
{
  "ok": true,
  "rows": [
    {
      "input": "bbc.com",
      "domain": "bbc.com",
      "result": { "ok": true, "domain": "bbc.com", "exists": true, "profileUrl": "https://profile.google.com/cp/..." },
      "error": null
    },
    {
      "input": "bbcasd.com",
      "domain": "bbcasd.com",
      "result": { "ok": true, "domain": "bbcasd.com", "exists": false },
      "error": null
    }
  ]
}

#Google Profile query

GET/public/google-profile/queryPublic

Searches entity candidates for a keyword or brand name, then checks whether each candidate can open a Google Profile from its Knowledge Graph ID. When a Google Knowledge Graph API key is configured server-side, that source is used; otherwise the endpoint falls back to Wikidata.

Query parameters
qstringrequired
Keyword, publisher name, brand or entity query. Minimum length is two characters.
curl
curl "https://d2tr.com/api/public/google-profile/query?q=bbc"
Response
{
  "ok": true,
  "query": "bbc",
  "source": "wikidata",
  "results": [
    {
      "name": "British Broadcasting Corporation",
      "types": ["British public service broadcaster"],
      "knowledgeGraphId": "/m/0nc18zk",
      "website": "https://bbc.com",
      "profileUrl": "https://profile.google.com/cp/...",
      "hasGoogleProfile": true,
      "totalFollowers": "43.9M total followers",
      "profile": { "ok": true, "domain": "bbc.com", "exists": true },
      "error": null
    }
  ]
}

#Google News by domain

GET/public/google-newsPublic

Requests Google News RSS search for site:<domain>. If the feed contains items, the domain is treated as present in Google News and the response includes the recent item count and publisher/search URL.

Query parameters
domainstringrequired
Domain or full URL to check. The API normalizes protocol, path and www. before building the Google News RSS URL.
curl
curl "https://d2tr.com/api/public/google-news?domain=osome.com"
Response
{
  "ok": true,
  "domain": "osome.com",
  "rssUrl": "https://news.google.com/rss/search?q=site%3Aosome.com",
  "googleNewsUrl": "https://news.google.com/search?q=site%3Aosome.com",
  "publisherUrl": "https://news.google.com/search?q=site%3Aosome.com",
  "exists": true,
  "publicationCount": 10,
  "lastBuildDate": "Tue, 07 Jul 2026 10:00:00 GMT",
  "latestItems": [
    {
      "title": "Example headline",
      "url": "https://news.google.com/rss/articles/...",
      "publishedAt": "Tue, 07 Jul 2026 09:45:00 GMT",
      "sourceLabel": "OSOME",
      "sourceUrl": "https://osome.com"
    }
  ],
  "reason": "Google News RSS returned recent publications for this domain."
}

#Google News bulk

POST/public/google-news/bulkPublic

Checks up to 100 domains against the Google News RSS method and returns one row per input.

JSON body
domainsstring[]required
Domains or URLs to check.
curl
curl "https://d2tr.com/api/public/google-news/bulk" \
  -H "Content-Type: application/json" \
  -d '{"domains":["osome.com","bbc.com","example.invalid"]}'
Response
{
  "ok": true,
  "rows": [
    {
      "input": "osome.com",
      "domain": "osome.com",
      "result": { "ok": true, "domain": "osome.com", "exists": true, "publicationCount": 10 },
      "error": null
    }
  ]
}

#Limit response

When the daily public checker quota is exhausted, the endpoint returns 429 and a JSON body with the reset timestamp. The response also includes X-RateLimit-* headers.

429 response
{
  "ok": false,
  "code": "daily_limit_exceeded",
  "error": "Daily limit exceeded. Create an account to continue.",
  "limit": 10,
  "remaining": 0,
  "resetAt": "2026-07-09T00:00:00.000Z"
}