Properties
| Name | Type | Description |
|---|---|---|
| vanity_name | string | The part after `/in/` in the profile URL. |
| url | string | The profile. |
| full_name | string | The name, as the profile shows it. |
| first_name | stringnull | The given name. |
| last_name | stringnull | The family name. |
| headline | stringnull | The line under the name. |
| about | stringnull | The About section. |
| location | stringnull | As printed, e.g. "Berlin, Germany". |
| profile_picture_url | stringnull | The profile photo. |
| follower_count | integernull | How many members follow the profile. |
| connection_count | integernull | LinkedIn stops counting at 500: a value of 500 means "500+". |
| open_to_work | booleannull | Whether the profile shows the #OpenToWork frame. |
| current_company | objectnull | The employer shown at the top of the profile. |
| experience | array | Positions, most recent first. |
| education | array | Schools, most recent first. |
| skills | array | As listed on the profile. |
| emails | array | Their work email, found with `detail=with_email` only, best first; empty otherwise, or when none is found. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/scrapefield-com/json-schema/scrapefield-com-linkedin-profile-schema.json",
"title": "linkedin_profile",
"description": "A LinkedIn profile.",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/scrapefield-com-openapi.json#/components/schemas/linkedin_profile",
"type": "object",
"required": [
"vanity_name",
"url",
"full_name",
"first_name",
"last_name",
"headline",
"about",
"location",
"profile_picture_url",
"follower_count",
"connection_count",
"open_to_work",
"current_company",
"experience",
"education",
"skills",
"emails"
],
"properties": {
"vanity_name": {
"type": "string",
"description": "The part after `/in/` in the profile URL."
},
"url": {
"type": "string",
"format": "uri",
"description": "The profile."
},
"full_name": {
"type": "string",
"description": "The name, as the profile shows it."
},
"first_name": {
"type": [
"string",
"null"
],
"description": "The given name."
},
"last_name": {
"type": [
"string",
"null"
],
"description": "The family name."
},
"headline": {
"type": [
"string",
"null"
],
"description": "The line under the name."
},
"about": {
"type": [
"string",
"null"
],
"description": "The About section."
},
"location": {
"type": [
"string",
"null"
],
"description": "As printed, e.g. \"Berlin, Germany\"."
},
"profile_picture_url": {
"type": [
"string",
"null"
],
"format": "uri",
"description": "The profile photo."
},
"follower_count": {
"type": [
"integer",
"null"
],
"description": "How many members follow the profile."
},
"connection_count": {
"type": [
"integer",
"null"
],
"description": "LinkedIn stops counting at 500: a value of 500 means \"500+\"."
},
"open_to_work": {
"type": [
"boolean",
"null"
],
"description": "Whether the profile shows the #OpenToWork frame."
},
"current_company": {
"type": [
"object",
"null"
],
"required": [
"name",
"url"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "As the listing prints it."
},
"url": {
"type": [
"string",
"null"
],
"format": "uri",
"description": "The company page, where it has one."
}
},
"additionalProperties": false,
"description": "The employer shown at the top of the profile."
},
"experience": {
"type": "array",
"items": {
"type": "object",
"required": [
"title",
"company",
"employment_type",
"location",
"start_date",
"end_date",
"is_current",
"description"
],
"properties": {
"title": {
"type": [
"string",
"null"
],
"description": "As the position shows it. `null` where the profile gives none."
},
"company": {
"type": "object",
"required": [
"name",
"url"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "As the listing prints it."
},
"url": {
"type": [
"string",
"null"
],
"format": "uri",
"description": "The company page, where it has one."
}
},
"additionalProperties": false,
"description": "The employer."
},
"employment_type": {
"type": [
"string",
"null"
],
"description": "As printed: \"Full-time\", \"Contract\", …"
},
"location": {
"type": [
"string",
"null"
],
"description": "Where the role is based, as printed."
},
"start_date": {
"type": [
"string",
"null"
],
"description": "`YYYY-MM`, or `YYYY` where the profile gives only a year."
},
"end_date": {
"type": [
"string",
"null"
],
"description": "`YYYY-MM` or `YYYY`; `null` for a current role, or where the profile gives no date: `is_current` tells which."
},
"is_current": {
"type": [
"boolean",
"null"
],
"description": "`true` where the profile says the role runs to the present, `false` where it gives an end date, `null` where it gives no dates."
},
"description": {
"type": [
"string",
"null"
],
"description": "What the profile says about the role."
}
},
"additionalProperties": false
},
"description": "Positions, most recent first."
},
"education": {
"type": "array",
"items": {
"type": "object",
"required": [
"school",
"degree",
"field_of_study",
"start_year",
"end_year"
],
"properties": {
"school": {
"type": "object",
"required": [
"name",
"url"
],
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "As the listing prints it."
},
"url": {
"type": [
"string",
"null"
],
"format": "uri",
"description": "The company page, where it has one."
}
},
"additionalProperties": false,
"description": "The school, and its LinkedIn page where it has one."
},
"degree": {
"type": [
"string",
"null"
],
"description": "As printed, e.g. \"Bachelor of Science - BS\"."
},
"field_of_study": {
"type": [
"string",
"null"
],
"description": "As printed, e.g. \"Computer Science\"."
},
"start_year": {
"type": [
"integer",
"null"
],
"description": "The year they started."
},
"end_year": {
"type": [
"integer",
"null"
],
"description": "The year they finished, or expect to."
}
},
"additionalProperties": false
},
"description": "Schools, most recent first."
},
"skills": {
"type": "array",
"items": {
"type": "string",
"description": "One skill."
},
"description": "As listed on the profile."
},
"emails": {
"type": "array",
"items": {
"type": "object",
"required": [
"email",
"status",
"deliverable",
"catch_all",
"free_provider"
],
"properties": {
"email": {
"type": "string",
"description": "The address."
},
"status": {
"type": [
"string",
"null"
],
"description": "`valid` when their mail server accepts it; `risky` when the server accepts every address, so this one cannot be confirmed."
},
"deliverable": {
"type": [
"boolean",
"null"
],
"description": "Whether mail to it should arrive."
},
"catch_all": {
"type": [
"boolean",
"null"
],
"description": "Whether the domain accepts any address at all, which makes a check meaningless."
},
"free_provider": {
"type": [
"boolean",
"null"
],
"description": "Whether it is at a free mail service, such as Gmail, rather than an employer's domain."
}
},
"additionalProperties": false,
"description": "One address."
},
"description": "Their work email, found with `detail=with_email` only, best first; empty otherwise, or when none is found."
}
},
"additionalProperties": false
}
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/scrapefield-com-linkedin-profile"
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.