Datacircle · Schema
HarvestApiProfileResponse
HarvestAPI's own answer to GET /linkedin/profile, minus `user` and `requestId` (our account with HarvestAPI), plus `datacircle_meta`.
CompanyB2B DataData EnrichmentLinkedInProfilesMCPData Co-op
Properties
| Name | Type | Description |
|---|---|---|
| element | object | The profile; `null` when HarvestAPI can't find it (`status` `404`) or refuses the request (`status` `400`). |
| cost | number | What HarvestAPI billed for the call, e.g. `0.0037` for a profile, `0.0023` for a profile it can't find. Datacircle charges you the same amount in dollars (`datacircle_meta.cost_usd`). |
| entityId | stringnull | The profile's LinkedIn member id (`ACoAA…`), as `element.id`; `null` when not found. |
| error | string | HarvestAPI's message when `element` is `null`, e.g. `Profile not found`. |
| free | boolean | `true` when HarvestAPI didn't bill the call (a request it refuses). |
| originalQuery | object | The request HarvestAPI got. |
| payments | array | What HarvestAPI billed, by name: `linkedinProfile` for a profile, `linkedinProfileShort` for a lookup that found nothing. |
| query | object | The request as HarvestAPI understood it: the `url` it read, with the `publicIdentifier` and `profileId` it resolved. |
| retries | integer | How many times HarvestAPI retried LinkedIn for this answer. |
| status | integer | HarvestAPI's own status, inside an HTTP `200`: `200` found, `404` not found, `400` a request it refuses. |
| datacircle_meta | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/datacircle/main/json-schema/datacircle-harvest-api-profile-response-schema.json",
"title": "HarvestApiProfileResponse",
"description": "HarvestAPI's own answer to GET /linkedin/profile, minus `user` and `requestId` (our account with HarvestAPI), plus `datacircle_meta`.",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/datacircle-openapi.yml#/components/schemas/HarvestApiProfileResponse",
"type": "object",
"properties": {
"element": {
"anyOf": [
{
"$ref": "#/$defs/HarvestApiProfile"
},
{
"type": "null"
}
],
"description": "The profile; `null` when HarvestAPI can't find it (`status` `404`) or refuses the request (`status` `400`)."
},
"cost": {
"type": "number",
"description": "What HarvestAPI billed for the call, e.g. `0.0037` for a profile, `0.0023` for a profile it can't find. Datacircle charges you the same amount in dollars (`datacircle_meta.cost_usd`)."
},
"entityId": {
"type": [
"string",
"null"
],
"description": "The profile's LinkedIn member id (`ACoAA…`), as `element.id`; `null` when not found."
},
"error": {
"type": "string",
"description": "HarvestAPI's message when `element` is `null`, e.g. `Profile not found`."
},
"free": {
"type": "boolean",
"description": "`true` when HarvestAPI didn't bill the call (a request it refuses)."
},
"originalQuery": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The profile URL HarvestAPI got."
}
},
"required": [
"url"
],
"additionalProperties": false,
"description": "The request HarvestAPI got."
},
"payments": {
"type": "array",
"items": {
"type": "string"
},
"description": "What HarvestAPI billed, by name: `linkedinProfile` for a profile, `linkedinProfileShort` for a lookup that found nothing."
},
"query": {
"type": "object",
"properties": {
"profileId": {
"type": [
"string",
"null"
],
"description": "The profile's LinkedIn member id (`ACoAA…`); `null` when not found."
},
"publicIdentifier": {
"type": [
"string",
"null"
],
"description": "The profile's slug, linkedin.com/in/<publicIdentifier>; `null` when not found."
},
"url": {
"type": "string",
"description": "The profile URL HarvestAPI read."
}
},
"required": [
"url"
],
"additionalProperties": false,
"description": "The request as HarvestAPI understood it: the `url` it read, with the `publicIdentifier` and `profileId` it resolved."
},
"retries": {
"type": "integer",
"description": "How many times HarvestAPI retried LinkedIn for this answer."
},
"status": {
"type": "integer",
"description": "HarvestAPI's own status, inside an HTTP `200`: `200` found, `404` not found, `400` a request it refuses."
},
"datacircle_meta": {
"$ref": "#/$defs/DatacircleMeta"
}
},
"required": [
"cost",
"element",
"entityId",
"originalQuery",
"payments",
"query",
"retries",
"status",
"datacircle_meta"
],
"additionalProperties": false,
"$defs": {
"DatacircleMeta": {
"type": "object",
"description": "Datacircle's only addition to the provider's answer",
"required": [
"provider",
"cost_usd",
"balance_usd"
],
"properties": {
"provider": {
"type": "string",
"enum": [
"up2data",
"harvestapi"
],
"description": "which provider answered"
},
"cost_usd": {
"type": "number",
"description": "what this call cost, in dollars: the provider's price, no markup"
},
"balance_usd": {
"type": "number",
"description": "your balance after this call, in dollars (`balance_usd` in `GET /balance/`)"
}
},
"additionalProperties": false
},
"HarvestApiProfile": {
"type": "object",
"properties": {
"about": {
"type": [
"string",
"null"
],
"description": "The profile's About section."
},
"causes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The causes the member cares about, e.g. `Education`."
},
"certifications": {
"type": "array",
"items": {
"type": "object",
"properties": {
"issuedAt": {
"type": [
"string",
"null"
],
"description": "When, as LinkedIn shows it, e.g. `Issued Jul 1998 · Expired Jul 2018`."
},
"issuedBy": {
"type": [
"string",
"null"
],
"description": "Who issued it."
},
"issuedByLink": {
"type": [
"string",
"null"
],
"description": "The issuer's LinkedIn page."
},
"issuedByLogo": {
"type": "object",
"properties": {
"sizes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"height": {
"type": "integer",
"description": "Height, in pixels."
},
"url": {
"type": "string",
"description": "The image's URL."
},
"width": {
"type": "integer",
"description": "Width, in pixels."
}
},
"required": [
"height",
"url",
"width"
],
"additionalProperties": false
},
"description": "Every size LinkedIn serves."
},
"url": {
"type": [
"string",
"null"
],
"description": "The image's URL."
}
},
"required": [
"sizes",
"url"
],
"additionalProperties": false,
"description": "The issuer's logo: `url` (the largest image) and `sizes`, every size LinkedIn serves."
},
"link": {
"type": [
"string",
"null"
],
"description": "The certificate's own URL."
},
"title": {
"type": "string",
"description": "The certification."
}
},
"required": [
"issuedAt",
"issuedBy",
"issuedByLogo",
"title"
],
"additionalProperties": false
},
"description": "Licenses and certifications."
},
"composeOptionType": {
"type": [
"string",
"null"
],
"description": "How LinkedIn lets someone not connected write to the member, e.g. `PREMIUM_INMAIL`."
},
"connectionsCount": {
"type": [
"integer",
"null"
],
"description": "The member's connections, as LinkedIn counts them (it shows `500+` past 500)."
},
"courses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"associatedWith": {
"type": [
"string",
"null"
],
"description": "The job or school it came with."
},
"associatedWithLink": {
"type": [
"string",
"null"
],
"description": "That job's or school's LinkedIn page."
},
"number": {
"type": [
"string",
"null"
],
"description": "The course's number."
},
"title": {
"type": "string",
"description": "The course."
}
},
"required": [
"associatedWith",
"associatedWithLink",
"number",
"title"
],
"additionalProperties": false
},
"description": "Courses."
},
"coverPicture": {
"type": [
"object",
"null"
],
"properties": {
"sizes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"height": {
"type": "integer",
"description": "Height, in pixels."
},
"url": {
"type": "string",
"description": "The image's URL."
},
"width": {
"type": "integer",
"description": "Width, in pixels."
}
},
"required": [
"height",
"url",
"width"
],
"additionalProperties": false
},
"description": "Every size LinkedIn serves."
},
"url": {
"type": [
"string",
"null"
],
"description": "The image's URL."
}
},
"required": [
"sizes",
"url"
],
"additionalProperties": false,
"description": "The banner image behind the photo: `url` (the largest image) and `sizes`, every size LinkedIn serves."
},
"creator": {
"type": "boolean",
"description": "`true` when the member has creator mode on."
},
"currentPosition": {
"type": "array",
"items": {
"type": "object",
"properties": {
"companyId": {
"type": [
"string",
"null"
],
"description": "LinkedIn's numeric id of the company."
},
"companyLinkedinUrl": {
"type": [
"string",
"null"
],
"description": "The company's LinkedIn page."
},
"companyLogo": {
"type": [
"object",
"null"
],
"properties": {
"sizes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"height": {
"type": "integer",
"description": "Height, in pixels."
},
"url": {
"type": "string",
"description": "The image's URL."
},
"width": {
"type": "integer",
"description": "Width, in pixels."
}
},
"required": [
"height",
"url",
"width"
],
"additionalProperties": false
},
"description": "Every size LinkedIn serves."
},
"url": {
"type": "string",
"description": "The image's URL."
}
},
"required": [
"sizes",
"url"
],
"additionalProperties": false,
"description": "The company's logo: `url` (the largest image) and `sizes`, every size LinkedIn serves."
},
"companyName": {
"type": "string",
"description": "The company's name."
},
"companyUniversalName": {
"type": [
"string",
"null"
],
"description": "The company's slug: linkedin.com/company/<companyUniversalName>."
},
"description": {
"type": [
"string",
"null"
],
"description": "Its description, as written on the profile."
},
"duration": {
"type": [
"string",
"null"
],
"description": "How long, as LinkedIn shows it, e.g. `16 yrs 4 mos`."
},
"employmentType": {
"type": [
"string",
"null"
],
"description": "e.g. `Full-time`, `Self-employed`."
},
"endDate": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The date as LinkedIn shows it."
}
},
"required": [
"text"
],
"additionalProperties": false,
"description": "When it ended; `text` is `Present` for a current one: `text` as LinkedIn shows it (e.g. `Jun 2010`), with `year` and `month` when LinkedIn gives them."
},
"experienceGroupId": {
"type": [
"string",
"null"
],
"description": "Groups several jobs at the same company: equal on each."
},
"location": {
"type": [
"string",
"null"
],
"description": "Where the job is."
},
"position": {
"type": "string",
"description": "The job title."
},
"skills": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "The skills listed with it."
},
"startDate": {
"type": [
"object",
"null"
],
"properties": {
"month": {
"type": "string",
"description": "The month, e.g. `Jun`."
},
"text": {
"type": "string",
"description": "The date as LinkedIn shows it."
},
"year": {
"type": "integer",
"description": "The year."
}
},
"required": [
"text",
"year"
],
"additionalProperties": false,
"description": "When it started: `text` as LinkedIn shows it (e.g. `Jun 2010`), with `year` and `month` when LinkedIn gives them."
},
"workplaceType": {
"type": [
"string",
"null"
],
"description": "e.g. `On-site`, `Hybrid`, `Remote`."
}
},
"required": [
"companyId",
"companyLinkedinUrl",
"companyLogo",
"companyName",
"companyUniversalName",
"description",
"duration",
"employmentType",
"endDate",
"location",
"position",
"skills",
"startDate",
"workplaceType"
],
"additionalProperties": false
},
"description": "The member's current jobs, the same shape as `experience`."
},
"education": {
"type": "array",
"items": {
"type": "object",
"properties": {
"degree": {
"type": [
"string",
"null"
],
"description": "The degree."
},
"description": {
"type": [
"string",
"null"
],
"description": "Its description, as written on the profile."
},
"endDate": {
"type": [
"object",
"null"
],
"properties": {
"month": {
"type": [
"string",
"null"
],
"description": "The month, e.g. `Jun`."
},
"text": {
"type": "string",
"description": "The date as LinkedIn shows it."
},
"year": {
"type": "integer",
"description": "The year."
}
},
"required": [
"text",
"year"
],
"additionalProperties": false,
"description": "When it ended; `text` is `Present` for a current one: `text` as LinkedIn shows it (e.g. `Jun 2010`), with `year` and `month` when LinkedIn gives them."
},
"fieldOfStudy": {
"type": [
"string",
"null"
],
"description": "The field of study."
},
"insights": {
"type": [
"string",
"null"
],
"description": "Activities and societies, as written on the profile."
},
"period": {
"type": [
"string",
"null"
],
"description": "When, as LinkedIn shows it, e.g. `1981 - 1985`."
},
"schoolId": {
"type": [
"string",
"null"
],
"description": "LinkedIn's numeric id of the school."
},
"schoolLinkedinUrl": {
"type": [
"string",
"null"
],
"description": "The school's LinkedIn page."
},
"schoolLogo": {
"type": [
"object",
"null"
],
"properties": {
"sizes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"height": {
"type": "integer",
"description": "Height, in pixels."
},
"url": {
"type": "string",
"description": "The image's URL."
},
"width": {
"type": "integer",
"description": "Width, in pixels."
}
},
"required": [
"height",
"url",
"width"
],
"additionalProperties": false
},
"description": "Every size LinkedIn serves."
},
"url": {
"type": [
"string",
"null"
],
"description": "The image's URL."
}
},
"required": [
"sizes",
"url"
],
"additionalProperties": false,
"description": "The school's logo: `url` (the largest image) and `sizes`, every size LinkedIn serves."
},
"schoolName": {
"type": "string",
"description": "The school."
},
"skills": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "The skills listed with it."
},
"startDate": {
"type": [
"object",
"null"
],
"properties": {
"month": {
"type": [
"string",
"null"
],
"description": "The month, e.g. `Jun`."
},
"text": {
"type": "string",
"description": "The date as LinkedIn shows it."
},
"year": {
"type": "integer",
"description": "The year."
}
},
"required": [
"text",
"year"
],
"additionalProperties": false,
"description": "When it started: `text` as LinkedIn shows it (e.g. `Jun 2010`), with `year` and `month` when LinkedIn gives them."
}
},
"required": [
"degree",
"description",
"endDate",
"fieldOfStudy",
"insights",
"period",
"schoolId",
"schoolLinkedinUrl",
"schoolLogo",
"schoolName",
"skills",
"startDate"
],
"additionalProperties": false
},
"description": "Every school on the profile."
},
"emails": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 0,
"description": "Always empty: Datacircle sends HarvestAPI the profile lookup only, without its email search."
},
"experience": {
"type": "array",
"items": {
"type": "object",
"properties": {
"companyId": {
"type": [
"string",
"null"
],
"description": "LinkedIn's numeric id of the company."
},
"companyLinkedinUrl": {
"type": [
"string",
"null"
],
"description": "The company's LinkedIn page."
},
"companyLogo": {
"type": [
"object",
"null"
],
"properties": {
"sizes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"height": {
"type": "integer",
"description": "Height, in pixels."
},
"url": {
"type": "string",
"description": "The image's URL."
},
"width": {
"type": "integer",
"description": "Width, in pixels."
}
},
"required": [
"height",
"url",
"width"
],
"additionalProperties": false
},
"description": "Every size LinkedIn serves."
},
"url": {
"type": "string",
"description": "The image's URL."
}
},
"required": [
"sizes",
"url"
],
"additionalProperties": false,
"description": "The company's logo: `url` (the largest image) and `sizes`, every size LinkedIn serves."
},
"companyName": {
"type": "string",
"description": "The company's name."
},
"companyUniversalName": {
"type": [
"string",
"null"
],
"description": "The company's slug: linkedin.com/company/<companyUniversalName>."
},
"description": {
"type": [
"string",
"null"
],
"description": "Its description, as written on the profile."
},
"duration": {
"type": [
"string",
"null"
],
"description": "How long, as LinkedIn shows it, e.g. `16 yrs 4 mos`."
},
"employmentType": {
"type": [
"string",
"null"
],
"description": "e.g. `Full-time`, `Self-employed`."
},
"endDate": {
"type": [
"object",
"null"
],
"properties": {
"month": {
"type": [
"string",
"null"
],
"description": "The month, e.g. `Jun`."
},
"text": {
"type": "string",
"description": "The date as LinkedIn shows it."
},
"year": {
"type": "integer",
"description": "The year."
}
},
"required": [
"text"
],
"additionalProperties": false,
"description": "When it ended; `text` is `Present` for a current one: `text` as LinkedIn shows it (e.g. `Jun 2010`), with `year` and `month` when LinkedIn gives them."
},
"experienceGroupId": {
"type": [
"string",
"null"
],
"description": "Groups several jobs at the same company: equal on each."
},
"location": {
"type": [
"string",
"null"
],
"description": "Where the job is."
},
"position": {
"type": "string",
"description": "The job title."
},
"skills": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
},
"description": "The skills listed with it."
},
"startDate": {
"type": [
"object",
"null"
],
"properties": {
"month": {
"type": [
"string",
"null"
],
"description": "The month, e.g. `Jun`."
},
"text": {
"type": "string",
"description": "The date as LinkedIn shows it."
},
"year": {
"type": "integer",
"description": "The year."
}
},
"required": [
"text",
"year"
],
"additionalProperties": false,
"description": "When it started: `text` as LinkedIn shows it (e.g. `Jun 2010`), with `year` and `month` when LinkedIn gives them."
},
"workplaceType": {
"type": [
"string",
"null"
],
"description": "e.g. `On-site`, `Hybrid`, `Remote`."
}
},
"required": [
"companyId",
"companyLinkedinUrl",
"companyLogo",
"companyUniversalName",
"description",
"duration",
"employmentType",
"endDate",
"location",
"position",
"skills",
"startDate",
"workplaceType"
],
"additionalProperties": false
},
"description": "Every job on the profile, the newest first."
},
"featured": {
"type": [
"object",
"null"
],
"properties": {
"images": {
"type": "array",
"items": {
"type": "string"
},
"description": "Empty in every answer we hold."
},
"link": {
"type": "null",
"description": "Always `null` in every answer we hold."
},
"slides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"description": {
"type": "null",
"description": "Always `null` in every answer we hold."
},
"image": {
"type": "object",
"properties": {
"url": {
"type": [
"string",
"null"
],
"description": "The image's URL."
}
},
"required": [
"url"
],
"additionalProperties": false,
"description": "Its image."
},
"subtitle": {
"type": [
"string",
"null"
],
"description": "Its subtitle."
},
"title": {
"type": [
"object",
"string",
"null"
],
"properties": {
"accessibilityText": {
"type": "nu
# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/datacircle/refs/heads/main/json-schema/datacircle-harvest-api-profile-response-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/datacircle-harvest-api-profile-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.