For the complete documentation index, see llms.txt. This page is also available as Markdown.

Linked In Company Page

These operations validate the LinkedIn URL of a company and, from a company name plus optional website, look one up. The route decides the kind of page rather than the request body: this tag covers company pages (.../company/, .../school/, .../showcase/) only. A search is answered from public web search over the company name and country supplied; no LinkedIn account, session or credential is used.

Four dimensions are scored:

  • Completeness: whether a LinkedIn company page URL is present.

  • Validity: whether the URL follows LinkedIn's accepted format (no existence check).

  • Consistency: whether the input equals the normalized canonical company form (.../company/).

  • Accuracy: whether the URL matches the context supplied (company name, optionally website).

The result carries a normalized LinkedIn company page URL and those scores. When the context suggests a mismatch or uncertainty, candidate pages are returned ranked, each with a confidence score and the details read from the search result; a company website supplied in the request is used as a further signal. LinkedIn Profile covers people; the two are priced and permissioned separately.

Find & validate a company's LinkedIn page

post

Submit an asynchronous job to find and validate the LinkedIn page of a COMPANY: send url to validate one, or company_name (with website for precision) to search for one. Returns a job_id — pass it to getLinkedInCompanyPageResult to retrieve the canonical page URL plus accuracy and validity scores.

Two modes:

  • Validate an existing page — supply url.

  • Search — supply company_name, adding website for precision.

findAndValidateLinkedInProfile covers a PERSON — this operation looks for /company/, /school/ and /showcase/ pages only.

These results are processed from the company website and from public web search: Google results, retrieved through Google Custom Search API or a SERP provider. No LinkedIn account, session or credential is used, and no third-party database is consulted. The company name and country you supply are sent to that search provider, and the company website you supply — or the domain of an email address you supply, which itself never leaves Delpha — is requested directly. A URL you submit for validation is never requested: its format is checked, and it may be searched for through that search provider.

A live-mode call reserves credits and creates a job record retained for 10 days; unless your team has set resolution retention to 0, the call and its result are also recorded in your team's resolution history for the window your team configured (up to 30 days on the free tier, 180 on a paid plan). Re-submitting the same input starts a new job and a new charge, unless the request carries an Idempotency-Key already used with the same body within the last 24 hours — that returns the original job_id and reserves nothing. Test-mode calls are answered from the published fixture table and reserve nothing — see the API documentation's Test mode section.

Required scopes
This endpoint requires the following scopes:
  • : Access to the public API
Authorizations
OAuth2clientCredentialsRequired

OAuth 2.0 client-credentials flow (machine-to-machine). Token URL: https://secure.delpha.io/oauth2/token. The api/access scope is all-access: it grants every operation this document publishes. Per-use-case scoping, per-key credit ceilings and expiry are properties of an API key, not of this flow — use an API key when a credential must be restricted.

Token URL:
Body

Payload to submit a new LinkedIn quality job.

urlstring · uri · nullableOptional

LinkedIn company page URL to validate (e.g. https://www.linkedin.com/company/delphainc/). When set, the operation runs in validation mode.

Default: nullExample: https://www.linkedin.com/company/delphainc/
websitestring · uri · nullableOptional

Company website (e.g. https://delpha.io/). The strongest signal after the name. Optional.

Default: nullExample: https://delpha.io/
company_namestring · nullableOptional

Company whose LinkedIn page is being looked up (e.g. Delpha). Required when url is not supplied. Paired with website it narrows the search further.

Default: nullExample: Delpha
emailstring · email · nullableOptional

An email at the company's domain, used only for its domain as a website signal (e.g. jordan.rivera@delpha.io); the address itself never leaves Delpha. Optional; an address at an unrelated domain points the search at that domain instead.

Default: nullExample: jordan.rivera@delpha.io
countrystring · nullableOptional

Country of the company, used to disambiguate the match (e.g. France or FR). Accepts an ISO 3166-1 alpha-2 code or a plain English country name. Optional.

Default: nullExample: France
Responses
202

Accepted / still running — poll the result route with the returned job_id.

application/json
post/v1/linkedin-company-page
POST /v1/linkedin-company-page HTTP/1.1
Host: api.delpha.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 161

{
  "url": "https://www.linkedin.com/company/delphainc/",
  "website": "https://delpha.io/",
  "company_name": "Delpha",
  "email": "jordan.rivera@delpha.io",
  "country": "France"
}
{
  "code": "ok",
  "request_id": "c1a2b3d4-0000-4a5b-8c9d-ef0123456789",
  "job_id": "21014abc65004d2781d2e0ef4c9fbb46",
  "message": "Job submitted",
  "status": "SUCCESS",
  "status_code": 202
}

Get LinkedIn company page result

get

Fetch the result of a previously submitted findAndValidateLinkedInCompanyPage job by job_id. On success, the result payload contains the canonical company page URL, accuracy and validity scores, and a recommendations array of candidate pages (each carrying url, headline, desc, company_name, location, and a confidence score) when the match is uncertain. In search mode the top-level label and scores are often "No" and 0 while recommendations still holds the candidates. Each candidate carries a desc and a headline; unrelated companies can share a name across countries, so those two fields are what tell them apart.

Reading a result starts no work and adds no charge, but it finalizes the job's accounting once: the job's charge is settled when its result is first delivered, and refunded when the job failed, exceeded its time limit or produced no usable result — a job past its time limit is marked failed by that read. Repeating the call returns the same answer and never charges again.

Required scopes
This endpoint requires the following scopes:
  • : Access to the public API
Authorizations
OAuth2clientCredentialsRequired

OAuth 2.0 client-credentials flow (machine-to-machine). Token URL: https://secure.delpha.io/oauth2/token. The api/access scope is all-access: it grants every operation this document publishes. Per-use-case scoping, per-key credit ceilings and expiry are properties of an API key, not of this flow — use an API key when a credential must be restricted.

Token URL:
Path parameters
job_idstringRequired

Opaque job identifier returned by findAndValidateLinkedInCompanyPage.

Example: {"value":"21014abc65004d2781d2e0ef4c9fbb46","summary":"Sample job ID"}
Responses
200

Job succeeded — the result payload is populated.

application/json
get/v1/linkedin-company-page/{job_id}
GET /v1/linkedin-company-page/{job_id} HTTP/1.1
Host: api.delpha.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "code": "ok",
  "request_id": "c1a2b3d4-0000-4a5b-8c9d-ef0123456789",
  "message": "Job succeeded.",
  "status": "SUCCESS",
  "status_code": 200,
  "result": {
    "data_type": "social_network",
    "normalized_value": "https://www.linkedin.com/company/delphainc/",
    "label": "OK",
    "scores": {
      "accuracy": 0.8711710601954503,
      "completeness": 1,
      "consistency": 1,
      "validity": 1
    },
    "recommendations": [
      {
        "url": "https://www.linkedin.com/company/delphainc/",
        "score": 0.8711710601954503,
        "headline": "Delpha",
        "rank": 1,
        "desc": "Delpha · Software Development · Paris, France",
        "company_name": "Delpha",
        "location": "Paris",
        "match_score": 0.8711710601954503,
        "ambiguity_n": 1
      }
    ],
    "recommendation_status": "confident",
    "type": "linkedin"
  },
  "process_time": 0.123
}

Submit a batch of LinkedIn company page items

post

Submit 1..100 LinkedIn company page items for asynchronous batch processing as ONE job (never a per-item fan-out). Returns a job_id immediately (202); poll GET /v1/linkedin-company-page/batch/{job_id} for status and results. Each item follows LinkedInCompanyPageSubmitInputBatchItem; see that component for its fields. It uses the runtime validation of POST /v1/linkedin-company-page. A payload with 0 items or more than 100 is rejected with 422.

A live-mode call reserves credits and creates a job record retained for 10 days; unless your team has set resolution retention to 0, the call and its result are also recorded in your team's resolution history for the window your team configured (up to 30 days on the free tier, 180 on a paid plan). Re-submitting the same input starts a new job and a new charge, unless the request carries an Idempotency-Key already used with the same body within the last 24 hours — that returns the original job_id and reserves nothing. Test-mode calls are answered from the published fixture table and reserve nothing — see the API documentation's Test mode section.

Required scopes
This endpoint requires the following scopes:
  • : Access to the public API
Authorizations
OAuth2clientCredentialsRequired

OAuth 2.0 client-credentials flow (machine-to-machine). Token URL: https://secure.delpha.io/oauth2/token. The api/access scope is all-access: it grants every operation this document publishes. Per-use-case scoping, per-key credit ceilings and expiry are properties of an API key, not of this flow — use an API key when a credential must be restricted.

Token URL:
Body

Batch envelope for POST /v1/linkedin-company-page/batch: {"items": [...]} (1..100 items, 422 beyond). Each item follows LinkedInCompanyPageSubmitInputBatchItem; see that component for its fields. It uses the runtime validation of POST /v1/linkedin-company-page.

Responses
202

Accepted / still running — poll the result route with the returned job_id.

application/json
post/v1/linkedin-company-page/batch
POST /v1/linkedin-company-page/batch HTTP/1.1
Host: api.delpha.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 173

{
  "items": [
    {
      "url": "https://www.linkedin.com/company/delphainc/",
      "website": "https://delpha.io/",
      "company_name": "Delpha",
      "email": "jordan.rivera@delpha.io",
      "country": "France"
    }
  ]
}
{
  "code": "ok",
  "request_id": "c1a2b3d4-0000-4a5b-8c9d-ef0123456789",
  "job_id": "21014abc65004d2781d2e0ef4c9fbb46",
  "item_count": 100,
  "message": "Batch submitted",
  "status": "SUCCESS",
  "status_code": 202
}

Get LinkedIn company page batch job status

get

Poll a batch of LinkedIn company page items submitted via POST /v1/linkedin-company-page/batch. 202 while running (with item_count/processed_count progress); 200 once SUCCEEDED (with counts, a presigned result_url, and result_data inlined when <=1MB); 409 if the credit reservation expired before delivery (resubmit); 500 if the job failed; 504 past the 24h ceiling.

Reading a result starts no work and adds no charge, but it finalizes the job's accounting once: the job's charge is settled when its result is first delivered, and refunded when the job failed, exceeded its time limit or produced no usable result — a job past its time limit is marked failed by that read. Repeating the call returns the same answer and never charges again.

Required scopes
This endpoint requires the following scopes:
  • : Access to the public API
Authorizations
OAuth2clientCredentialsRequired

OAuth 2.0 client-credentials flow (machine-to-machine). Token URL: https://secure.delpha.io/oauth2/token. The api/access scope is all-access: it grants every operation this document publishes. Per-use-case scoping, per-key credit ceilings and expiry are properties of an API key, not of this flow — use an API key when a credential must be restricted.

Token URL:
Path parameters
job_idstringRequired

The unique identifier of the LinkedIn company page batch job.

Example: {"value":"21014abc65004d2781d2e0ef4c9fbb46","summary":"Sample job ID"}
Responses
200

Job succeeded — the result payload is populated.

application/json
get/v1/linkedin-company-page/batch/{job_id}
GET /v1/linkedin-company-page/batch/{job_id} HTTP/1.1
Host: api.delpha.io
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "code": "ok",
  "request_id": "c1a2b3d4-0000-4a5b-8c9d-ef0123456789",
  "message": "97/100 items succeeded",
  "status": "SUCCESS",
  "status_code": 200,
  "counts": {
    "total": 100,
    "succeeded": 97,
    "failed": 3
  },
  "result_url": "https://delpha-api-batch.s3.amazonaws.com/batch-results/<job_id>.json?...",
  "result_data": {
    "job_id": "21014abc65004d2781d2e0ef4c9fbb46",
    "usecase": "linkedin-company-page",
    "counts": {
      "total": 2,
      "succeeded": 1,
      "failed": 1
    },
    "items": [
      {
        "dispatch_key": {
          "record_id": "21014abc65004d2781d2e0ef4c9fbb46#0"
        },
        "result": {
          "data_type": "social_network",
          "normalized_value": "https://www.linkedin.com/company/delphainc/",
          "label": "OK",
          "scores": {
            "accuracy": 0.8711710601954503,
            "completeness": 1,
            "consistency": 1,
            "validity": 1
          },
          "recommendations": [
            {
              "url": "https://www.linkedin.com/company/delphainc/",
              "score": 0.8711710601954503,
              "headline": "Delpha",
              "rank": 1,
              "desc": "Delpha · Software Development · Paris, France",
              "company_name": "Delpha",
              "location": "Paris",
              "match_score": 0.8711710601954503,
              "ambiguity_n": 1
            }
          ],
          "recommendation_status": "confident",
          "type": "linkedin"
        }
      },
      {
        "dispatch_key": {
          "record_id": "21014abc65004d2781d2e0ef4c9fbb46#1"
        },
        "error": "Processing failed for this item."
      }
    ]
  },
  "item_count": null,
  "processed_count": null,
  "process_time": 12.3
}

Last updated

Was this helpful?