Oneprofile · Schema
AccountOrgChartSchema
An account's org chart: every person with their line, hidden people last.
Sales OutreachAI ResearchEmail AutomationLinkedIn OutreachCRM Integration
Properties
| Name | Type | Description |
|---|---|---|
| budget_holder_candidates | array | Up to three people the draft thinks may hold the budget; a rep decides. |
| draft_current | boolean | Whether the draft was made over the people shown now. |
| draft_guesses | integer | Of the people a draft reads, those with no confirmed line: the ones it guesses a line for. |
| draft_reads | integer | People a draft reads: the most senior shown, up to 150. Past that, the more junior are left out. |
| drafted_at | object | When the free draft was made, if ever. |
| drafts_left | integer | Free drafts left in the rolling 24 hours. |
| drafts_reset_at | object | When the next free draft frees up, once none is left. |
| likely_lines | integer | Lines drawn from the draft now, each Likely until a person confirms it: GET /accounts/{account_key}/org-chart/drafted-lines/ lists them. |
| loops | array | Each loop of reporting lines no person has decided (the tables', the researcher's, or lines people set that a merge brought together): the chart leaves one of its lines out. A person picks one by sett |
| lost | array | Each role or line a rep set whose person is no longer at the account, newest first. What the rep set is kept, and comes back if the person does. |
| manager_offers | array | Each people table here with a column labelled like a manager (Manager, Reports to) that is not its manager column yet. Nothing is drawn from it until a person picks it: PATCH /accounts/sources/{table_ |
| people | array | |
| top_person_id | object | The account's top person when no line says so yet: the head of the biggest tree, with no line of their own (none drawn, none left out for a loop) and no other person at the top of the chart as senior. |
| tree_heads | array | Each person heading a tree (no manager drawn, someone under them), the most people under them first: the order the chart lists its trees in. Hidden people are never counted. With levels, only the head |
| window | object | With levels: the part of the chart sent. None: all of it. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/getoneprofile-ai/json-schema/getoneprofile-ai-account-org-chart-schema-schema.json",
"title": "AccountOrgChartSchema",
"description": "An account's org chart: every person with their line, hidden people last.",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/getoneprofile-ai-accounts-api-openapi.yml#/components/schemas/AccountOrgChartSchema",
"properties": {
"budget_holder_candidates": {
"description": "Up to three people the draft thinks may hold the budget; a rep decides.",
"items": {
"$ref": "#/$defs/AccountBudgetCandidateReadSchema"
},
"title": "Budget Holder Candidates",
"type": "array"
},
"draft_current": {
"description": "Whether the draft was made over the people shown now.",
"title": "Draft Current",
"type": "boolean"
},
"draft_guesses": {
"default": 0,
"description": "Of the people a draft reads, those with no confirmed line: the ones it guesses a line for.",
"title": "Draft Guesses",
"type": "integer"
},
"draft_reads": {
"default": 0,
"description": "People a draft reads: the most senior shown, up to 150. Past that, the more junior are left out.",
"title": "Draft Reads",
"type": "integer"
},
"drafted_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the free draft was made, if ever.",
"title": "Drafted At"
},
"drafts_left": {
"description": "Free drafts left in the rolling 24 hours.",
"title": "Drafts Left",
"type": "integer"
},
"drafts_reset_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the next free draft frees up, once none is left.",
"title": "Drafts Reset At"
},
"likely_lines": {
"default": 0,
"description": "Lines drawn from the draft now, each Likely until a person confirms it: GET /accounts/{account_key}/org-chart/drafted-lines/ lists them.",
"title": "Likely Lines",
"type": "integer"
},
"loops": {
"description": "Each loop of reporting lines no person has decided (the tables', the researcher's, or lines people set that a merge brought together): the chart leaves one of its lines out. A person picks one by setting a person's manager (PATCH /accounts/{account_key}/people/{person_id}/); in a loop of lines people set, the others are handed back first (manager_choice null), as a line to them would loop.",
"items": {
"$ref": "#/$defs/AccountChartLoopReadSchema"
},
"title": "Loops",
"type": "array"
},
"lost": {
"description": "Each role or line a rep set whose person is no longer at the account, newest first. What the rep set is kept, and comes back if the person does.",
"items": {
"$ref": "#/$defs/AccountChartLossReadSchema"
},
"title": "Lost",
"type": "array"
},
"manager_offers": {
"description": "Each people table here with a column labelled like a manager (Manager, Reports to) that is not its manager column yet. Nothing is drawn from it until a person picks it: PATCH /accounts/sources/{table_id}/ with manager_column_id.",
"items": {
"$ref": "#/$defs/AccountManagerColumnOfferReadSchema"
},
"title": "Manager Offers",
"type": "array"
},
"people": {
"items": {
"$ref": "#/$defs/AccountChartPersonReadSchema"
},
"title": "People",
"type": "array"
},
"top_person_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"description": "The account's top person when no line says so yet: the head of the biggest tree, with no line of their own (none drawn, none left out for a loop) and no other person at the top of the chart as senior. The page reads them as Top of the account.",
"title": "Top Person Id"
},
"tree_heads": {
"description": "Each person heading a tree (no manager drawn, someone under them), the most people under them first: the order the chart lists its trees in. Hidden people are never counted. With levels, only the heads this answer sends.",
"items": {
"format": "uuid",
"type": "string"
},
"title": "Tree Heads",
"type": "array"
},
"window": {
"anyOf": [
{
"$ref": "#/$defs/AccountChartWindowReadSchema"
},
{
"type": "null"
}
],
"description": "With levels: the part of the chart sent. None: all of it."
}
},
"required": [
"people",
"budget_holder_candidates",
"drafted_at",
"draft_current",
"drafts_left",
"drafts_reset_at",
"lost"
],
"type": "object",
"$defs": {
"AccountBudgetCandidateReadSchema": {
"description": "One person the draft thinks may hold the budget.",
"properties": {
"person_id": {
"format": "uuid",
"title": "Person Id",
"type": "string"
},
"reason": {
"title": "Reason",
"type": "string"
}
},
"required": [
"person_id",
"reason"
],
"title": "AccountBudgetCandidateReadSchema",
"type": "object"
},
"AccountChartLineReadSchema": {
"description": "One reporting line, and where it came from.",
"properties": {
"column_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"description": "The column that states it, for a table's line.",
"title": "Column Id"
},
"confidence": {
"$ref": "#/$defs/AccountLineConfidence",
"description": "Confirmed when a source states it; likely when the draft guessed it."
},
"loops": {
"default": false,
"description": "On a line not drawn: drawing it would close a loop, so the chart leaves it out. The chart's loops name each one a person has not decided.",
"title": "Loops",
"type": "boolean"
},
"manager_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"description": "The manager's person id; None at the top of the chart, or for a manager not on this account.",
"title": "Manager Id"
},
"manager_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "A manager not on this account, as the source wrote them.",
"title": "Manager Name"
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The draft's reason, for a likely line.",
"title": "Reason"
},
"set_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "With a rep's line: when it was set.",
"title": "Set At"
},
"set_by_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "With a rep's line: who set it.",
"title": "Set By User Id"
},
"source": {
"$ref": "#/$defs/AccountLineSource",
"description": "Who gave it: a rep, a table's manager column, the Person researcher, or the free draft."
},
"table_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"description": "The table that states it, for a table's line.",
"title": "Table Id"
}
},
"required": [
"source",
"confidence",
"manager_id",
"manager_name",
"reason",
"table_id",
"column_id",
"set_by_user_id",
"set_at"
],
"title": "AccountChartLineReadSchema",
"type": "object"
},
"AccountChartLoopReadSchema": {
"description": "Lines the sources state that loop back on themselves, for a person to pick from.",
"properties": {
"steps": {
"description": "The loop's lines in turn, each manager the next one's person, the last back to the first. The chart draws every line but the first.",
"items": {
"$ref": "#/$defs/AccountChartLoopStepReadSchema"
},
"title": "Steps",
"type": "array"
}
},
"required": [
"steps"
],
"title": "AccountChartLoopReadSchema",
"type": "object"
},
"AccountChartLoopStepReadSchema": {
"description": "One line of a loop: a person, and the manager a source says they report to.",
"properties": {
"manager_id": {
"format": "uuid",
"title": "Manager Id",
"type": "string"
},
"manager_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Manager Name"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Name"
},
"person_id": {
"format": "uuid",
"title": "Person Id",
"type": "string"
},
"source": {
"$ref": "#/$defs/AccountLineSource",
"description": "Who states the line."
},
"table_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"description": "The table that states it, for a table's line.",
"title": "Table Id"
},
"table_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "That table's name.",
"title": "Table Name"
}
},
"required": [
"person_id",
"name",
"manager_id",
"manager_name",
"source",
"table_id",
"table_name"
],
"title": "AccountChartLoopStepReadSchema",
"type": "object"
},
"AccountChartLossCause": {
"description": "Why someone a rep placed is no longer on the account.",
"enum": [
"moved",
"table_off",
"table_trashed",
"replaced",
"row_deleted",
"not_found"
],
"title": "AccountChartLossCause",
"type": "string"
},
"AccountChartLossKind": {
"description": "Whom a rep's word on the chart lost: the person it was about, or the manager it named.",
"enum": [
"person",
"manager"
],
"title": "AccountChartLossKind",
"type": "string"
},
"AccountChartLossReadSchema": {
"description": "A rep's word on the chart that lost its person: what it said, and where they are now.",
"properties": {
"can_return": {
"description": "Whether what was set comes back if a row names them here again.",
"title": "Can Return",
"type": "boolean"
},
"cause": {
"$ref": "#/$defs/AccountChartLossCause",
"description": "moved: their row now names another company (now_at_key, when it is found); table_off: their table no longer feeds Accounts; table_trashed: their table is in the Trash; replaced: their row is still here but names someone else now; row_deleted: their row is gone; not_found: no row puts them here, and none was kept to say why."
},
"kind": {
"$ref": "#/$defs/AccountChartLossKind",
"description": "person: the person a rep gave a role or a line to is no longer at the account. manager: the manager a rep said someone reports to is no longer at the account; their line falls back to the chart's own sources meanwhile."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Their name when the rep set it, if known.",
"title": "Name"
},
"now_at_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "With moved: the account their rows put them at.",
"title": "Now At Key"
},
"now_at_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "That account's name.",
"title": "Now At Name"
},
"person_key": {
"description": "The person who is gone, as forget takes them.",
"title": "Person Key",
"type": "string"
},
"role": {
"anyOf": [
{
"$ref": "#/$defs/AccountPersonRole"
},
{
"type": "null"
}
],
"description": "The part the rep said they play, with kind person."
},
"subject_person_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"description": "With kind manager: the person on the chart whose line named them.",
"title": "Subject Person Id"
}
},
"required": [
"kind",
"person_key",
"name",
"role",
"subject_person_id",
"cause",
"now_at_key",
"now_at_name",
"can_return"
],
"title": "AccountChartLossReadSchema",
"type": "object"
},
"AccountChartPersonReadSchema": {
"description": "One person on the chart, the line drawn for them, and what reps set.",
"properties": {
"edited_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Edited At"
},
"edited_by_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Edited By User Id"
},
"hidden": {
"description": "Whether a rep hid them from the chart.",
"title": "Hidden",
"type": "boolean"
},
"hidden_reason": {
"anyOf": [
{
"$ref": "#/$defs/AccountHiddenReason"
},
{
"type": "null"
}
],
"description": "With hidden: why. left: they left the company; wrong_person: the row is not someone at this company; not_relevant: here, but not part of the deal. Null when shown, or when no reason was given."
},
"line": {
"anyOf": [
{
"$ref": "#/$defs/AccountChartLineReadSchema"
},
{
"type": "null"
}
],
"description": "The line drawn; None when no source gives one."
},
"other_lines": {
"description": "What weaker sources say, where they name a different manager.",
"items": {
"$ref": "#/$defs/AccountChartLineReadSchema"
},
"title": "Other Lines",
"type": "array"
},
"person": {
"$ref": "#/$defs/AccountPersonReadSchema"
},
"role": {
"anyOf": [
{
"$ref": "#/$defs/AccountPersonRole"
},
{
"type": "null"
}
],
"description": "Their part in a deal, as a rep set it."
},
"role_set_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "When the role was set.",
"title": "Role Set At"
},
"role_set_by_user_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Who set the role, when one is set.",
"title": "Role Set By User Id"
}
},
"required": [
"person",
"line",
"other_lines",
"role",
"hidden",
"edited_by_user_id",
"edited_at",
"role_set_by_user_id",
"role_set_at"
],
"title": "AccountChartPersonReadSchema",
"type": "object"
},
"AccountChartWindowReadSchema": {
"description": "The part of a chart sent when only part was asked for (``levels``).",
"properties": {
"focus_path": {
"description": "With focus: the way down to them, from the top of their tree.",
"items": {
"format": "uuid",
"type": "string"
},
"title": "Focus Path",
"type": "array"
},
"loose_count": {
"description": "People with no line either way: no manager, no reports.",
"title": "Loose Count",
"type": "integer"
},
"loose_shown": {
"description": "How many of those are drawn.",
"title": "Loose Shown",
"type": "integer"
},
"reports": {
"additionalProperties": {
"type": "integer"
},
"description": "How many report to each drawn person, drawn or not, for each who has any.",
"propertyNames": {
"format": "uuid"
},
"title": "Reports",
"type": "object"
},
"shown": {
"description": "The people drawn, top down. people also holds the ones the page names elsewhere: the hidden, role holders, the draft's candidates, a lost line's subject.",
"items": {
"format": "uuid",
"type": "string"
},
"title": "Shown",
"type": "array"
},
"top_count": {
"description": "People at the top of a tree: no manager, some reports.",
"title": "Top Count",
"type": "integer"
},
"top_shown": {
"description": "How many of those are drawn.",
"title": "Top Shown",
"type": "integer"
},
"visible_count": {
"description": "Everyone on the chart who is not hidden.",
"title": "Visible Count",
"type": "integer"
}
},
"required": [
"shown",
"reports",
"visible_count",
"loose_count",
"loose_shown",
"top_count",
"top_shown",
"focus_path"
],
"title": "AccountChartWindowReadSchema",
"type": "object"
},
"AccountDepartment": {
"description": "The part of a company a person's title names (review AC-12). None: it names none.\n\nRead off the title's words by a fixed rule (``org_chart.title_department``).",
"enum": [
"sales",
"marketing",
"customer_success",
"product",
"design",
"engineering",
"data",
"it",
"security",
"finance",
"people",
"operations",
"legal"
],
"title": "AccountDepartment",
"type": "string"
},
"AccountEmailStatus": {
"description": "What is known of a person's address (review AC-12). None: nothing checked it.\n\nThe verdict of the Verify email column over the address on their row, the\nwords that column writes; BOUNCED when an email to them bounced, whatever\na check said.",
"enum": [
"valid",
"catch_all",
"risky",
"unknown",
"invalid",
"disposable",
"bounced"
],
"title": "AccountEmailStatus",
"type": "string"
},
"AccountHiddenReason": {
"description": "Why a rep hid a person from the chart (review AC-33). None: not said.",
"enum": [
"left",
"wrong_person",
"not_relevant"
],
"title": "AccountHiddenReason",
"type": "string"
},
"AccountKeyKind": {
"description": "Which value of a row named its account.",
"enum": [
"website",
"company_page",
"email_domain"
],
"title": "AccountKeyKind",
"type": "string"
},
"AccountLineConfidence": {
"description": "How sure a line is: stated somewhere (confirmed), or the draft's guess (likely).",
"enum": [
"confirmed",
"likely"
],
"title": "AccountLineConfidence",
"type": "string"
},
"AccountLineSource": {
"description": "Where a reporting line came from.",
"enum": [
"rep",
"table",
"research",
"draft"
],
"title": "AccountLineSource",
"type": "string"
},
"AccountManagerColumnOfferReadSchema": {
"description": "A people table's column the chart could be drawn from, once a person picks it.",
"properties": {
"column_id": {
"format": "uuid",
"title": "Column Id",
"type": "string"
},
"column_name": {
"title": "Column Name",
"type": "string"
},
"table_id": {
"format": "uuid",
"title": "Table Id",
"type": "string"
},
"table_name": {
"title": "Table Name",
"type": "string"
}
},
"required": [
"table_id",
"table_name",
"column_id",
"column_name"
],
"title": "AccountManagerColumnOfferReadSchema",
"type": "object"
},
"AccountNamesake": {
"description": "What another person at the account going by the same name is to someone (review AC-19).\n\nNames match as their words, case, accents and punctuation gone. LIKELY_SAME:\na full name (two words or more, none a lone letter) and nothing tells them\napart (at most one of them has a LinkedIn profile), so they are likely one\nperson found twice, as a merge leaves them. SAME_NAME: each has a LinkedIn\nprofile of their own, so they are two people, or the name is short of a\nfull one, which says too little. A placeholder (\"LinkedIn Member\") is no\nname, and names no namesakes.",
"enum": [
"likely_same",
"same_name"
],
"title": "AccountNamesake",
"type": "string"
},
"AccountNamesakeReadSchema": {
"description": "Another person at the account going by the same name (review AC-19).",
"properties": {
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Email"
},
"id": {
"description": "Their person id.",
"format": "uuid",
"title": "Id",
"type": "string"
},
"kind": {
"$ref": "#/$defs/AccountNamesake",
"description": "`likely_same`: nothing tells the two apart, so they are likely one person found twice (a merge often leaves them). `same_name`: each has a LinkedIn profile of their own, or the name is short of a full one (one word, or a lone letter)."
},
"linkedin_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Linkedin Url"
}
},
"required": [
"id",
"email",
"linkedin_url",
"kind"
],
"title": "AccountNamesakeReadSchema",
"type": "object"
},
"AccountPersonEnrolmentReadSchema": {
"properties": {
"bounced": {
"description": "Whether an email to the person bounced.",
"title": "Bounced",
"type": "boolean"
},
"enrolment_id": {
"format": "uuid",
"title": "Enrolment Id",
"type": "string"
},
"failure_code": {
"anyOf": [
{
"$ref": "#/$defs/EnrolmentFailureCode"
},
{
"type": "null"
}
],
"description": "What failed, on a failed enrolment only."
},
"last_sent_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Last Sent At"
},
"replied_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Replied At"
},
"sequence_id": {
"format": "uuid",
"title": "Sequence Id",
"type": "string"
},
"sequence_name": {
"title": "Sequence Name",
"type": "string"
},
"status": {
"$ref": "#/$defs/EnrolmentStatus"
},
"stop_reason": {
"anyOf": [
{
"$ref": "#/$defs/StopReason"
},
{
"type": "null"
}
],
"description": "Why a stopped enrolment stopped, such as a reply; null otherwise."
}
},
"required": [
"enrolment_id",
"sequence_id",
"sequence_name",
"status",
"last_sent_at",
"replied_at",
"stop_reason",
"bounced",
"failure_code"
],
"title": "AccountPersonEnrolmentReadSchema",
"type": "object"
},
"AccountPersonReadSchema": {
"description": "One person at the account, once however many rows name them.",
"properties": {
"data_at": {
"description": "How old what is shown is: when their title last changed.",
"format": "date-time",
"title": "Data At",
"type": "string"
},
"department": {
"anyOf": [
{
"$ref": "#/$defs/AccountDepartment"
},
{
"type": "null"
}
],
"description": "The department their title names, read off its words; null if none."
},
"email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Email"
},
"email_status": {
"anyOf": [
{
"$ref": "#/$defs/AccountEmailStatus"
},
{
"type": "null"
}
],
"description": "What is known of their address: the verdict of the Verify email column over it, or `bounced`; null when nothing checked it."
},
"enrolments": {
"items": {
"$ref": "#/$defs/AccountPersonEnrolmentReadSchema"
},
"title": "Enrolments",
"type": "array"
},
"id": {
"description": "The person's id: what a URL or an edit names them by.",
"format": "uuid",
"title": "Id",
"type": "string"
},
"key": {
"description": "The person's key: their LinkedIn profile, else their address.",
"title": "Key",
"type": "string"
},
"last_contacted_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Last Contacted At"
},
"linkedin_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Linkedin Url"
},
"matched_on": {
"$ref": "#/$defs/AccountKeyKind",
"description": "What put them on this account: their company's website, its LinkedIn page, or their work address."
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Name"
},
"namesake_count": {
"description": "How many others at the account go by the same name, all of them.",
"title": "Namesake Count",
"type": "integer"
},
"namesakes": {
"description": "The others at the account going by the same name, likely the same first, at most 10; their address or profile tells them apart.",
"items": {
"$ref": "#/$defs/AccountNamesakeReadSchema"
},
"title": "Namesakes",
"type": "array"
},
"replied_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"title": "Replied At"
},
"role": {
"anyOf": [
{
"$ref": "#/$defs/AccountPersonRole"
},
{
"type": "null"
}
],
"description": "The part a rep says they play in a deal, set on the org chart."
},
"seniority": {
"anyOf": [
{
"$ref": "#/$defs/AccountSeniority"
},
{
"type": "null"
}
],
"description": "How senior their title says they are, read off its words; null with no title. `other` is a title with no rank word."
},
"sources": {
"items": {
"$ref": "#/$defs/AccountPersonSourceReadSchema"
},
"title": "Sources",
"type": "array"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title"
}
},
"required": [
"id",
"key",
"name",
"title",
"email",
"linkedin_url",
"matched_on",
"data_at",
"last_contacted_at",
"replied_at",
"sources",
"enrolments",
"seniority",
"department",
"email_status",
"role",
"namesakes",
"namesake_count"
],
"title": "AccountPersonReadSchema",
"type": "object"
},
"AccountPersonRole": {
"description": "The part a rep says a person plays in a deal. None: not known.",
"enum": [
"champion",
"budget_holder",
"decision_maker",
"influencer",
"user",
"blocker"
],
"title": "AccountPersonRole",
"type": "string"
},
"AccountPersonSourceReadSchema": {
"properties": {
"record_id": {
"format": "uuid",
"title": "Record Id",
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://artifacts.apis.io/getoneprofile-ai/json-schema/getoneprofile-ai-account-org-chart-schema-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/getoneprofile-ai-account-org-chart-schema"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.