Company Socials (Crosswalk)
Pricing
Pay per event
Company Socials (Crosswalk)
Company Socials from a website or name — LinkedIn, Instagram, Facebook, X, TikTok, YouTube & more. Platform-verified. Enrich Maps leads. Multi-network, not LinkedIn-only.
Company Socials (Crosswalk)
Pricing
Pay per event
Company Socials from a website or name — LinkedIn, Instagram, Facebook, X, TikTok, YouTube & more. Platform-verified. Enrich Maps leads. Multi-network, not LinkedIn-only.
You can access the Company Socials (Crosswalk) programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "ArgQDziYR7Ld2AmH2" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/publicrecords~company-social-profile-finder/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-publicrecords-company-social-profile-finder", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/publicrecords~company-social-profile-finder/runs": { "post": { "operationId": "runs-sync-publicrecords-company-social-profile-finder", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/publicrecords~company-social-profile-finder/run-sync": { "post": { "operationId": "run-sync-publicrecords-company-social-profile-finder", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "query": { "title": "Single identifier", "type": "string", "description": "One identifier or company name (for agents, Zapier/Make steps, quick checks). Output defaults to compact for a single query." }, "mode": { "title": "Mode", "enum": [ "resolve", "healthcheck", "reverify", "export", "forget", "buildSecIndex", "seed" ], "type": "string", "description": "resolve: resolve the queries (default). healthcheck: run the canary set and FAIL the run on degradation (schedule hourly; wire an alert to run failure). reverify: re-resolve slice k of n of the graph with change events (schedule daily). export: dump the whole graph to the dataset (no charges). forget: purge the organizations in forgetIds. buildSecIndex: build the SEC ticker/CIK ↔ domain index used to enrich public companies (run monthly). seed: pre-resolve organizations (list / SEC / Wikidata) so first-touch lookups are free cache hits.", "default": "resolve" }, "queries": { "title": "Identifiers to resolve", "minItems": 0, "maxItems": 5000, "type": "array", "description": "One per line. A website domain (acme.com), any organization or profile URL (https://www.instagram.com/acme, https://www.linkedin.com/company/acme), a prefixed handle (ig:acme, x:acme, tiktok:acme, yt:@acme, fb:acme, gh:acme), a Google Maps place ID (ChIJ…), an SEC CIK/ticker (cik:320193, ticker:NET), an LEI — or a company name, optionally with a location (\"Acme Plumbing, Toronto\"). Names resolve only when exactly one candidate is unambiguous; otherwise you get a ranked `candidates` row (free) to pick from. Organizations and places only — people are refused.", "items": { "type": "string" } }, "inputDatasetId": { "title": "Enrich a dataset (on-ramp)", "type": "string", "description": "ID of any dataset — a Google Maps, LinkedIn jobs or company-scraper run, or an uploaded CSV. Each row's website field is resolved and the result is attached to the row as `crosswalk`; all original fields pass through. Leave `queries` empty when using this." }, "domainField": { "title": "Website field in that dataset", "type": "string", "description": "Auto-detected (website, websiteUrl, companyUrl, url, domain, homepage…) when empty." }, "maxRows": { "title": "Max rows to enrich", "minimum": 1, "maximum": 100000, "type": "integer", "description": "Maximum number of dataset rows to enrich in one run when inputDatasetId is set.", "default": 5000 }, "outputFormat": { "title": "Output format", "enum": [ "auto", "compact", "full" ], "type": "string", "description": "auto (default): compact for a single `query`, full for batches and datasets. compact: flat record with ids, urls, confidence and a verified flag — best for tool calls and spreadsheets. full: complete record with the evidence trail per link.", "default": "auto" }, "probeMode": { "title": "Verification depth", "enum": [ "auto", "direct", "actors", "declared" ], "type": "string", "description": "auto (default): confirm every platform. Free public endpoints where a platform serves them (GitHub, Wikidata, YouTube, LinkedIn, X, TikTok, Bluesky, Telegram, Yelp, Trustpilot); Instagram and Facebook are confirmed through the official Store Actors under your account (a fraction of a cent per profile, capped by the budgets below). direct: free endpoints only; Instagram/Facebook links are reported as not_attempted. actors: confirm every platform through Store Actors. declared: read the organization's website only.", "default": "auto" }, "actorProbesPerEntity": { "title": "Actor probes per organization", "minimum": 0, "maximum": 10, "type": "integer", "description": "Cap on Store-Actor confirmations per organization (auto/actors modes). Instagram + Facebook = 2.", "default": 2 }, "actorProbesPerRun": { "title": "Actor probes per run", "minimum": 0, "maximum": 100000, "type": "integer", "description": "Hard cap on Store-Actor confirmations for the whole run; beyond it, links are reported as not_attempted. Keeps sub-run spend predictable.", "default": 200 }, "maxProbesPerEntity": { "title": "Max platform probes per entity", "minimum": 0, "maximum": 40, "type": "integer", "description": "Upper bound on reverse-confirmation requests made for one organization. Keeps cost predictable in actors mode.", "default": 8 }, "cacheTtlDays": { "title": "Cache freshness (days)", "minimum": 0, "maximum": 365, "type": "integer", "description": "A cached record younger than this is returned without re-resolving (billed as a cache hit). Set 0 to always re-resolve.", "default": 30 }, "forceRefresh": { "title": "Force refresh", "type": "boolean", "description": "Ignore the cache and re-resolve every query. Identity-change events are still computed against the cached record.", "default": false }, "emitChangeEvents": { "title": "Emit identity-change events", "type": "boolean", "description": "When a re-resolved organization differs from its cached record (new domain, moved handle, closed place, rebrand), push an identity_change row.", "default": true }, "graphStoreName": { "title": "Graph store name", "type": "string", "description": "Named key-value store that holds the identity graph. Leave the default so every run compounds the same graph.", "default": "crosswalk-graph" }, "sharedGraphStoreId": { "title": "Shared graph store (advanced)", "type": "string", "description": "ID of the publisher's public, pre-seeded graph store. Reads fall through to it, so well-known companies are free cache hits. Defaults to the store the publisher configured; leave empty unless you run your own fork." }, "confidentThreshold": { "title": "Confident-link threshold", "minimum": 0.5, "maximum": 1, "type": "number", "description": "Links at or above this confidence count as confident. Links below are still returned, flagged low confidence, and never charged.", "default": 0.8 }, "probeActors": { "title": "Actor probes (advanced)", "type": "object", "description": "Only used when a Store Actor confirms a platform (auto/actors). Maps a platform key to the Actor and how to read its output. Defaults (apify/instagram-profile-scraper, apify/facebook-pages-scraper, harvestapi/linkedin-company, clockworks/tiktok-profile-scraper, apidojo/twitter-user-scraper, compass/crawler-google-places) live in src/platforms.js; override here without a code change. Shape: { \"instagram\": { \"actorId\": \"...\", \"input\": { \"usernames\": [\"{{id}}\"] }, \"externalUrlField\": [\"externalUrl\",\"externalUrls\"], \"nameField\": \"fullName\", \"bioField\": \"biography\" } }", "default": {} }, "proxyConfiguration": { "title": "Proxy", "type": "object", "description": "Proxy for website and direct-probe requests. Residential is rarely needed; the hub method reads the organization's own site.", "default": { "useApifyProxy": true } }, "requestTimeoutSecs": { "title": "Request timeout (seconds)", "minimum": 5, "maximum": 120, "type": "integer", "description": "HTTP request timeout in seconds for website and platform fetches.", "default": 20 }, "maxConcurrency": { "title": "Max concurrent resolutions", "minimum": 1, "maximum": 25, "type": "integer", "description": "Maximum number of organizations resolved in parallel.", "default": 5 }, "renderFallbackActor": { "title": "Render fallback Actor (advanced)", "type": "string", "description": "For JavaScript-only websites. A Store Actor that returns rendered HTML in an `html` field for a `url` input (e.g. apify/web-fetch). Sub-runs bill to you. Leave empty to diagnose JS-only sites instead." }, "seedTimeoutSecs": { "title": "Per-query timeout (seconds)", "minimum": 20, "maximum": 900, "type": "integer", "description": "One slow organization never stalls the run; abandoned queries get a `seed_timeout` diagnostic and are not charged.", "default": 120 }, "perHostPerSecond": { "title": "Politeness: requests per second per host", "minimum": 0.2, "maximum": 10, "type": "number", "description": "Maximum requests per second to any single host (politeness limiter).", "default": 2 }, "respectRobots": { "title": "Respect robots.txt on organization websites", "type": "boolean", "description": "When a site's robots.txt disallows reading, Crosswalk reports `website_robots_denied` instead of reading it.", "default": true }, "reverifySlice": { "title": "Re-verify: slice index", "minimum": 0, "maximum": 999, "type": "integer", "description": "reverify mode only. Which slice (0..slices-1) to re-resolve today. Schedule with a rotating value or use a daily task per slice.", "default": 0 }, "reverifySlices": { "title": "Re-verify: number of slices", "minimum": 1, "maximum": 1000, "type": "integer", "description": "How many deterministic slices to partition the graph into for reverify mode.", "default": 30 }, "reverifyLimit": { "title": "Re-verify: max organizations per run", "minimum": 1, "maximum": 20000, "type": "integer", "description": "Maximum number of organizations to re-verify in one run.", "default": 500 }, "forgetIds": { "title": "Forget: identifiers or canonicalIds to purge", "type": "array", "description": "forget mode only. Domains, platform URLs or org_… ids. Removes the record, its history and all indexes.", "default": [], "items": { "type": "string" } }, "probeConcurrency": { "title": "Parallel probes per organization", "minimum": 1, "maximum": 8, "type": "integer", "description": "How many platform probes to run in parallel for one organization.", "default": 4 }, "seedSource": { "title": "Seed: source", "enum": [ "list", "sec", "wikidata" ], "type": "string", "description": "seed mode only. list = seedDomains; sec = domains from the SEC index; wikidata = organizations with an official website (paged, resumable).", "default": "list" }, "seedDomains": { "title": "Seed: domains (list source)", "type": "array", "description": "Explicit list of domains to seed when seedSource is list.", "default": [], "items": { "type": "string" } }, "seedLimit": { "title": "Seed: organizations per run", "minimum": 1, "maximum": 50000, "type": "integer", "description": "Maximum number of organizations to seed in one run.", "default": 2000 }, "wikidataDeclared": { "title": "Use Wikidata as a second declared source", "type": "boolean", "description": "Wikidata's human-curated social properties for the organization whose official website is this domain are added as declared links (0.85) and still platform-verified. Independent of the website, so JS-only footers and robots-denied sites still resolve.", "default": true } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Company Socials (Crosswalk) from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: