{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/getoneprofile-ai/json-schema/getoneprofile-ai-account-detail-read-schema-schema.json",
  "title": "AccountDetailReadSchema",
  "description": "One account as its page reads it: its list row, and every merge into it.",
  "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/AccountDetailReadSchema",
  "properties": {
    "bounced_count": {
      "description": "People here an email bounced from.",
      "title": "Bounced Count",
      "type": "integer"
    },
    "company_row_count": {
      "description": "How many company rows sit on it.",
      "title": "Company Row Count",
      "type": "integer"
    },
    "domain": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Domain"
    },
    "employee_count": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "description": "The headcount as a number the list sorts by: a range's low end.",
      "title": "Employee Count"
    },
    "employees": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The company's headcount as its page shows it: 35,000, or a range like 51-200.",
      "title": "Employees"
    },
    "has_activity": {
      "description": "Whether anybody here was enrolled in a sequence or has a conversation.",
      "title": "Has Activity",
      "type": "boolean"
    },
    "id": {
      "description": "The account's id, stable while its key stays the same.",
      "format": "uuid",
      "title": "Id",
      "type": "string"
    },
    "in_sequence_count": {
      "description": "People here live in a sequence now.",
      "title": "In Sequence Count",
      "type": "integer"
    },
    "industry": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The company's industry, as its page shows it.",
      "title": "Industry"
    },
    "key": {
      "description": "The account's key: its domain (acme.com), or its LinkedIn page (li-co:acme) until a row ties that page to a domain.",
      "title": "Key",
      "type": "string"
    },
    "last_touch_at": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "When outreach last reached anybody here: the newest sequence step that went out or was done on a profile, or a reply, whichever is later. None when nobody was.",
      "title": "Last Touch At"
    },
    "linkedin_page": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The company's LinkedIn page key, if known.",
      "title": "Linkedin Page"
    },
    "logo_path": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The company's logo, a path under this API's address that needs no credentials (`/accounts/logos/{name}/`). Null until one is found for its website: opening Accounts looks for the logos due in the background.",
      "title": "Logo Path"
    },
    "merges": {
      "description": "Each merge into this account, a merge into one merged into it too: the account merged in, the one it joined, who merged it and when, newest first.",
      "items": {
        "$ref": "#/$defs/AccountMergeReadSchema"
      },
      "title": "Merges",
      "type": "array"
    },
    "name": {
      "title": "Name",
      "type": "string"
    },
    "newest_row_at": {
      "description": "When the newest row on it was made.",
      "format": "date-time",
      "title": "Newest Row At",
      "type": "string"
    },
    "owner_email": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The owner's email, if known.",
      "title": "Owner Email"
    },
    "owner_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Who owns its company record in a connected CRM, as the CRM names them; null when no CRM record names an owner, or the CRM has not said who that is.",
      "title": "Owner Name"
    },
    "owner_tool": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The CRM its owner comes from (Salesforce); set whenever a record names one.",
      "title": "Owner Tool"
    },
    "people_count": {
      "description": "How many people sit on it, each counted once.",
      "title": "People Count",
      "type": "integer"
    },
    "replied_count": {
      "description": "People here who replied, each counted once.",
      "title": "Replied Count",
      "type": "integer"
    },
    "search_match": {
      "anyOf": [
        {
          "$ref": "#/$defs/AccountSearchMatchReadSchema"
        },
        {
          "type": "null"
        }
      ],
      "description": "Why a search found it when its name and domain do not hold the search; null otherwise, and with no search."
    },
    "table_count": {
      "description": "How many linked tables hold a row on it.",
      "title": "Table Count",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "key",
    "name",
    "domain",
    "linkedin_page",
    "table_count",
    "company_row_count",
    "people_count",
    "has_activity",
    "newest_row_at",
    "last_touch_at",
    "replied_count",
    "bounced_count",
    "in_sequence_count",
    "industry",
    "employees",
    "employee_count",
    "merges"
  ],
  "type": "object",
  "$defs": {
    "AccountMergeReadSchema": {
      "description": "One merge a person made: every row of the first account shows on the second.",
      "properties": {
        "created_at": {
          "format": "date-time",
          "title": "Created At",
          "type": "string"
        },
        "created_by_user_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Created By User Id"
        },
        "from_key": {
          "title": "From Key",
          "type": "string"
        },
        "to_key": {
          "title": "To Key",
          "type": "string"
        }
      },
      "required": [
        "from_key",
        "to_key",
        "created_by_user_id",
        "created_at"
      ],
      "title": "AccountMergeReadSchema",
      "type": "object"
    },
    "AccountSearchMatchKind": {
      "description": "Why the list's search found an account its own name and key do not hold (review AC-26).",
      "enum": [
        "person",
        "merged_account",
        "row_name"
      ],
      "title": "AccountSearchMatchKind",
      "type": "string"
    },
    "AccountSearchMatchReadSchema": {
      "description": "Why the list's search found an account its own name and key do not hold (review AC-26).",
      "properties": {
        "kind": {
          "$ref": "#/$defs/AccountSearchMatchKind",
          "description": "`person`: a person on it is named so; `merged_account`: an account merged into it has this website or LinkedIn page; `row_name`: another row names the company so."
        },
        "value": {
          "description": "The person's name, the merged account's website, or the name.",
          "title": "Value",
          "type": "string"
        }
      },
      "required": [
        "kind",
        "value"
      ],
      "title": "AccountSearchMatchReadSchema",
      "type": "object"
    }
  }
}