Search Tools
Core
Data Modules
System
Pass your API key using the X-API-Key header or api_key query parameter.
Example: curl -H "X-API-Key: YOUR_KEY" https://api.sitesgraph.com/v1/domains/stripe.com
Retrieves enriched data for a specific domain.
const axios = require('axios');
axios.get("https://api.sitesgraph.com/v1/domains/stripe.com", {
headers: { "X-API-Key": "YOUR_API_KEY" }
}).then(res => console.log(res.data));
import requests
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(
"https://api.sitesgraph.com/v1/domains/stripe.com",
headers=headers
)
print(response.json())
Fetch a list of domains matching specific criteria (e.g. tld, type, has_email).
const axios = require('axios');
axios.get("https://api.sitesgraph.com/v1/leads", {
params: { tld: "be", type: "Restaurant", has_email: true },
headers: { "X-API-Key": "YOUR_API_KEY" }
}).then(res => console.log(res.data));
import requests
params = {"tld": "be", "type": "Restaurant", "has_email": "true"}
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.get(
"https://api.sitesgraph.com/v1/leads",
params=params,
headers=headers
)
print(response.json())
Triggers an LLM web search enrichment for the given domain. Generates an AI profile README, extracts people and normalises VAT.
const axios = require('axios');
axios.post("https://api.sitesgraph.com/v1/domains/stripe.com/llm-enrich", {}, {
headers: { "X-API-Key": "YOUR_API_KEY" }
}).then(res => console.log(res.data));
import requests
headers = {"X-API-Key": "YOUR_API_KEY"}
response = requests.post(
"https://api.sitesgraph.com/v1/domains/stripe.com/llm-enrich",
headers=headers
)
print(response.json())
| Domain | Model | Tokens (In/Out) | Cost | Created At | Actions |
|---|---|---|---|---|---|
| {{req.domain}} | {{req.model}} | {{req.input_tokens}} / {{req.output_tokens}} | ${{req.cost?.toFixed(5)}} | {{ago(req.created_at)}} | |
|
No LLM requests found.
|
|||||
| IP / Hostname (PID) | Status | Last Pinged | Actions |
|---|---|---|---|
| {{w.ip_address}} | offline {{w.status}} | {{ago(w.last_pinged_at)}} | |
|
No workers found. Start a worker to see it here.
|
|||
| Domain | Name | Type | Tel | Address | Country | TLD | Technologies | LD+JSON | HTTP | Crawled/Found | CC Pages | Indexed | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
{{d.domain}} | {{d.name||'—'}} | {{d.type}}— | {{d.email||'—'}} | {{d.telephone||'—'}} | {{d.address_locality||(d.street_address?'Yes':'—')}} | {{d.country||'?'}} | {{d.tld?'.'+d.tld:'?'}} | ✓— | {{d.http_status||'?'}} | {{d.crawl_pages_visited || 1}} / {{d.crawl_urls_discovered || '?'}} | {{d.cc_200_pages || '—'}} | {{ago(d.fetched_at)}} | ||
|
Run a search to see domains
|
|||||||||||||||
| ID | Title | Category | Score | Reviews | Address | City | Country | Phone | Website | Domain | Created At | Actions |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{p.id}} | {{p.title}} Closed | {{p.category_name || '—'}} | {{p.total_score || '—'}} | {{p.reviews_count || 0}} | {{p.address || '—'}} | {{p.city || '—'}} | {{p.country_code || '—'}} | {{p.phone || '—'}} | {{p.website}}— | {{p.domain}}— | {{p.created_at ? new Date(p.created_at).toLocaleString() : '—'}} | |
No places found | ||||||||||||
| ID | Category Name | Description | Clusters | Places Count | Actions |
|---|---|---|---|---|---|
| {{c.id || '—'}} | {{c.name}} | {{c.description || '—'}} | — | {{c.count || 0}} |
|
No categories found | |||||
| Name | Description | Categories | Actions |
|---|---|---|---|
| {{cl.name}} | {{cl.description || '—'}} | {{(cl.categories || []).join(', ')}} |
|
No clusters found | |||
| Label | Search Term(s) | Categories | Location | Status | Results / Max | Run ID | Actions | |
|---|---|---|---|---|---|---|---|---|
| {{q.label}} | {{q.search_term || '—'}} | {{q.category_filter || '—'}} | {{q.location || '—'}} | {{q.status}} |
{{q.total_results || 0}} / {{q.max_results || 100}} €{{ ((q.total_results || 0) * 0.005).toFixed(3) }} (exact) ~€{{ ((q.max_results || 100) * 0.005).toFixed(3) }} max |
{{q.run_id}} — |
|
|
No queries found | ||||||||
| TLD | Domain Count | Enriched Count | Last Updated |
|---|---|---|---|
| .{{t.tld}} | {{t.domain_count}} | {{t.enriched_count || 0}} ({{ ((t.enriched_count || 0) / t.domain_count * 100).toFixed(1) }}%) | {{ago(t.updated_at)}} |
No TLDs found | |||
| ID | Name (EN) | Description (EN) | Wikipedia | Actions |
|---|---|---|---|---|
| {{t.id}} | {{t.name_en}} | {{t.desc_en || '—'}} | Link— |
|
| ID | Name (EN) | Type | Parent | Description (EN) | Keywords | Actions |
|---|---|---|---|---|---|---|
| {{t.id}} | {{t.name_en}} | {{t.type}} | {{ getTagLabel(t.parent_id) }}— | {{t.desc_en || '—'}} | {{(t.keywords||[]).join(', ')}} |
|
| Domain | Network | URL | Discovered |
|---|---|---|---|
| {{s.domain}} | {{s.network}} | {{s.url}} | {{ago(s.created_at)}} |
|
No social links found.
|
|||
| Domain | Type | Status | Last Checked | Notes | Actions | |
|---|---|---|---|---|---|---|
| {{e.email}} | {{e.domain}} | {{e.type}} | {{e.status}} | {{ago(e.last_checked_at)}} | {{e.notes || '—'}} |
|
|
No emails found.
|
||||||
| Domain | Priority | Status | Error Message | Created At | Actions |
|---|---|---|---|---|---|
| {{q.domain}} | {{q.priority}} | {{q.status}} | {{q.error_message||'—'}} | {{ago(q.created_at)}} | |
|
Queue is empty!
|
|||||
| Domain | Model ID | Regex | Entity | Fields | Examples | Actions |
|---|---|---|---|---|---|---|
| {{m.domain_name || m.domain||'—'}} | {{m.model_id || m.id}} | {{m.regex || m.regexes?.[0]||'—'}} | {{m.mapping?.entity || m.entity||'—'}} | {{m.mapping?.schema?.length || m.schema?.length||0}} | {{(m.example_urls || m.exampleUrls || []).length}} |
|
|
No data models yet.
|
||||||
| Name | Source | Query/Keyword | Records | Created | Actions |
|---|---|---|---|---|---|
| {{seg.name}} | {{seg.source || '—'}} | {{seg.query || '—'}} | {{seg.users_count || 0}} | {{ago(seg.created_at)}} |
|
|
No segments yet. Create one to get started.
|
|||||
Access segment data programmatically using the API. You can configure the export parameters below and copy the generated API URL.
Domain Filters
Places Filters
Import Matched Records
Add the domains matching your rules to the segment records to start enriching them.
| Domain | Status | Name | Place Info | Added | Actions | |
|---|---|---|---|---|---|---|
| {{u.domain}} — | {{u.domain_status}} — |
{{u.name || '—'}}
Reason: {{u.message}}
|
Closed
{{u.place_data.score}} ({{u.place_data.reviews}})
{{u.place_data.category}}
{{u.place_data.city}}
Maps
|
{{ago(u.created_at)}} | ||
|
No records in this segment.
|
||||||
| Domain | Name | Type | Country/TLD | Match Score | Actions |
|---|---|---|---|---|---|
| {{rec.domain}} | {{rec.name || '—'}} | {{rec.type}}— | {{rec.country || rec.tld || '—'}} | Score: {{ (rec.kw_overlap * 2) + rec.trait_score }} | |
|
No recommendations found. Try adding more enriched domains to build a profile first.
|
|||||
Extracted People
Extracted Structured Data
| URL | Type | Title | Status | Last Fetched | Data |
|---|---|---|---|---|---|
| {{u.url.replace(/^https?:\/\//,'')}} | {{u.page_type}}— | {{u.page_title||'—'}} | {{u.http_status}}— | {{u.last_fetched_at?ago(u.last_fetched_at):'never'}} | ✓— |
No URLs found |
|||||
| Domain | Name | Description | Type | TLD | Lang | |
|---|---|---|---|---|---|---|
| {{d.domain}} | {{d.name||'—'}} | {{d.description||'—'}} | {{d.type}}— | {{d.email||'—'}} | {{d.tld||'?'}} | {{d.language||'?'}} |
| URL | Title | Type | HTTP |
|---|---|---|---|
| {{u.url.replace(/^https?:\/\//,'')}} | {{u.page_title||'—'}} | {{u.page_type}}— | {{u.http_status}} |
| {{col}} | Actions | |
|---|---|---|
| {{JSON.stringify(row[col])}} {{row[col]}} |
|
|
No data found |
Location Match
Current Weather
Hourly Breakdown
| Time | Temp | Condition | Wind | Precip |
|---|---|---|---|---|
| {{h.time.substring(11, 16)}} | {{h.temp_c}}°C | {{h.condition}} | {{h.wind_direction}} {{h.wind_speed_kmh}} km/h | {{h.precipitation_mm}} mm |
| Domain | Name | Type | Phone | |
|---|---|---|---|---|
| {{d.domain}} | {{d.name||'—'}} | {{d.type}}— | {{d.email||'—'}} | {{d.telephone||'—'}} |
| ID | Title | Category | Address | Phone | Domain |
|---|---|---|---|---|---|
| {{p.id}} | {{p.title}} | {{p.category_name || '—'}} | {{p.address || '—'}} | {{p.phone || '—'}} | {{p.domain}}— |
| Name | Created | Actions | |
|---|---|---|---|
| {{u.name || '—'}} {{u.role}} | {{u.email}} | {{ago(u.created_at)}} |
|
No users found | |||
| User | Label | Key | Status | Last Used | Actions |
|---|---|---|---|---|---|
| {{k.user_name || k.user_email}} | {{k.label || '—'}} | {{k.api_key}} | {{k.active ? 'Active' : 'Disabled'}} | {{ago(k.last_used_at)}} |
|
No API keys found | |||||
| Profile | Domain | Location | Followers | Score | Status | Actions |
|---|---|---|---|---|---|---|
|
{{p.username}}
{{p.full_name || '—'}}
|
{{p.domain}}— | {{p.city || '?'}}, {{p.country || '?'}}— | {{p.follower_count != null ? p.follower_count : '—'}} | {{Math.round(p.score)}} | {{p.fetched_at ? 'Crawled' : 'Pending'}} |
|
No profiles found | ||||||
Recent Posts ({{igDetailPosts.length}})
| Media | Profile | Caption | Engagement | Date |
|---|---|---|---|---|
|
|
{{p.caption || '—'}} |
{{p.like_count || 0}}
{{p.comment_count || 0}}
{{(p.engagement_rate * 100).toFixed(1)}}%
|
{{new Date(p.taken_at).toLocaleDateString()}} | |
No posts found | ||||
Exports the domains and urls tables as Parquet files to the configured S3 bucket.
Imports domain list CSV from the configured S3 bucket.
| {{key}} |
|---|
| {{val}} |
No results found. |
You are logged in as {{currentUser?.name || currentUser?.email}} ({{currentUser?.role}}).
| Type | Sources | |
|---|---|---|
| {{e.type}} |
+{{e.sources.length - 3}} more
—
|