Access OnlyData Club profiles programmatically. All data is first-party — provided directly by profile owners.
Base URL: https://onlydata.club | Auth: profile endpoints are public read; business identity endpoints need an API key or owner session (scope read)
List all public profiles. Filter by type.
curl https://onlydata.club/api/profiles?type=person
Query params: type — person or company
Get full profile JSON by slug.
curl https://onlydata.club/api/profile/camfortin
Returns: name, headline, about, skills, roles, projects, education, and all structured data.
Create a new profile.
curl -X POST https://onlydata.club/api/claim \
-H "Content-Type: application/json" \
-d '{"slug":"yourname","name":"Your Name","type":"person"}'
Required: slug, name. Optional: type, headline, about, location, linkedin_url, website, profile_data
Get domain verification instructions for a company profile. Returns three methods: DNS TXT record, .well-known file, or HTML meta tag.
curl https://onlydata.club/api/verify-domain/instructions/producthacker
Attempt domain verification. Requires auth. On success, sets verified status and auto-elevates team members with matching email domains.
curl -X POST https://onlydata.club/api/verify-domain/producthacker \
-H "x-api-key: od_your_key" \
-H "Content-Type: application/json" \
-d '{"method": "dns"}'
Methods: dns (TXT record), file (.well-known), meta (HTML tag)
Agent readiness scores for all profiles. Scores 0-100 across crawlability, machine readability, API readiness, agentic commerce, content access, agent signals.
curl https://onlydata.club/api/agent-readiness
Detailed agent readiness scan for one profile, including per-check breakdowns and AI summary.
curl https://onlydata.club/api/agent-readiness/producthacker
Match and inspect companies in the business entity corpus: sourced rows, merge history, and typed relationships. Unlike the profile endpoints above, these need an API key (Authorization: Bearer <key>) or an owner session, with scope read.
Match a business by name, domain, phone, or email. Never returns a merged tombstone: follows merged_into_id to the surviving canonical row (bounded at 3 hops). The followed hop is reported in reasons as followed_merge_from:<id>; resolved_from is set when the canonical re-check itself redirects. Not metered.
curl -H "Authorization: Bearer YOUR_API_KEY" "https://onlydata.club/api/businesses/match?domain=example.com"
Query params: name, domain, phone, address, email, city. At least one of name, domain, phone or email is required.
Resolve a company to its canonical identity from a domain, name, or typed identifier. Same auth and scope as match. Metered (resolve).
curl -H "Authorization: Bearer YOUR_API_KEY" "https://onlydata.club/api/v1/companies/resolve?domain=example.com"
Query params: domain, name, identifier_type, identifier_value
Typed relationships for one company (for example backed_by, division_of, former_name_of), each with a direction label. The only surface serving relationship edges; the public graph declares PARENT_OF but has no built corporate edges today. Not metered.
curl -H "Authorization: Bearer YOUR_API_KEY" https://onlydata.club/api/v1/companies/12345/identity
Owners: a gated worked example of the full path (match, merge hop, relationships, projections) lives at /projections/how-it-works.
OnlyData Club is designed for AI agent consumption. Use any of these discovery mechanisms:
GET /llms.txt — Plain-text site description for LLMs
GET /.well-known/ai-plugin.json — OpenAI/Claude plugin manifest
GET /openapi.json — Full OpenAPI 3.0 specification
GET /mcp.json — MCP (Model Context Protocol) manifest
GET /products.json — Product/service feed for agentic commerce
GET /sitemap.xml — Dynamic XML sitemap
GET /robots.txt — Crawler permissions (all bots allowed)