Oneprofile · Schema
AccountChartPersonReadSchema
One person on the chart, the line drawn for them, and what reps set.
Sales OutreachAI ResearchEmail AutomationLinkedIn OutreachCRM Integration
Properties
| Name | Type | Description |
|---|---|---|
| edited_at | object | |
| edited_by_user_id | object | |
| hidden | boolean | Whether a rep hid them from the chart. |
| hidden_reason | object | 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 | object | The line drawn; None when no source gives one. |
| other_lines | array | What weaker sources say, where they name a different manager. |
| person | object | |
| role | object | Their part in a deal, as a rep set it. |
| role_set_at | object | When the role was set. |
| role_set_by_user_id | object | Who set the role, when one is set. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/getoneprofile-ai/json-schema/getoneprofile-ai-account-chart-person-read-schema-schema.json",
"title": "AccountChartPersonReadSchema",
"description": "One person on the chart, the line drawn for them, and what reps set.",
"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/AccountChartPersonReadSchema",
"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"
],
"type": "object",
"$defs": {
"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"
},
"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"
},
"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",
"type": "string"
},
"table_id": {
"format": "uuid",
"title": "Table Id",
"type": "string"
},
"table_name": {
"title": "Table Name",
"type": "string"
}
},
"required": [
"table_id",
"table_name",
"record_id"
],
"title": "AccountPersonSourceReadSchema",
"type": "object"
},
"AccountSeniority": {
"description": "How senior a person's title says they are (review AC-12). None: no title.\n\nRead off the title's words by a fixed rule (``org_chart.title_seniority``):\na title with no rank word in it is OTHER, never guessed at.",
"enum": [
"executive",
"vp",
"head",
"director",
"manager",
"senior",
"other"
],
"title": "AccountSeniority",
"type": "string"
},
"EnrolmentFailureCode": {
"description": "Which kind of failure stopped a FAILED contact, where the product treats one differently.\n\nStored beside ``failure_reason`` and cleared with it. Most failures carry\nno code: Retry runs the step that broke again. ``CONNECTED_BEFORE_WITHDRAW``\nis a Withdraw that found the person already connected: there is nothing\nto withdraw and nothing to retry, so no Retry offers it.\n``INVITE_LOOK_UNREADABLE`` is the profile look a connection request queued\nto learn its answer, which could not read the relationship: Retry queues\na fresh look rather than sending the request again. ``MISSING_VALUES`` is a\nBrowser use step the contact lacked a value for.",
"enum": [
"connected_before_withdraw",
"invite_look_unreadable",
"missing_values"
],
"title": "EnrolmentFailureCode",
"type": "string"
},
"EnrolmentStatus": {
"description": "Where one contact stands in one sequence.\n\nACTIVE rows carry a ``due_at`` and are what the tick claims; CLAIMED is the\nin-flight guard between claim and outcome. PAUSED is a deliberate\nper-contact hold: unclaimable because the tick claims strictly on ACTIVE,\nyet still LIVE. It keeps its step and its one-live-sequence slot, and a\ncompliance stop (reply, unsubscribe) reaches it. Everything else is\nsettled: COMPLETED walked off the end; STOPPED was halted (reply,\nunsubscribe, bounce, manual, company pause); FAILED is terminal;\nSUPPRESSED was on the do-not-contact list;\nSKIPPED_DUPLICATE lost the one-live-sequence-per-contact rule, with the\nreason visible in the grid.\n\nA contact the workspace's recontact rule refuses is STOPPED with\n``StopReason.COOLDOWN``. There is deliberately no held state: a cooldown\nsettles a contact rather than parking them, so nothing here waits on a date\nand nothing lets itself out later.\n\nAWAITING_ACTION is a contact parked behind a task that needs a\nperson or a channel, modelled on PAUSED: live, keeps its step and its\none-live-sequence slot, unclaimable because the tick claims strictly on\nACTIVE, and a compliance stop reaches it. Unlike PAUSED nobody wakes it by\nhand: only the outreach-task sweep does, once the task it waits on is\ndecided or delivered. Deliberately not \"awaiting approval\": an AUTO-mode\nLinkedIn park is waiting for a browser rather than for anyone's approval,\nand this value is the word the Contacts tab shows for both.\n\nPENDING is a draft's roster: in, standing on a step, and NOT live. Binding\nan audience enrols on the spot so the Contacts tab can show who is in, but\na sequence nobody has launched must not hold anybody's one-live-sequence\nslot, or a second sequence written for the same people skips them all.\n``uq_sequence_enrolment_one_live`` leaves PENDING out, the tick never\nclaims it, and launch turns each row ACTIVE, settling the ones another\nsequence took meanwhile as SKIPPED_DUPLICATE.",
"enum": [
"pending",
"active",
"claimed",
"paused",
"awaiting_action",
"completed",
"stopped",
"failed",
"suppressed",
"skipped_duplicate"
],
"title": "EnrolmentStatus",
"type": "string"
},
"StopReason": {
"enum": [
"reply",
"unsubscribe",
"do_not_contact",
"bounce",
"manual",
"company_reply",
"row_left_audience",
"row_left_paused",
"step_removed",
"removed",
"cooldown",
"rejected",
"mailbox_removed",
"unread_reply",
"declined",
"trashed",
"trashed_paused"
],
"title": "StopReason",
"type": "string"
}
}
}
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-chart-person-read-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.