{"components":{"schemas":{"Account":{"properties":{"id":{"readOnly":true,"type":"string"},"name":{"readOnly":true,"type":"string"},"phone":{"nullable":true,"readOnly":true,"type":"string"},"settings":{"allOf":[{"$ref":"#/components/schemas/AccountSettings"}],"readOnly":true}},"required":["id","name","phone","settings"],"type":"object"},"AccountAppointmentScheduling":{"properties":{"maximumBusinessDaysBeforeSchedule":{"description":"Maximum business days in advance an appointment may be scheduled; null or zero means no maximum.","example":30,"nullable":true,"readOnly":true,"type":"integer"},"minimumBusinessDaysUntilSchedule":{"description":"Minimum business days required before an appointment may be scheduled.","example":1,"nullable":true,"readOnly":true,"type":"integer"},"minimumHoursUntilSchedule":{"description":"Minimum hours required before an appointment may be scheduled.","example":4,"maximum":12,"minimum":1,"readOnly":true,"type":"integer"},"scheduleOnHolidays":{"description":"Whether appointments may be scheduled on holidays.","example":true,"readOnly":true,"type":"boolean"}},"required":["maximumBusinessDaysBeforeSchedule","minimumBusinessDaysUntilSchedule","minimumHoursUntilSchedule","scheduleOnHolidays"],"type":"object"},"AccountHoursOfOperation":{"properties":{"friday":{"items":{"$ref":"#/components/schemas/AccountHoursOfOperationMode"},"minItems":1,"type":"array"},"monday":{"items":{"$ref":"#/components/schemas/AccountHoursOfOperationMode"},"minItems":1,"type":"array"},"saturday":{"items":{"$ref":"#/components/schemas/AccountHoursOfOperationMode"},"minItems":1,"type":"array"},"sunday":{"items":{"$ref":"#/components/schemas/AccountHoursOfOperationMode"},"minItems":1,"type":"array"},"thursday":{"items":{"$ref":"#/components/schemas/AccountHoursOfOperationMode"},"minItems":1,"type":"array"},"tuesday":{"items":{"$ref":"#/components/schemas/AccountHoursOfOperationMode"},"minItems":1,"type":"array"},"wednesday":{"items":{"$ref":"#/components/schemas/AccountHoursOfOperationMode"},"minItems":1,"type":"array"}},"required":["friday","monday","saturday","sunday","thursday","tuesday","wednesday"],"type":"object"},"AccountHoursOfOperationMode":{"properties":{"mode":{"enum":["active","sleep"],"type":"string"},"time":{"enum":["12a","1a","2a","3a","4a","5a","6a","7a","8a","9a","10a","11a","12p","1p","2p","3p","4p","5p","6p","7p","8p","9p","10p","11p"],"type":"string"}},"required":["mode","time"],"type":"object"},"AccountInfo":{"properties":{"accountId":{"type":"string"},"accountName":{"type":"string"}},"required":["accountId","accountName"],"type":"object"},"AccountSettings":{"properties":{"allowMultiConversations":{"readOnly":true,"type":"boolean"},"appointmentScheduling":{"allOf":[{"$ref":"#/components/schemas/AccountAppointmentScheduling"}],"readOnly":true},"callingHoursOfOperation":{"allOf":[{"$ref":"#/components/schemas/AccountHoursOfOperation"}],"readOnly":true},"chatbotHoursOfOperation":{"allOf":[{"$ref":"#/components/schemas/AccountHoursOfOperation"}],"readOnly":true},"defaultChatbotName":{"readOnly":true,"type":"string"},"fauxAgentsInheritHoursOfOperation":{"readOnly":true,"type":"boolean"},"industries":{"items":{"enum":["real_estate","mortgage","software","solar","insurance","travel","automotive","support","home_services","financial_services","recruiting","other"],"type":"string"},"readOnly":true,"type":"array"},"leadTypes":{"items":{"enum":["buyer","seller","renter","rent_to_own","new_home_loan","home_refinance","auto_insurance","crop_insurance","home_insurance","life_insurance","long_term_disability_insurance","mortgage_insurance","pet_insurance","recruiting_insurance","renters_insurance","travel_insurance","umbrella_insurance","bathroom","deck","door","flooring","gutter_guard","gutters","patio","roofing","screened_porch_sunroom","siding","solar","windows","wealth_management","used_vehicle","new_vehicle","inbound_recruit","outbound_recruit"],"type":"string"},"readOnly":true,"type":"array"},"timeZone":{"readOnly":true,"type":"string"}},"required":["allowMultiConversations","appointmentScheduling","callingHoursOfOperation","chatbotHoursOfOperation","defaultChatbotName","fauxAgentsInheritHoursOfOperation","industries","leadTypes","timeZone"],"type":"object"},"AcculynxIntegration":{"properties":{"appointmentId":{"description":"Acculynx Appointment ID","example":"54321","nullable":true,"type":"string"},"contactId":{"description":"Acculynx Contact ID","example":"12345","type":"string"},"jobId":{"description":"Acculynx Job ID","example":"67890","type":"string"}},"required":["contactId","jobId"],"type":"object"},"AgentLegendIntegration":{"properties":{"prospectId":{"description":"Agent Legend Prospect ID","example":12345,"type":"integer"}},"required":["prospectId"],"type":"object"},"AssignAgent":{"properties":{"agentId":{"description":"The ID of the agent to assign in Structurely.","example":"650ba6ced07cb5552a2467b0","format":"ObjectId","nullable":true,"type":"string"},"email":{"description":"Email of the agent to assign.","example":"john.agent@example.com","nullable":true,"type":"string"},"name":{"description":"Full name of the agent to assign.","example":"John Agent","nullable":true,"type":"string"},"phone":{"description":"Phone number of the agent to assign (E.164 or number with area code).","example":"+13035551234","nullable":true,"type":"string"}},"type":"object"},"BonzoIntegration":{"properties":{"prospectId":{"description":"Bonzo Prospect ID","example":12345,"type":"integer"}},"required":["prospectId"],"type":"object"},"BoomTownIntegration":{"properties":{"contactId":{"description":"BoomTown Contact ID","example":"12345","type":"string"}},"required":["contactId"],"type":"object"},"BulkLeadEnrollmentRequest":{"properties":{"leads":{"description":"Lead payloads equivalent to CreateLead payload objects.","items":{"$ref":"#/components/schemas/CreateLead"},"type":"array"},"name":{"description":"Optional list name. Defaults to 'Bulk Enrollment <timestamp>' when empty.","example":"Q2 Imported Leads","nullable":true,"type":"string"},"script":{"description":"The script or usecase that will be used to communicate with this lead","example":"buyer","type":"string"}},"required":["leads","script"],"type":"object"},"BulkLeadEnrollmentResponse":{"properties":{"id":{"description":"The created LeadList ID.","format":"ObjectId","type":"string"},"name":{"description":"The created LeadList name.","type":"string"},"summary":{"allOf":[{"$ref":"#/components/schemas/BulkLeadEnrollmentSummary"}],"description":"Bulk enrollment list summary counters."}},"required":["id","name","summary"],"type":"object"},"BulkLeadEnrollmentSummary":{"properties":{"duplicateItems":{"description":"Lead items marked duplicate and skipped.","type":"integer"},"failedItems":{"description":"Lead items rejected as invalid payloads.","type":"integer"},"finishedItems":{"description":"Lead items already processed successfully.","type":"integer"},"remainingItems":{"description":"Lead items pending ingestion processing.","type":"integer"},"totalItems":{"description":"Total lead items received in this bulk request.","type":"integer"}},"required":["duplicateItems","failedItems","finishedItems","remainingItems","totalItems"],"type":"object"},"Call":{"properties":{"agentCallStatus":{"type":"string"},"analyzedAt":{"description":"Timestamp when the call ended.","nullable":true,"type":"number"},"callAiAgent":{"anyOf":[{"$ref":"#/components/schemas/CallAiAgent"},{"nullable":true,"type":"object"}],"description":"The AI agent used for the call."},"callId":{"description":"The ID of this call.","format":"ObjectId","type":"string"},"callMetadata":{"additionalProperties":{},"description":"Metadata associated with the call.","nullable":true,"type":"object"},"callType":{"description":"The type of call.","type":"string"},"customerCallStatus":{"type":"string"},"destinationNumber":{"description":"The phone number the call was made to.","nullable":true,"type":"string"},"disposition":{"description":"Current disposition of the call.","type":"string"},"duration":{"description":"Duration of the call in seconds.","nullable":true,"type":"number"},"externalLeadId":{"description":"Optional external ID for the lead.","nullable":true,"type":"string"},"finishedAt":{"description":"Timestamp when the call ended.","nullable":true,"type":"number"},"isOutboundCall":{"description":"Call direction.","type":"boolean"},"leadId":{"description":"The ID of the lead associated with this call.","format":"ObjectId","type":"string"},"notes":{"nullable":true,"type":"string"},"recordingUrl":{"description":"URL of the call recording.","nullable":true,"type":"string"},"slots":{"additionalProperties":{},"description":"Slot values extracted from the call.","nullable":true,"type":"object"},"sourceNumber":{"description":"The phone number the call was made from.","nullable":true,"type":"string"},"startedAt":{"description":"Timestamp when the call was initiated.","nullable":true,"type":"number"},"transcript":{"description":"Transcript of the call conversation.","items":{"$ref":"#/components/schemas/CallTranscript"},"nullable":true,"type":"array"},"updatedAt":{"description":"Timestamp when the call was last updated.","nullable":true,"type":"number"}},"required":["callId","callType","leadId"],"type":"object"},"CallAiAgent":{"properties":{"id":{"description":"ID of the Voice AI Agent.","format":"ObjectId","type":"string"},"name":{"description":"Name of the Voice AI Agent.","type":"string"}},"type":"object"},"CallAiAgentList":{"properties":{"agents":{"description":"A list of available AI Call Agents.","items":{"$ref":"#/components/schemas/CallAiAgent"},"type":"array"}},"required":["agents"],"type":"object"},"CallDispositionUpdate":{"properties":{"disposition":{"description":"Disposition to set for the call.","enum":["Answering Machine","Connected","Appointment Set","Live Transferred","Live Transfer Failed","Call Back Later","Did Not Leave Voicemail","Do Not Call","Do Not Contact","Left Voicemail","Not Interested","No Conversation","Reconnect Later","Wrong Number","Call Blocked, Detected as Spam","Door Visit","Agent Voicemail"],"example":"Connected","type":"string"}},"required":["disposition"],"type":"object"},"CallLead":{"properties":{"callAiAgentId":{"description":"The ID of the Call AI Agent to use for the call (if not specified will make a direct call).","nullable":true,"type":"string"},"properties":{"anyOf":[{"$ref":"#/components/schemas/Properties"},{"nullable":true,"type":"object"}],"description":"Properties that are known about the lead.","example":{"address":"12345 Deckawoo Dr, Denver, CO, 80132"}}},"type":"object"},"CallList":{"properties":{"cursor":{"description":"Pagination cursor for the next page.","nullable":true,"type":"string"},"items":{"description":"Paginated calls for incremental sync.","items":{"$ref":"#/components/schemas/Call"},"type":"array"},"next":{"description":"Fully-qualified URL for the next page.","nullable":true,"type":"string"}},"required":["items"],"type":"object"},"CallTranscript":{"properties":{"confidence":{"nullable":true,"type":"number"},"occurred_at":{"type":"number"},"speaker":{"type":"string"},"transcript":{"type":"string"}},"required":["occurred_at","speaker","transcript"],"type":"object"},"Channel":{"properties":{"address":{"description":"SMS source address.","example":"+13035555555","type":"string"},"campaignId":{"description":"Assigned Campaign ID, or null when no Campaign is assigned.","format":"ObjectId","nullable":true,"type":"string"},"channelType":{"description":"Channel type.","enum":["SMS"],"example":"SMS","type":"string"},"enabled":{"description":"Whether the channel is active.","example":true,"type":"boolean"},"id":{"description":"SMS channel ID.","example":"650ba6ced07cb5552a2467b0","format":"ObjectId","type":"string"},"voiceAgentId":{"description":"Assigned Voice AI Agent ID, or null when no Voice AI Agent is assigned.","format":"ObjectId","nullable":true,"type":"string"}},"required":["address","campaignId","channelType","enabled","id","voiceAgentId"],"type":"object"},"ChannelListResponse":{"properties":{"cursor":{"description":"Opaque cursor for the next page, or null when complete.","nullable":true,"type":"string"},"items":{"description":"Cursor-paginated SMS channels.","items":{"$ref":"#/components/schemas/Channel"},"type":"array"},"next":{"description":"Fully-qualified URL for the next page, or null when complete.","nullable":true,"type":"string"}},"required":["cursor","items","next"],"type":"object"},"CreateKnowledgeBase":{"properties":{"customAnswers":{"items":{"$ref":"#/components/schemas/KnowledgeBaseAnswer"},"type":"array"},"name":{"type":"string"}},"required":["name"],"type":"object"},"CreateLead":{"properties":{"assignAgent":{"anyOf":[{"$ref":"#/components/schemas/AssignAgent"},{"nullable":true,"type":"object"}],"description":"Optional agent assignment details for the lead","example":{"agentId":"650ba6ced07cb5552a2467b0"}},"customProperties":{"additionalProperties":{"oneOf":[{"type":"number"},{"type":"string"},{"format":"date-time","type":"string"},{"type":"boolean"},{"items":{"type":"number"},"type":"array"},{"items":{"type":"string"},"type":"array"},{"items":{"format":"date-time","type":"string"},"type":"array"},{"items":{"type":"boolean"},"type":"array"}]},"description":"Optional top-level custom properties for this lead, represented as a dictionary with string keys. Value types: number|string|datetime|boolean|number[]|string[]|datetime[]|boolean[]. During normalization, datetimes are converted to UTC ISO-8601 strings and entries with blank keys, unsupported value types, or mixed-type arrays are dropped.","example":{"birthday":"2026-01-01T00:00:00Z","marketingOptIn":true,"preferredContactDays":["monday","friday"]},"nullable":true,"type":"object"},"email":{"example":"jane.doe@example.com","type":"string"},"externalLeadId":{"description":"The ID for this lead in your CRM or database","example":"b6726f23-1440-4206-962f-8c429f61714c","nullable":true,"type":"string"},"integrations":{"anyOf":[{"$ref":"#/components/schemas/IntegrationMetadata"},{"nullable":true,"type":"object"}],"description":"Optional integration-specific metadata.","example":{"salesforce":{"sfObjectId":"001XXXXXXXXXXXXXXX"}}},"name":{"description":"Full name for this lead","example":"Jane Doe","type":"string"},"phone":{"description":"Lead's phone number, E.164 or number with area code","example":"(303) 555-5555","type":"string"},"properties":{"allOf":[{"$ref":"#/components/schemas/Properties"}],"description":"Properties that are known about the lead, may be used in responses, may be confirmed or skipped in scripting.","example":{}},"source":{"default":"Unknown","description":"The vendor that sourced this lead (or website)","example":"www.shiny-leads-vendor.com","type":"string"}},"type":"object"},"CreateUser":{"properties":{"email":{"format":"email","type":"string"},"isFauxUser":{"default":false,"type":"boolean"},"name":{"type":"string"},"phone":{"type":"string"},"teamId":{"format":"ObjectId","nullable":true,"type":"string"}},"required":["email","name","phone"],"type":"object"},"CrossLaunchRequest":{"properties":{"targetUri":{"nullable":true,"type":"string"}},"type":"object"},"CrossLaunchResponse":{"properties":{"url":{"readOnly":true,"type":"string"}},"required":["url"],"type":"object"},"CustomProperty":{"properties":{"dataOnly":{"description":"Whether this property is data-only. Data-only properties are not extracted from conversations; they can still be injected into LLM context when usedForLlmContext is enabled.","example":false,"type":"boolean"},"dataType":{"description":"Semantic custom property data type.","enum":["DATE","DATETIME","ANNIVERSARY_DATE","TIME","STRING","NUMBER","BOOLEAN","ARRAY","ENUM"],"example":"ENUM","type":"string"},"description":{"description":"Custom property description, when set.","example":"How the lead plans to finance the purchase.","nullable":true,"type":"string"},"id":{"description":"Custom property definition ID.","example":"650ba6ced07cb5552a2467b0","format":"ObjectId","type":"string"},"name":{"description":"Sanitized custom property camelCase identifier.","example":"financingStatus","type":"string"},"required":{"description":"Whether this property is required.","example":false,"type":"boolean"},"schema":{"additionalProperties":{},"description":"JSON Schema Draft-07 fragment for the custom property value. Supported fragments are STRING {'type': 'string'}, NUMBER {'type': 'number'}, BOOLEAN {'type': 'boolean'}, ARRAY {'type': 'array', 'items': {'type': 'string'}} with items.type of string, number, or boolean, and ENUM {'type': 'string', 'enum': [...], 'x-enum-descriptions': [...]}. DATE, DATETIME, ANNIVERSARY_DATE, and TIME use a string schema with the semantic dataType; callers do not need to provide format. schema.required is not part of the public Direct API contract and is stripped by custom property validation; use the top-level required field instead.","example":{"enum":["cash","financed"],"type":"string","x-enum-descriptions":["Cash buyer","Needs financing"]},"oneOf":[{"description":"STRING and date/time semantic value schema. Use with dataType STRING, DATE, DATETIME, ANNIVERSARY_DATE, or TIME. DATE, DATETIME, ANNIVERSARY_DATE, and TIME use this same string schema plus semantic dataType; format is optional.","example":{"type":"string"},"not":{"required":["enum"]},"properties":{"type":{"enum":["string"],"type":"string"}},"required":["type"],"type":"object"},{"description":"NUMBER value schema. Use with dataType NUMBER.","example":{"type":"number"},"properties":{"type":{"enum":["number"],"type":"string"}},"required":["type"],"type":"object"},{"description":"BOOLEAN value schema. Use with dataType BOOLEAN.","example":{"type":"boolean"},"properties":{"type":{"enum":["boolean"],"type":"string"}},"required":["type"],"type":"object"},{"description":"ARRAY value schema. items.type supports string, number, or boolean.","example":{"items":{"type":"string"},"type":"array"},"properties":{"items":{"properties":{"type":{"enum":["string","number","boolean"],"type":"string"}},"required":["type"],"type":"object"},"type":{"enum":["array"],"type":"string"}},"required":["type","items"],"type":"object"},{"description":"ENUM value schema. enum options stay in schema.enum; optional labels stay in x-enum-descriptions.","example":{"enum":["cash","financed"],"type":"string","x-enum-descriptions":["Cash buyer","Needs financing"]},"properties":{"enum":{"items":{"type":"string"},"type":"array"},"type":{"enum":["string"],"type":"string"},"x-enum-descriptions":{"items":{"type":"string"},"type":"array"}},"required":["type","enum"],"type":"object"}],"type":"object"},"usedForLlmContext":{"description":"This setting controls whether a custom property is included in automatic LLM lead_metadata prompt context. It does not change extraction behavior, which remains controlled by dataOnly.","example":false,"type":"boolean"}},"required":["dataOnly","dataType","id","name","required","schema","usedForLlmContext"],"type":"object"},"CustomPropertyCreateRequest":{"properties":{"dataOnly":{"default":false,"description":"Whether the property is data-only. Data-only properties are not extracted from conversations; they can still be injected into LLM context when usedForLlmContext is enabled.","example":false,"nullable":true,"type":"boolean"},"dataType":{"default":"STRING","description":"Semantic custom property data type. DATE, DATETIME, ANNIVERSARY_DATE, and TIME use a string schema plus this semantic value.","enum":["DATE","DATETIME","ANNIVERSARY_DATE","TIME","STRING","NUMBER","BOOLEAN","ARRAY","ENUM"],"example":"ENUM","type":"string"},"description":{"description":"Optional human-readable description for this custom property.","example":"How the lead plans to finance the purchase.","nullable":true,"type":"string"},"name":{"description":"Human-readable custom property name. The stored name is sanitized to the custom property camelCase identifier.","example":"Financing Status","type":"string"},"required":{"default":false,"description":"Whether this property should be considered required. Use this top-level field instead of schema.required.","example":false,"nullable":true,"type":"boolean"},"schema":{"additionalProperties":{},"description":"JSON Schema Draft-07 fragment for the custom property value. Supported fragments are STRING {'type': 'string'}, NUMBER {'type': 'number'}, BOOLEAN {'type': 'boolean'}, ARRAY {'type': 'array', 'items': {'type': 'string'}} with items.type of string, number, or boolean, and ENUM {'type': 'string', 'enum': [...], 'x-enum-descriptions': [...]}. DATE, DATETIME, ANNIVERSARY_DATE, and TIME use a string schema with the semantic dataType; callers do not need to provide format. schema.required is not part of the public Direct API contract and is stripped by custom property validation; use the top-level required field instead.","example":{"enum":["cash","financed"],"type":"string","x-enum-descriptions":["Cash buyer","Needs financing"]},"oneOf":[{"description":"STRING and date/time semantic value schema. Use with dataType STRING, DATE, DATETIME, ANNIVERSARY_DATE, or TIME. DATE, DATETIME, ANNIVERSARY_DATE, and TIME use this same string schema plus semantic dataType; format is optional.","example":{"type":"string"},"not":{"required":["enum"]},"properties":{"type":{"enum":["string"],"type":"string"}},"required":["type"],"type":"object"},{"description":"NUMBER value schema. Use with dataType NUMBER.","example":{"type":"number"},"properties":{"type":{"enum":["number"],"type":"string"}},"required":["type"],"type":"object"},{"description":"BOOLEAN value schema. Use with dataType BOOLEAN.","example":{"type":"boolean"},"properties":{"type":{"enum":["boolean"],"type":"string"}},"required":["type"],"type":"object"},{"description":"ARRAY value schema. items.type supports string, number, or boolean.","example":{"items":{"type":"string"},"type":"array"},"properties":{"items":{"properties":{"type":{"enum":["string","number","boolean"],"type":"string"}},"required":["type"],"type":"object"},"type":{"enum":["array"],"type":"string"}},"required":["type","items"],"type":"object"},{"description":"ENUM value schema. enum options stay in schema.enum; optional labels stay in x-enum-descriptions.","example":{"enum":["cash","financed"],"type":"string","x-enum-descriptions":["Cash buyer","Needs financing"]},"properties":{"enum":{"items":{"type":"string"},"type":"array"},"type":{"enum":["string"],"type":"string"},"x-enum-descriptions":{"items":{"type":"string"},"type":"array"}},"required":["type","enum"],"type":"object"}],"type":"object"},"usedForLlmContext":{"description":"This setting controls whether a custom property is included in automatic LLM lead_metadata prompt context. It does not change extraction behavior, which remains controlled by dataOnly. When omitted, this value is derived from dataOnly after create defaults are applied.","example":false,"nullable":true,"type":"boolean"}},"required":["name","schema"],"type":"object"},"CustomPropertyDeleteResponse":{"properties":{"ok":{"description":"True when the custom property definition was deleted.","example":true,"type":"boolean"}},"required":["ok"],"type":"object"},"CustomPropertyListResponse":{"properties":{"customProperties":{"description":"Custom property definitions for the authenticated account.","items":{"$ref":"#/components/schemas/CustomProperty"},"type":"array"}},"required":["customProperties"],"type":"object"},"CustomPropertyPatchRequest":{"properties":{"dataOnly":{"description":"Updated data-only flag. Data-only properties are not extracted from conversations; they can still be injected into LLM context when usedForLlmContext is enabled. Explicit null leaves the current value unchanged.","example":false,"nullable":true,"type":"boolean"},"dataType":{"description":"Updated semantic custom property data type. Explicit null leaves the current value unchanged.","enum":["DATE","DATETIME","ANNIVERSARY_DATE","TIME","STRING","NUMBER","BOOLEAN","ARRAY","ENUM"],"example":"NUMBER","type":"string"},"description":{"description":"Updated description. Explicit null leaves the current value unchanged.","example":"Updated financing details.","nullable":true,"type":"string"},"name":{"description":"New custom property name. When omitted, the current sanitized name is preserved.","example":"Updated Financing Status","type":"string"},"required":{"description":"Updated required flag. Explicit null leaves the current value unchanged.","example":true,"nullable":true,"type":"boolean"},"schema":{"additionalProperties":{},"description":"JSON Schema Draft-07 fragment for the custom property value. Supported fragments are STRING {'type': 'string'}, NUMBER {'type': 'number'}, BOOLEAN {'type': 'boolean'}, ARRAY {'type': 'array', 'items': {'type': 'string'}} with items.type of string, number, or boolean, and ENUM {'type': 'string', 'enum': [...], 'x-enum-descriptions': [...]}. DATE, DATETIME, ANNIVERSARY_DATE, and TIME use a string schema with the semantic dataType; callers do not need to provide format. schema.required is not part of the public Direct API contract and is stripped by custom property validation; use the top-level required field instead.","example":{"type":"number"},"oneOf":[{"description":"STRING and date/time semantic value schema. Use with dataType STRING, DATE, DATETIME, ANNIVERSARY_DATE, or TIME. DATE, DATETIME, ANNIVERSARY_DATE, and TIME use this same string schema plus semantic dataType; format is optional.","example":{"type":"string"},"not":{"required":["enum"]},"properties":{"type":{"enum":["string"],"type":"string"}},"required":["type"],"type":"object"},{"description":"NUMBER value schema. Use with dataType NUMBER.","example":{"type":"number"},"properties":{"type":{"enum":["number"],"type":"string"}},"required":["type"],"type":"object"},{"description":"BOOLEAN value schema. Use with dataType BOOLEAN.","example":{"type":"boolean"},"properties":{"type":{"enum":["boolean"],"type":"string"}},"required":["type"],"type":"object"},{"description":"ARRAY value schema. items.type supports string, number, or boolean.","example":{"items":{"type":"string"},"type":"array"},"properties":{"items":{"properties":{"type":{"enum":["string","number","boolean"],"type":"string"}},"required":["type"],"type":"object"},"type":{"enum":["array"],"type":"string"}},"required":["type","items"],"type":"object"},{"description":"ENUM value schema. enum options stay in schema.enum; optional labels stay in x-enum-descriptions.","example":{"enum":["cash","financed"],"type":"string","x-enum-descriptions":["Cash buyer","Needs financing"]},"properties":{"enum":{"items":{"type":"string"},"type":"array"},"type":{"enum":["string"],"type":"string"},"x-enum-descriptions":{"items":{"type":"string"},"type":"array"}},"required":["type","enum"],"type":"object"}],"type":"object"},"usedForLlmContext":{"description":"This setting controls whether a custom property is included in automatic LLM lead_metadata prompt context. It does not change extraction behavior, which remains controlled by dataOnly. Omitted or null values preserve the existing effective setting, even when dataOnly changes in the same request.","example":false,"nullable":true,"type":"boolean"}},"type":"object"},"CustomReport":{"properties":{"category":{"description":"Custom report category (DirectPlatformCustomReport.name).","example":"weekly","type":"string"},"date":{"description":"S3 LastModified timestamp in UTC ISO-8601.","format":"date-time","type":"string"},"downloadReport":{"description":"Direct API URL to download this custom report object.","example":"https://api.structurely.com/api/direct/v2/custom-reports/weekly/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","type":"string"},"id":{"description":"SHA-256 hex digest of the report file name.","example":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","type":"string"},"name":{"description":"S3 object file name relative to the report prefix.","example":"weekly-2026-08-21.csv","type":"string"}},"required":["category","date","downloadReport","id","name"],"type":"object"},"CustomReportDownloadResponse":{"properties":{"downloadReport":{"description":"1-hour presigned S3 GET URL for the custom report object.","type":"string"}},"required":["downloadReport"],"type":"object"},"CustomReportListResponse":{"properties":{"items":{"description":"Custom report objects for the authenticated account.","items":{"$ref":"#/components/schemas/CustomReport"},"type":"array"}},"required":["items"],"type":"object"},"FollowUpBossIntegration":{"properties":{"personId":{"description":"Follow Up Boss Person ID","example":"12345","type":"string"}},"required":["personId"],"type":"object"},"GoHighLevelIntegration":{"properties":{"contactId":{"description":"GoHighLevel Contact ID","example":"12345","type":"string"},"locationId":{"description":"GoHighLevel Location ID","example":"67890","nullable":true,"type":"string"}},"required":["contactId"],"type":"object"},"HubSpotIntegration":{"properties":{"contactId":{"description":"HubSpot Contact ID","example":"12345","type":"string"}},"required":["contactId"],"type":"object"},"IntegrationMetadata":{"properties":{"acculynx":{"anyOf":[{"$ref":"#/components/schemas/AcculynxIntegration"},{"nullable":true,"type":"object"}],"description":"Acculynx integration metadata"},"agentLegend":{"anyOf":[{"$ref":"#/components/schemas/AgentLegendIntegration"},{"nullable":true,"type":"object"}],"description":"Agent Legend integration metadata"},"bonzo":{"anyOf":[{"$ref":"#/components/schemas/BonzoIntegration"},{"nullable":true,"type":"object"}],"description":"Bonzo integration metadata"},"boomtown":{"anyOf":[{"$ref":"#/components/schemas/BoomTownIntegration"},{"nullable":true,"type":"object"}],"description":"BoomTown integration metadata"},"followupboss":{"anyOf":[{"$ref":"#/components/schemas/FollowUpBossIntegration"},{"nullable":true,"type":"object"}],"description":"Follow Up Boss integration metadata"},"gohighlevel":{"anyOf":[{"$ref":"#/components/schemas/GoHighLevelIntegration"},{"nullable":true,"type":"object"}],"description":"GoHighLevel integration metadata"},"hubspot":{"anyOf":[{"$ref":"#/components/schemas/HubSpotIntegration"},{"nullable":true,"type":"object"}],"description":"HubSpot integration metadata"},"leadMailbox":{"anyOf":[{"$ref":"#/components/schemas/LeadMailboxIntegration"},{"nullable":true,"type":"object"}],"description":"Lead Mailbox integration metadata"},"leadconnectorhq":{"anyOf":[{"$ref":"#/components/schemas/LeadConnectorHqIntegration"},{"nullable":true,"type":"object"}],"description":"LeadConnectorHq integration metadata"},"leadperfection":{"anyOf":[{"$ref":"#/components/schemas/LeadPerfectionIntegration"},{"nullable":true,"type":"object"}],"description":"LeadPerfection integration metadata"},"marketsharp":{"anyOf":[{"$ref":"#/components/schemas/MarketSharpV2Integration"},{"nullable":true,"type":"object"}],"description":"MarketSharp integration metadata"},"salesforce":{"anyOf":[{"$ref":"#/components/schemas/SalesforceIntegration"},{"nullable":true,"type":"object"}],"description":"Salesforce integration metadata"},"sierra":{"anyOf":[{"$ref":"#/components/schemas/SierraIntegration"},{"nullable":true,"type":"object"}],"description":"Sierra integration metadata"},"velocify":{"anyOf":[{"$ref":"#/components/schemas/VelocifyIntegration"},{"nullable":true,"type":"object"}],"description":"Velocify integration metadata"}},"type":"object"},"InternalServerError":{"properties":{"message":{"description":"A message describing the error","example":"Internal server error","type":"string"},"statusCode":{"example":500,"type":"number"}},"type":"object"},"InvalidRequest":{"properties":{"message":{"description":"A message describing the error","example":"The parameter leadId must be provided","type":"string"},"statusCode":{"example":400,"type":"number"}},"type":"object"},"KnowledgeBase":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customAnswers":{"items":{"$ref":"#/components/schemas/KnowledgeBaseAnswer"},"type":"array"},"id":{"format":"ObjectId","type":"string"},"isEnabled":{"type":"boolean"},"name":{"type":"string"},"size":{"type":"integer"},"type":{"type":"string"},"updatedAt":{"format":"date-time","nullable":true,"type":"string"}},"required":["createdAt","customAnswers","id","isEnabled","name","size","type"],"type":"object"},"KnowledgeBaseAnswer":{"properties":{"answer":{"type":"string"},"id":{"format":"ObjectId","nullable":true,"type":"string"},"question":{"type":"string"}},"required":["answer","question"],"type":"object"},"KnowledgeBaseListResponse":{"properties":{"knowledgeBases":{"items":{"$ref":"#/components/schemas/KnowledgeBase"},"type":"array"}},"required":["knowledgeBases"],"type":"object"},"Lead":{"properties":{"customProperties":{"additionalProperties":{"oneOf":[{"type":"number"},{"type":"string"},{"format":"date-time","type":"string"},{"type":"boolean"},{"items":{"type":"number"},"type":"array"},{"items":{"type":"string"},"type":"array"},{"items":{"format":"date-time","type":"string"},"type":"array"},{"items":{"type":"boolean"},"type":"array"}]},"description":"Top-level custom properties for this lead, represented as a dictionary with string keys. Value types: number|string|datetime|boolean|number[]|string[]|datetime[]|boolean[]. This field is always returned as an object and is empty ({}) when no custom properties exist. Unsupported nested values and mixed-type arrays are excluded from responses.","example":{"birthday":"2026-01-01T00:00:00Z","marketingOptIn":true,"preferredContactDays":["monday","friday"]},"type":"object"},"email":{"example":"jane.doe@example.com","type":"string"},"externalLeadId":{"description":"Optionally provide the ID for this lead in your CRM or database","example":"b6726f23-1440-4206-962f-8c429f61714c","nullable":true,"type":"string"},"id":{"description":"The ID for this lead in Structurely","example":"650ba6ced07cb5552a2467b0","format":"ObjectId","type":"string"},"muted":{"example":false,"type":"boolean"},"name":{"example":"Jane Doe","type":"string"},"phone":{"description":"E.164 formatted number","example":"+13035555555","type":"string"},"properties":{"allOf":[{"$ref":"#/components/schemas/Properties"}],"description":"Properties that are known about the lead.","example":{"address":"12345 Deckawoo Dr, Denver, CO, 80132"}},"stages":{"example":["needs_followup"],"items":{"type":"string"},"type":"array"},"voiceMuted":{"description":"Whether Voice AI is muted for this lead.","example":false,"type":"boolean"}},"required":["customProperties","voiceMuted"],"type":"object"},"LeadConnectorHqIntegration":{"properties":{"contactId":{"description":"LeadConnectorHq Contact ID","example":"12345","type":"string"},"locationId":{"description":"LeadConnectorHq Location ID","example":"67890","nullable":true,"type":"string"}},"required":["contactId"],"type":"object"},"LeadListResponse":{"properties":{"cursor":{"description":"Pagination cursor for the next page.","nullable":true,"type":"string"},"items":{"description":"Paginated leads for incremental sync.","items":{"$ref":"#/components/schemas/Lead"},"type":"array"},"next":{"description":"Fully-qualified URL for the next page.","nullable":true,"type":"string"}},"required":["items"],"type":"object"},"LeadMailboxIntegration":{"properties":{"leadId":{"description":"Lead Mailbox Lead ID","example":"12345","type":"string"}},"required":["leadId"],"type":"object"},"LeadPerfectionIntegration":{"properties":{"appointmentId":{"description":"LeadPerfection Appointment ID","example":"54321","nullable":true,"type":"string"},"leadId":{"description":"LeadPerfection Lead ID","example":"67890","type":"string"},"prospectId":{"description":"LeadPerfection Prospect ID","example":"12345","type":"string"}},"required":["leadId","prospectId"],"type":"object"},"MarketSharpV2Integration":{"properties":{"appointmentId":{"description":"MarketSharp Appointment ID","example":"54321","nullable":true,"type":"string"},"contactId":{"description":"MarketSharp Contact ID","example":"12345","type":"string"},"inquiryId":{"description":"MarketSharp Inquiry ID","example":"67890","type":"string"}},"required":["contactId","inquiryId"],"type":"object"},"Message":{"properties":{"channel":{"description":"The channel this message was sent over","example":"sms","readOnly":true},"deliveryStatus":{"description":"Delivery status for outbound messages (null for inbound)","example":"Delivered","nullable":true,"readOnly":true},"id":{"description":"The ID for this message","format":"ObjectId","type":"string"},"isOutbound":{"description":"Whether this message was outbound","example":true,"type":"boolean"},"receivedAt":{"description":"ISO-8601 UTC timestamp this message was received","readOnly":true},"sender":{"description":"Public sender of the message: Lead, User, AI, or null","example":"Lead","nullable":true,"readOnly":true},"subject":{"description":"Message subject for email channels","example":"Checking in","nullable":true,"type":"string"},"text":{"description":"Message body text","example":"Hello from Structurely","nullable":true,"type":"string"}},"required":["channel","id","isOutbound","receivedAt","sender"],"type":"object"},"MessageList":{"properties":{"messages":{"description":"A list of lead messages","items":{"$ref":"#/components/schemas/Message"},"type":"array"}},"required":["messages"],"type":"object"},"MuteChannelsRequest":{"properties":{"channels":{"description":"Channels to mute or unmute. Omit to apply both Text and Voice. Allowed values: Text, Voice.","example":["Text","Voice"],"items":{"enum":["Text","Voice"],"type":"string"},"minItems":1,"type":"array"}},"type":"object"},"NotAuthorized":{"properties":{"message":{"description":"A message describing the error","example":"Access Token is not authorized","type":"string"},"statusCode":{"example":401,"type":"number"}},"type":"object"},"NotFound":{"properties":{"message":{"description":"A message describing the error","example":"Lead not found","type":"string"},"statusCode":{"example":404,"type":"number"}},"type":"object"},"PatchAccount":{"properties":{"name":{"type":"string"},"phone":{"nullable":true,"type":"string"},"settings":{"$ref":"#/components/schemas/PatchAccountSettings"}},"type":"object"},"PatchAccountAppointmentScheduling":{"properties":{"maximumBusinessDaysBeforeSchedule":{"description":"Maximum business days in advance an appointment may be scheduled; null or zero means no maximum.","example":30,"minimum":0,"nullable":true,"type":"integer"},"minimumBusinessDaysUntilSchedule":{"description":"Minimum business days required before an appointment may be scheduled.","example":1,"minimum":0,"nullable":true,"type":"integer"},"minimumHoursUntilSchedule":{"description":"Minimum hours required before an appointment may be scheduled.","example":4,"maximum":12,"minimum":1,"type":"integer"},"scheduleOnHolidays":{"description":"Whether appointments may be scheduled on holidays.","example":true,"type":"boolean"}},"type":"object"},"PatchAccountSettings":{"properties":{"allowMultiConversations":{"type":"boolean"},"appointmentScheduling":{"$ref":"#/components/schemas/PatchAccountAppointmentScheduling"},"callingHoursOfOperation":{"$ref":"#/components/schemas/AccountHoursOfOperation"},"chatbotHoursOfOperation":{"$ref":"#/components/schemas/AccountHoursOfOperation"},"defaultChatbotName":{"type":"string"},"fauxAgentsInheritHoursOfOperation":{"type":"boolean"},"industries":{"items":{"enum":["real_estate","mortgage","software","solar","insurance","travel","automotive","support","home_services","financial_services","recruiting","other"],"type":"string"},"type":"array"},"leadTypes":{"items":{"enum":["buyer","seller","renter","rent_to_own","new_home_loan","home_refinance","auto_insurance","crop_insurance","home_insurance","life_insurance","long_term_disability_insurance","mortgage_insurance","pet_insurance","recruiting_insurance","renters_insurance","travel_insurance","umbrella_insurance","bathroom","deck","door","flooring","gutter_guard","gutters","patio","roofing","screened_porch_sunroom","siding","solar","windows","wealth_management","used_vehicle","new_vehicle","inbound_recruit","outbound_recruit"],"type":"string"},"type":"array"},"timeZone":{"enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Canada/Atlantic","Canada/Central","Canada/Eastern","Canada/Mountain","Canada/Newfoundland","Canada/Pacific","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zurich","GMT","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis","US/Alaska","US/Arizona","US/Central","US/Eastern","US/Hawaii","US/Mountain","US/Pacific","UTC"],"type":"string"}},"type":"object"},"PatchAcculynxIntegration":{"properties":{"appointmentId":{"description":"Acculynx Appointment ID","example":"54321","nullable":true,"type":"string"},"contactId":{"description":"Acculynx Contact ID","example":"12345","nullable":true,"type":"string"},"jobId":{"description":"Acculynx Job ID","example":"67890","nullable":true,"type":"string"}},"type":"object"},"PatchAgentLegendIntegration":{"properties":{"prospectId":{"description":"Agent Legend Prospect ID","example":12345,"nullable":true,"type":"integer"}},"type":"object"},"PatchBonzoIntegration":{"properties":{"prospectId":{"description":"Bonzo Prospect ID","example":12345,"nullable":true,"oneOf":[{"type":"integer"},{"type":"string"}]}},"type":"object"},"PatchBoomTownIntegration":{"properties":{"contactId":{"description":"BoomTown Contact ID","example":"12345","nullable":true,"type":"string"}},"type":"object"},"PatchChannel":{"properties":{"campaignId":{"description":"Campaign ID to assign, or null to clear the Campaign assignment.","format":"ObjectId","nullable":true,"type":"string"},"voiceAgentId":{"description":"Voice AI Agent ID to assign, or null to clear the Voice AI Agent assignment.","format":"ObjectId","nullable":true,"type":"string"}},"type":"object"},"PatchFollowUpBossIntegration":{"properties":{"personId":{"description":"Follow Up Boss Person ID","example":"12345","nullable":true,"type":"string"}},"type":"object"},"PatchGoHighLevelIntegration":{"properties":{"contactId":{"description":"GoHighLevel Contact ID","example":"12345","nullable":true,"type":"string"},"locationId":{"description":"GoHighLevel Location ID","example":"67890","nullable":true,"type":"string"}},"type":"object"},"PatchHubSpotIntegration":{"properties":{"contactId":{"description":"HubSpot Contact ID","example":"12345","nullable":true,"type":"string"}},"type":"object"},"PatchIntegrationMetadata":{"properties":{"acculynx":{"anyOf":[{"$ref":"#/components/schemas/PatchAcculynxIntegration"},{"nullable":true,"type":"object"}],"description":"Acculynx integration metadata updates"},"agent_legend":{"anyOf":[{"$ref":"#/components/schemas/PatchAgentLegendIntegration"},{"nullable":true,"type":"object"}],"description":"Agent Legend integration metadata updates"},"bonzo":{"anyOf":[{"$ref":"#/components/schemas/PatchBonzoIntegration"},{"nullable":true,"type":"object"}],"description":"Bonzo integration metadata updates"},"boomtown":{"anyOf":[{"$ref":"#/components/schemas/PatchBoomTownIntegration"},{"nullable":true,"type":"object"}],"description":"BoomTown integration metadata updates"},"followupboss":{"anyOf":[{"$ref":"#/components/schemas/PatchFollowUpBossIntegration"},{"nullable":true,"type":"object"}],"description":"Follow Up Boss integration metadata updates"},"gohighlevel":{"anyOf":[{"$ref":"#/components/schemas/PatchGoHighLevelIntegration"},{"nullable":true,"type":"object"}],"description":"GoHighLevel integration metadata updates"},"hubspot":{"anyOf":[{"$ref":"#/components/schemas/PatchHubSpotIntegration"},{"nullable":true,"type":"object"}],"description":"HubSpot integration metadata updates"},"leadMailbox":{"anyOf":[{"$ref":"#/components/schemas/PatchLeadMailboxIntegration"},{"nullable":true,"type":"object"}],"description":"Lead Mailbox integration metadata updates"},"leadconnectorhq":{"anyOf":[{"$ref":"#/components/schemas/PatchLeadConnectorHqIntegration"},{"nullable":true,"type":"object"}],"description":"LeadConnectorHq integration metadata updates"},"leadperfection":{"anyOf":[{"$ref":"#/components/schemas/PatchLeadPerfectionIntegration"},{"nullable":true,"type":"object"}],"description":"LeadPerfection integration metadata updates"},"marketsharp":{"anyOf":[{"$ref":"#/components/schemas/PatchMarketSharpV2Integration"},{"nullable":true,"type":"object"}],"description":"MarketSharp integration metadata updates"},"salesforce":{"anyOf":[{"$ref":"#/components/schemas/PatchSalesforceIntegration"},{"nullable":true,"type":"object"}],"description":"Salesforce integration metadata updates"},"sierra":{"anyOf":[{"$ref":"#/components/schemas/PatchSierraIntegration"},{"nullable":true,"type":"object"}],"description":"Sierra integration metadata updates"},"velocify":{"anyOf":[{"$ref":"#/components/schemas/PatchVelocifyIntegration"},{"nullable":true,"type":"object"}],"description":"Velocify integration metadata updates"}},"type":"object"},"PatchKnowledgeBase":{"properties":{"customAnswers":{"items":{"$ref":"#/components/schemas/KnowledgeBaseAnswer"},"type":"array"},"name":{"type":"string"}},"type":"object"},"PatchLead":{"properties":{"customProperties":{"additionalProperties":{"oneOf":[{"type":"number"},{"type":"string"},{"format":"date-time","type":"string"},{"type":"boolean"},{"items":{"type":"number"},"type":"array"},{"items":{"type":"string"},"type":"array"},{"items":{"format":"date-time","type":"string"},"type":"array"},{"items":{"type":"boolean"},"type":"array"}]},"description":"Optional top-level custom properties for this lead, represented as a dictionary with string keys. Value types: number|string|datetime|boolean|number[]|string[]|datetime[]|boolean[]. Entries explicitly set to null clear those custom properties. When both properties.customProperties and customProperties are provided, top-level customProperties takes precedence. Keys with unsupported values or mixed-type arrays are dropped during normalization.","example":{"birthday":"2026-01-01T00:00:00Z","marketingOptIn":true,"preferredContactDays":["monday","friday"]},"nullable":true,"type":"object"},"externalLeadId":{"description":"Updated external lead identifier","example":"b6726f23-1440-4206-962f-8c429f61714c","nullable":true,"type":"string"},"integrations":{"anyOf":[{"$ref":"#/components/schemas/PatchIntegrationMetadata"},{"nullable":true,"type":"object"}],"description":"Optional integration-specific metadata updates. Omitted integration sources are unchanged. A source set to null clears that source.","example":{"salesforce":{"sfObjectId":"001XXXXXXXXXXXXXXX"}}},"name":{"description":"Updated lead name","example":"Jane Doe","nullable":true,"type":"string"},"properties":{"anyOf":[{"$ref":"#/components/schemas/Properties"},{"nullable":true,"type":"object"}],"description":"Properties to update for an enrolled lead. Omitted keys are unchanged. Keys explicitly set to null are cleared.","example":{"priceMin":250000,"timeframe":"soon"}}},"type":"object"},"PatchLeadConnectorHqIntegration":{"properties":{"contactId":{"description":"LeadConnectorHq Contact ID","example":"12345","nullable":true,"type":"string"},"locationId":{"description":"LeadConnectorHq Location ID","example":"67890","nullable":true,"type":"string"}},"type":"object"},"PatchLeadMailboxIntegration":{"properties":{"leadId":{"description":"Lead Mailbox Lead ID","example":"12345","nullable":true,"type":"string"}},"type":"object"},"PatchLeadPerfectionIntegration":{"properties":{"appointmentId":{"description":"LeadPerfection Appointment ID","example":"54321","nullable":true,"type":"string"},"leadId":{"description":"LeadPerfection Lead ID","example":"67890","nullable":true,"type":"string"},"prospectId":{"description":"LeadPerfection Prospect ID","example":"12345","nullable":true,"type":"string"}},"type":"object"},"PatchMarketSharpV2Integration":{"properties":{"appointmentId":{"description":"MarketSharp Appointment ID","example":"54321","nullable":true,"type":"string"},"contactId":{"description":"MarketSharp Contact ID","example":"12345","nullable":true,"type":"string"},"inquiryId":{"description":"MarketSharp Inquiry ID","example":"67890","nullable":true,"type":"string"}},"type":"object"},"PatchSalesforceIntegration":{"properties":{"contactObjectId":{"description":"Salesforce Contact Object ID","example":"003XXXXXXXXXXXXXXX","nullable":true,"type":"string"},"leadObjectId":{"description":"Salesforce Lead Object ID","example":"00QXXXXXXXXXXXXXXX","nullable":true,"type":"string"},"opportunityObjectId":{"description":"Salesforce Opportunity Object ID","example":"006XXXXXXXXXXXXXXX","nullable":true,"type":"string"},"ownerObjectId":{"description":"Salesforce Owner Object ID","example":"005XXXXXXXXXXXXXXX","nullable":true,"type":"string"},"sfObjectId":{"description":"Salesforce Object ID for the Contact, Lead, or Opportunity this lead is tied to","example":"001XXXXXXXXXXXXXXX","nullable":true,"type":"string"}},"type":"object"},"PatchSierraIntegration":{"properties":{"leadId":{"description":"Sierra Lead ID","example":"12345","nullable":true,"type":"string"}},"type":"object"},"PatchUser":{"properties":{"name":{"type":"string"},"phone":{"nullable":true,"type":"string"},"settings":{"$ref":"#/components/schemas/PatchUserSettings"}},"type":"object"},"PatchUserAppointmentScheduling":{"properties":{"appointmentDuration":{"description":"FAUX appointment duration in whole minutes, honored exactly.","maximum":180,"minimum":10,"type":"integer"},"isActive":{"description":"Whether FAUX appointment scheduling is active.","type":"boolean"},"weeklyAvailability":{"allOf":[{"$ref":"#/components/schemas/PatchUserAppointmentSchedulingWeeklyAvailability"}],"description":"One or more weekday replacements. Omitted weekdays are preserved.","minProperties":1}},"type":"object"},"PatchUserAppointmentSchedulingWeeklyAvailability":{"properties":{"friday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"type":"array"},"monday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"type":"array"},"saturday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"type":"array"},"sunday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"type":"array"},"thursday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"type":"array"},"tuesday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"type":"array"},"wednesday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"type":"array"}},"type":"object"},"PatchUserSettings":{"properties":{"appointmentScheduling":{"$ref":"#/components/schemas/PatchUserAppointmentScheduling"},"callingHoursOfOperation":{"$ref":"#/components/schemas/AccountHoursOfOperation"},"chatbotHoursOfOperation":{"$ref":"#/components/schemas/AccountHoursOfOperation"},"defaultChatbotName":{"nullable":true,"type":"string"},"industries":{"items":{"enum":["real_estate","mortgage","software","solar","insurance","travel","automotive","support","home_services","financial_services","recruiting","other"],"type":"string"},"nullable":true,"type":"array"},"leadTypes":{"items":{"enum":["buyer","seller","renter","rent_to_own","new_home_loan","home_refinance","auto_insurance","crop_insurance","home_insurance","life_insurance","long_term_disability_insurance","mortgage_insurance","pet_insurance","recruiting_insurance","renters_insurance","travel_insurance","umbrella_insurance","bathroom","deck","door","flooring","gutter_guard","gutters","patio","roofing","screened_porch_sunroom","siding","solar","windows","wealth_management","used_vehicle","new_vehicle","inbound_recruit","outbound_recruit"],"type":"string"},"nullable":true,"type":"array"},"timeZone":{"enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Canada/Atlantic","Canada/Central","Canada/Eastern","Canada/Mountain","Canada/Newfoundland","Canada/Pacific","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zurich","GMT","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis","US/Alaska","US/Arizona","US/Central","US/Eastern","US/Hawaii","US/Mountain","US/Pacific","UTC",null],"nullable":true,"type":"string"}},"type":"object"},"PatchVelocifyIntegration":{"properties":{"leadId":{"description":"Velocify Lead ID","example":"12345","nullable":true,"type":"string"}},"type":"object"},"Properties":{"properties":{"address":{"nullable":true,"type":"string"},"agencyUrl":{"nullable":true,"type":"string"},"agentExclusivity":{"nullable":true,"type":"string"},"agentSatisfactionRating":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"agentStatus":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"alternatePlan":{"nullable":true,"type":"string"},"anticipatedCloseDate":{"nullable":true,"type":"string"},"autoCoverageType":{"enum":["collision","comprehensive","full","liability",null],"nullable":true,"type":"string"},"background":{"nullable":true,"type":"string"},"baths":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"bathsMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"bathsMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"beds":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"bedsMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"bedsMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"benefit":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"businessLoanType":{"enum":["business line of credit","merchant cash advance","sba loan","term loan",null],"nullable":true,"type":"string"},"cancellationReason":{"nullable":true,"type":"string"},"coBorrowerStatus":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"commercialProperty":{"enum":["hotel","industrial","multi_family_housing","office","restaurant","retail",null],"nullable":true,"type":"string"},"companyDepartments":{"enum":["accounting","business_development","customer_support","innovation","inside_sales","legal","marketing","product_management",null],"nullable":true,"type":"string"},"companyName":{"nullable":true,"type":"string"},"constructionType":{"enum":["addition","new_build","remodel",null],"nullable":true,"type":"string"},"consultantStatus":{"enum":["interested","not_interested","postponed_interest","somewhat_interested",null],"nullable":true,"type":"string"},"contactConfirmation":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"contactLocation":{"nullable":true,"type":"string"},"contactOptIn":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"contactTime":{"nullable":true,"type":"string"},"contentOffer":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"contingency":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"coverageAmount":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"coverageAmountMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"coverageAmountMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"credit":{"enum":["excellent","fair","good","very_good","very_poor",null],"nullable":true,"type":"string"},"creditScore":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"crmDisposition":{"nullable":true,"type":"string"},"crmNotes":{"nullable":true,"type":"string"},"dateOfBirth":{"nullable":true,"type":"string"},"debtToIncome":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"decisionMaker":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"decisionProcess":{"nullable":true,"type":"string"},"decisionStakeholders":{"nullable":true,"type":"string"},"demoConfirmation":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"downPayment":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"downPaymentMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"downPaymentMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"driversLicenseNumber":{"nullable":true,"type":"string"},"driversLicenseStatus":{"enum":["active","expired","permit",null],"nullable":true,"type":"string"},"education":{"enum":["associates_degree","bachelors_degree","doctorate_phd","high_school","masters_degree","other",null],"nullable":true,"type":"string"},"electricType":{"enum":["circuit breaker box","fuse box",null],"nullable":true,"type":"string"},"employees":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"employeesMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"employeesMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"employmentStatus":{"enum":["employed","employed_part_time","not_employed","retired","self_employed",null],"nullable":true,"type":"string"},"equityStatus":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"equityStatusMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"equityStatusMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"existingCoverage":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"existingCoverageType":{"enum":["auto_insurance","home_insurance","life_insurance","long_term_disability_insurance","pet_insurance","renters_insurance","umbrella_insurance",null],"nullable":true,"type":"string"},"exteriorMaterial":{"enum":["brick","fiber_cement_siding","masonite_siding","metal_siding","siding","stone","stucco","vinyl_siding","wood",null],"nullable":true,"type":"string"},"externalCampaignId":{"nullable":true,"type":"string"},"favoriteCity":{"nullable":true,"type":"string"},"financialDefault":{"enum":["bankruptcy","declined_previously","eviction","foreclosure","missed_payments","short_sale",null],"nullable":true,"type":"string"},"financingStatus":{"enum":["cash","false","housing_voucher","owner_financing","rent_to_own","true",null],"nullable":true,"type":"string"},"firstTimeBuyer":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"firstTimeSeller":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"fsboReason":{"nullable":true,"type":"string"},"furnaceAge":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"furnaceAgeMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"furnaceAgeMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"garageStalls":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"garageStallsMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"garageStallsMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"gender":{"enum":["female","male","other",null],"nullable":true,"type":"string"},"healthHistory":{"nullable":true,"type":"string"},"homeStyle":{"enum":["a_frame","art_deco","barndominium","bungalow","cape_cod","colonial","condominium","contemporary","cottage","craftsman","creole","dutch_colonial","farmhouse","federal","french_provincial","georgian","gothic_revival","greek_revival","international","italianate","log_cabin","manufactured_home","mid_century_modern","modern","modular","monterey","national","neoclassical","other","prairie","pueblo","queen_anne","ranch","regency","saltbox","second_empire","shed","shingle","shotgun","spanish_eclectic","split_level","stick","tudor","two_story","victorian",null],"nullable":true,"type":"string"},"homeownersAssociation":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"ibuyerPartner":{"enum":["moving_station","offerpad","opendoor",null],"nullable":true,"type":"string"},"impliedInsuranceType":{"enum":["auto_insurance","home_insurance","life_insurance","long_term_disability_insurance","pet_insurance","renters_insurance","travel_insurance","umbrella_insurance",null],"nullable":true,"type":"string"},"inHouseLender":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"income":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"incomeFrequency":{"enum":["bi-weekly","monthly","semi-monthly","weekly",null],"nullable":true,"type":"string"},"incomeSource":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"industry":{"enum":["automotive","commercial_real_estate","ecommerce","home_services","insurance","marketing","mortgage","property_management","residential_real_estate","retail","software",null],"nullable":true,"type":"string"},"insureds":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"interest":{"enum":["interested","not_interested","postponed_interest","somewhat_interested",null],"nullable":true,"type":"string"},"interestRate":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"interestRateMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"interestRateMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"isAgent":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"isInvestor":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"isLocal":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"language":{"enum":["arabic","bengali","english","french","hindi","japanese","mandarin","portuguese","punjabi","russian","spanish",null],"nullable":true,"type":"string"},"leadPriority":{"enum":["distant","later","never","now","soon",null],"nullable":true,"type":"string"},"lenderName":{"nullable":true,"type":"string"},"lenderStatus":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"liabilityCoverageAmount":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"liabilityCoverageAmountMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"liabilityCoverageAmountMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"lifeInsuranceType":{"enum":["final_expense","indexed_universal_life","mortgage_protection","term_life","whole_life",null],"nullable":true,"type":"string"},"listingAge":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"listingProduct":{"enum":["fsbo","ibuyer","network",null],"nullable":true,"type":"string"},"listingUrl":{"nullable":true,"type":"string"},"livingSpace":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"livingSpaceMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"livingSpaceMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"loanBalance":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"loanBalanceMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"loanBalanceMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"loanPurpose":{"enum":["cashout","change_term","rate_and_term",null],"nullable":true,"type":"string"},"loanTerm":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"loanType":{"enum":["adjustable_rate_mortgage","conventional","fha","heloc","jumbo","reverse_mortgage","usda","va",null],"nullable":true,"type":"string"},"location":{"nullable":true,"type":"string"},"lotSize":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"lotSizeMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"lotSizeMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"maritalStatus":{"enum":["divorced","married","separated","single",null],"nullable":true,"type":"string"},"marketingSpend":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"marketingSpendMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"marketingSpendMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"militaryActiveDuty":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"militaryBranch":{"enum":["air_force","army","coast_guard","marines","national_guard","navy","space_force",null],"nullable":true,"type":"string"},"militaryDischargeType":{"enum":["bad_conduct_discharge","dishonorable_discharge","entry_level_separation","general_discharge","honorable_discharge","medical_separation","other_than_honorable_discharge","separation_for_convenience_of_the_government",null],"nullable":true,"type":"string"},"militaryReservesService":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"militaryServiceTerm":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"monthlyPayments":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"monthlyPaymentsMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"monthlyPaymentsMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"mortgageEscrow":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"mortgageIntent":{"enum":["preapproval","rate_quote",null],"nullable":true,"type":"string"},"mortgageStatus":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"motivation":{"enum":["closer_to_family","closer_to_friends","closer_to_school","closer_to_work","death","debt","divorce","downsizing","empty_nester","environmental","equity","good_schools","homeless","investment","job_transfer","lease_expiry","lifestyle","location_proximity","lost_job","neighbor_sold_property","new_children","new_job","privacy","ready_to_move","relocating","retiring","save_money","sold_property","space_for_animals","tired_of_renting","upsizing","vacation_interest","weather",null],"nullable":true,"type":"string"},"motivationPlans":{"nullable":true,"type":"string"},"netWorth":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"netWorthMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"netWorthMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"objection":{"enum":["company_rep","compatibility","other","price","quality","timing",null],"nullable":true,"type":"string"},"occupation":{"nullable":true,"type":"string"},"officeLocation":{"nullable":true,"type":"string"},"ownership":{"enum":["co_owner","financed","leased","no_ownership","purchasing","sole_owner","third_party_owner",null],"nullable":true,"type":"string"},"ownershipTimeline":{"nullable":true,"type":"string"},"paintingType":{"enum":["brick","cabinetry","commercial","concrete_staining","epoxy_floor_coating","exterior","garage_doors","interior","new_build","other","stucco","wallpaper","wood_staining",null],"nullable":true,"type":"string"},"paymentAmount":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"paymentAmountMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"paymentAmountMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"paymentType":{"enum":["cash","credit","financing","insurance",null],"nullable":true,"type":"string"},"personAge":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"petAge":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"petName":{"nullable":true,"type":"string"},"petType":{"enum":["cat","dog","other",null],"nullable":true,"type":"string"},"preferredChannel":{"enum":["mailgun","phone_call","twilio",null],"nullable":true,"type":"string"},"prescriptions":{"nullable":true,"type":"string"},"price":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"priceMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"priceMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"priorClaims":{"nullable":true,"type":"string"},"priorLoanExperience":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"problem":{"nullable":true,"type":"string"},"productType":{"enum":["awning","bath","deck","door","flooring","gutter_guard","gutters","hurricane_protection","hvac","interior","kitchen","patio","roofing","screened_porch_sunroom","siding","solar","window",null],"nullable":true,"type":"string"},"projectDetails":{"nullable":true,"type":"string"},"projectType":{"enum":["cleaning","new_install","remodel","repair","replacement",null],"nullable":true,"type":"string"},"promotionalOffer":{"enum":["interested","not_interested","postponed_interest","somewhat_interested",null],"nullable":true,"type":"string"},"propertyAge":{"nullable":true,"type":"string"},"propertyFeature":{"enum":["access_to_water","basement","big_kitchen","big_yard","deck","detached_garage","driveway","existing_tenants","exposed_beams","exposed_brick","fenced_yard","finished_basement","fireplace","garden","handicap_accessible","hardwood_floors","home_office","hot_tub","in_law_suite","main_floor_laundry","main_floor_master","other","patio - porch","pet_friendly","pool","rural","rv_parking","safe_neighborhood","screened_porch","shop","solar","space_to_entertain","trampoline","updated_baths","updated_kitchen","utilities_included","vaulted_ceilings","walkable_neighborhood",null],"nullable":true,"type":"string"},"propertyPreferences":{"nullable":true,"type":"string"},"propertyRecords":{"enum":["lien","second_mortgage",null],"nullable":true,"type":"string"},"propertyStatus":{"enum":["active","pending","sold",null],"nullable":true,"type":"string"},"propertyUse":{"enum":["agriculture","business","investment","personal","primary_residence","secondary_residence","short_term_rental","vacation",null],"nullable":true,"type":"string"},"propertyValue":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"propertyValueMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"propertyValueMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"propertyVisit":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"purchaseStatus":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"quantity":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"readiness":{"enum":["active","just_looking","not_interested","researching",null],"nullable":true,"type":"string"},"referralAgencyName":{"nullable":true,"type":"string"},"referralAgentEmail":{"nullable":true,"type":"string"},"referralAgentName":{"nullable":true,"type":"string"},"referralAgentPhone":{"nullable":true,"type":"string"},"referralInterest":{"enum":["agent","does_not_want_agent","financing",null],"nullable":true,"type":"string"},"relocating":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"rentalPeriod":{"nullable":true,"type":"string"},"replacementAmount":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"replacementAmountMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"replacementAmountMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"revenue":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"revenueMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"revenueMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"roofAge":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"roofAgeMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"roofAgeMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"roofType":{"enum":["asphalt_shingles","cedar_shake_shingles","coating","composite_shingles","flat_roofing","metal","slate","synthetic_shingles",null],"nullable":true,"type":"string"},"satisfactionRating":{"enum":["excellent","moderate","poor","very_poor",null],"nullable":true,"type":"string"},"schedulingLink":{"nullable":true,"type":"string"},"scope":{"nullable":true,"type":"string"},"sellingAddress":{"nullable":true,"type":"string"},"startDate":{"nullable":true,"type":"string"},"state":{"enum":["alabama","alaska","arizona","arkansas","california","colorado","connecticut","delaware","florida","georgia","hawaii","idaho","illinois","indiana","iowa","kansas","kentucky","louisiana","maine","maryland","massachusetts","michigan","minnesota","mississippi","missouri","montana","nebraska","nevada","new_hampshire","new_jersey","new_mexico","new_york","north_carolina","north_dakota","ohio","oklahoma","oregon","pennsylvania","rhode_island","south_carolina","south_dakota","tennessee","texas","utah","vermont","virginia","washington","west_virginia","wisconsin","wyoming",null],"nullable":true,"type":"string"},"technology":{"nullable":true,"type":"string"},"tenure":{"nullable":true,"type":"string"},"timeZone":{"enum":["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Ciudad_Juarez","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Canada/Atlantic","Canada/Central","Canada/Eastern","Canada/Mountain","Canada/Newfoundland","Canada/Pacific","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zurich","GMT","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis","US/Alaska","US/Arizona","US/Central","US/Eastern","US/Hawaii","US/Mountain","US/Pacific","UTC",null],"nullable":true,"type":"string"},"timeframe":{"nullable":true,"type":"string"},"tobaccoUsage":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"totalDebt":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"totalDebtMax":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"totalDebtMin":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"url":{"nullable":true,"type":"string"},"useCase":{"enum":["customer_support","lead_conversion","lead_generation","workflow_improvement",null],"nullable":true,"type":"string"},"usingProfanity":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"vehicleId":{"nullable":true,"type":"string"},"vehicleMake":{"nullable":true,"type":"string"},"vehicleMileage":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"vehicleModel":{"nullable":true,"type":"string"},"vehicleYear":{"nullable":true,"oneOf":[{"type":"number"},{"type":"integer"}]},"veteran":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"veteranServiceDisability":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"viewedProperties":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"webinarOptIn":{"enum":["no","yes",null],"nullable":true,"type":"string"},"windowType":{"enum":["architectural_windows","awning_windows","bay_windows","bow_windows","casement_windows","coastal_windows","double_hung_windows","double_sliding_windows","horizontal_sliding_windows","other","picture_windows","single_hung_windows","single_sliding_windows","sliding_patio_door","vinyl","wood",null],"nullable":true,"type":"string"},"workHistory":{"nullable":true,"type":"string"},"workingWithColleague":{"enum":[true,false,"true","false",null],"nullable":true,"oneOf":[{"type":"boolean"},{"type":"string"}]},"zipCode":{"nullable":true,"type":"string"}},"type":"object"},"RecentActivity":{"properties":{"activityType":{"description":"Type of appointment or callback activity.","enum":["APPOINTMENT_SET","CALLBACK_SCHEDULED"],"example":"APPOINTMENT_SET","type":"string"},"createdAt":{"description":"ISO-8601 creation time derived from the activity ObjectId.","format":"date-time","type":"string"},"id":{"description":"Recent activity ID.","example":"650ba6ced07cb5552a2467b0","format":"ObjectId","type":"string"},"leadId":{"description":"ID of the lead associated with this activity.","format":"ObjectId","type":"string"},"leadName":{"description":"Name of the lead associated with this activity.","type":"string"},"metadata":{"additionalProperties":{},"description":"Activity metadata with top-level keys converted to camelCase. Top-level datetime values are ISO-8601 strings.","type":"object"}},"required":["activityType","createdAt","id","leadId","leadName","metadata"],"type":"object"},"RecentActivityListResponse":{"properties":{"cursor":{"description":"Opaque cursor for the next page, or null when complete.","nullable":true,"type":"string"},"items":{"description":"Oldest-first, cursor-paginated recent activity records.","items":{"$ref":"#/components/schemas/RecentActivity"},"type":"array"},"next":{"description":"Fully-qualified URL for the next page, or null when complete.","nullable":true,"type":"string"}},"required":["cursor","items","next"],"type":"object"},"SalesforceIntegration":{"properties":{"contactObjectId":{"description":"Salesforce Contact Object ID, must be set if Lead or Opportunity are not set","example":"003XXXXXXXXXXXXXXX","nullable":true,"type":"string"},"leadObjectId":{"description":"Salesforce Lead Object ID, must be set if Contact or Opportunity are not set","example":"00QXXXXXXXXXXXXXXX","nullable":true,"type":"string"},"opportunityObjectId":{"description":"Salesforce Opportunity Object ID, Must be set if Lead or Contact are not set","example":"006XXXXXXXXXXXXXXX","nullable":true,"type":"string"},"ownerObjectId":{"description":"Salesforce Owner Object ID","example":"005XXXXXXXXXXXXXXX","nullable":true,"type":"string"},"sfObjectId":{"description":"Salesforce Object ID for the Contact, Lead, or Opportunity this lead is tied to","example":"001XXXXXXXXXXXXXXX","type":"string"}},"required":["sfObjectId"],"type":"object"},"SchedulingSettings":{"properties":{"enabled":{"description":"Enable or disable scheduled calling","example":true,"type":"boolean"}},"required":["enabled"],"type":"object"},"SchedulingStatus":{"properties":{"current_status":{"description":"Current scheduling status","enum":["Active","Disabled","Sleeping"],"example":"Active","type":"string"},"enabled":{"description":"Whether scheduled calling is enabled","example":true,"type":"boolean"}},"type":"object"},"Script":{"properties":{"displayName":{"description":"The value to display users to help them choose a script","example":"Buyer","type":"string"},"isCampaign":{"description":"True when this script represents a campaign","example":"false","type":"boolean"},"isCustom":{"description":"Is this script customized to you","example":"false","type":"boolean"},"name":{"description":"The name of the script, send this when starting a conversation","example":"buyer","type":"string"}},"required":["displayName"],"type":"object"},"Scripts":{"properties":{"scripts":{"description":"A list of scripts your account can use","example":[{"displayName":"Buyer","isCampaign":false,"isCustom":false,"name":"buyer"}],"items":{"$ref":"#/components/schemas/Script"},"type":"array"}},"type":"object"},"SendMessage":{"properties":{"channel":{"description":"What channel should the message be sent over","enum":["sms","email","web"],"example":"sms","type":"string"},"continueConversation":{"default":false,"description":"When true, do not mute text AI. Omitted defaults to false (legacy mute). Recommended: true.","example":true,"type":"boolean"},"createdAt":{"description":"Date time for when the message was created, must be timezone aware","example":"2026-09-09T04:13:17.037960+00:00","format":"date-time","nullable":true,"type":"string"},"externalMessageId":{"description":"Optionally provide the ID for a message in your CRM or database","example":"1e86983d-62fa-41fc-88fe-0f26cc8150da","nullable":true,"type":"string"},"messageMetadata":{"additionalProperties":{"type":"string"},"description":"Metadata to associate with the message","example":"{\"holiday_campaign\":\"easter\"}","type":"object"},"text":{"description":"The message you want to send to the lead","example":"This is a test message","type":"string"},"useGenerativeAI":{"default":false,"description":"When true, treat text as a Text AI prompt template and enqueue asynchronous generation and send. The generated message is delivered later; this response still returns lead metadata. Omitted defaults to false (send text as-is). Recommended: true.","example":true,"type":"boolean"}},"required":["channel","text"],"type":"object"},"SierraIntegration":{"properties":{"leadId":{"description":"Sierra Lead ID","example":"12345","type":"string"}},"required":["leadId"],"type":"object"},"StartCall":{"properties":{"assignAgent":{"anyOf":[{"$ref":"#/components/schemas/AssignAgent"},{"nullable":true,"type":"object"}],"description":"Optional agent assignment details for the lead","example":{"agentId":"650ba6ced07cb5552a2467b0"}},"callAiAgentId":{"description":"The ID of the Call AI Agent to use for the call (if not specified will make a direct call).","nullable":true,"type":"string"},"customProperties":{"additionalProperties":{"oneOf":[{"type":"number"},{"type":"string"},{"format":"date-time","type":"string"},{"type":"boolean"},{"items":{"type":"number"},"type":"array"},{"items":{"type":"string"},"type":"array"},{"items":{"format":"date-time","type":"string"},"type":"array"},{"items":{"type":"boolean"},"type":"array"}]},"description":"Optional top-level custom properties for this lead, represented as a dictionary with string keys. Value types: number|string|datetime|boolean|number[]|string[]|datetime[]|boolean[]. During normalization, datetimes are converted to UTC ISO-8601 strings and entries with blank keys, unsupported value types, or mixed-type arrays are dropped.","example":{"birthday":"2026-01-01T00:00:00Z","marketingOptIn":true,"preferredContactDays":["monday","friday"]},"nullable":true,"type":"object"},"email":{"example":"jane.doe@example.com","type":"string"},"externalLeadId":{"description":"The ID for this lead in your CRM or database","example":"b6726f23-1440-4206-962f-8c429f61714c","nullable":true,"type":"string"},"integrations":{"anyOf":[{"$ref":"#/components/schemas/IntegrationMetadata"},{"nullable":true,"type":"object"}],"description":"Optional integration-specific metadata.","example":{"salesforce":{"sfObjectId":"001XXXXXXXXXXXXXXX"}}},"name":{"description":"Full name for this lead","example":"Jane Doe","type":"string"},"phone":{"description":"Lead's phone number, E.164 or number with area code","example":"(303) 555-5555","type":"string"},"properties":{"allOf":[{"$ref":"#/components/schemas/Properties"}],"description":"Properties that are known about the lead, may be used in responses, may be confirmed or skipped in scripting.","example":{}},"source":{"default":"Unknown","description":"The vendor that sourced this lead (or website)","example":"www.shiny-leads-vendor.com","type":"string"},"testPayloadClearDupeLeads":{"default":false,"description":"Only set this field during testing, it will automatically clear the phone, email, and externalLeadId for any lead enrolled with the same values.","example":false,"nullable":true,"type":"boolean"}},"type":"object"},"StartConversation":{"properties":{"assignAgent":{"anyOf":[{"$ref":"#/components/schemas/AssignAgent"},{"nullable":true,"type":"object"}],"description":"Optional agent assignment details for the lead","example":{"agentId":"650ba6ced07cb5552a2467b0"}},"customProperties":{"additionalProperties":{"oneOf":[{"type":"number"},{"type":"string"},{"format":"date-time","type":"string"},{"type":"boolean"},{"items":{"type":"number"},"type":"array"},{"items":{"type":"string"},"type":"array"},{"items":{"format":"date-time","type":"string"},"type":"array"},{"items":{"type":"boolean"},"type":"array"}]},"description":"Optional top-level custom properties for this lead, represented as a dictionary with string keys. Value types: number|string|datetime|boolean|number[]|string[]|datetime[]|boolean[]. During normalization, datetimes are converted to UTC ISO-8601 strings and entries with blank keys, unsupported value types, or mixed-type arrays are dropped.","example":{"birthday":"2026-01-01T00:00:00Z","marketingOptIn":true,"preferredContactDays":["monday","friday"]},"nullable":true,"type":"object"},"email":{"example":"jane.doe@example.com","type":"string"},"externalLeadId":{"description":"The ID for this lead in your CRM or database","example":"b6726f23-1440-4206-962f-8c429f61714c","nullable":true,"type":"string"},"integrations":{"anyOf":[{"$ref":"#/components/schemas/IntegrationMetadata"},{"nullable":true,"type":"object"}],"description":"Optional integration-specific metadata.","example":{"salesforce":{"sfObjectId":"001XXXXXXXXXXXXXXX"}}},"messages":{"description":"Optional historical messages to persist for a newly created lead.","example":[{"channel":"sms","content":"Hello there!","isOutbound":false,"messageId":"d645fca8-762f-46ca-b244-ed4ba244f335","receivedAt":"2026-09-09T04:13:17.037148+00:00","subject":null,"vendorName":"twilio"}],"items":{"$ref":"#/components/schemas/StartConversationMessage"},"nullable":true,"type":"array"},"name":{"description":"Full name for this lead","example":"Jane Doe","type":"string"},"phone":{"description":"Lead's phone number, E.164 or number with area code","example":"(303) 555-5555","type":"string"},"properties":{"allOf":[{"$ref":"#/components/schemas/Properties"}],"description":"Properties that are known about the lead, may be used in responses, may be confirmed or skipped in scripting.","example":{}},"script":{"description":"The script or usecase that will be used to communicate with this lead","example":"buyer","type":"string"},"source":{"default":"Unknown","description":"The vendor that sourced this lead (or website)","example":"www.shiny-leads-vendor.com","type":"string"},"testPayloadClearDupeLeads":{"default":false,"description":"Only set this field during testing, it will automatically clear the phone, email, and externalLeadId for any lead enrolled with the same values.","example":false,"nullable":true,"type":"boolean"}},"required":["script"],"type":"object"},"StartConversationMessage":{"properties":{"channel":{"description":"Message channel.","enum":["sms","email","web"],"example":"sms","type":"string"},"content":{"description":"Message content.","example":"Hello there!","type":"string"},"isOutbound":{"description":"True when the agent/platform sent the message.","example":false,"type":"boolean"},"messageId":{"description":"Unique message identifier in the source vendor.","example":"d645fca8-762f-46ca-b244-ed4ba244f335","type":"string"},"receivedAt":{"description":"Timezone-aware datetime when the message was received/sent.","example":"2026-09-09T04:13:17.037405+00:00","format":"date-time","type":"string"},"subject":{"description":"Optional email subject.","example":"Quick follow-up","nullable":true,"type":"string"},"vendorName":{"description":"Vendor associated with this message.","enum":["twilio","telnyx","message-bird","vonage","gmail","mailgun","bonzo","sierra","agent-legend","live-chat"],"example":"twilio","type":"string"}},"required":["channel","content","isOutbound","messageId","receivedAt","vendorName"],"type":"object"},"TrackCallRequest":{"properties":{"callDisposition":{"description":"Optional disposition to set for the tracked call.","enum":["Busy","Failed","Answering Machine","No Answer","Connected","Appointment Set","Live Transferred","Live Transfer Failed","Call Back Later","Did Not Leave Voicemail","Do Not Call","Do Not Contact","Left Voicemail","Not Interested","No Conversation","Reconnect Later","Wrong Number","Call Blocked, Detected as Spam","Door Visit","Agent Voicemail",null],"example":"Connected","nullable":true,"type":"string"},"callType":{"description":"The type of tracked call.","enum":["CustomerStarted","AgentStarted","DialerStarted","DoorVisit"],"example":"AgentStarted","type":"string"},"finishedAt":{"format":"date-time","type":"string"},"lead":{"anyOf":[{"nullable":true,"type":"object"},{"$ref":"#/components/schemas/CreateLead"}]},"recordingUrl":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"vendorCallId":{"type":"string"},"vendorName":{"type":"string"}},"required":["callType","finishedAt","recordingUrl","startedAt","vendorCallId","vendorName"],"type":"object"},"TrackMessageMedia":{"properties":{"mediaType":{"description":"MIME type of the media item","example":"image/png","type":"string"},"url":{"description":"HTTPS URL of media to ingest","example":"https://cdn.example.com/media.png","type":"string"}},"required":["mediaType","url"],"type":"object"},"TrackMessageRequest":{"properties":{"channel":{"description":"Public message channel: sms, email, or web","enum":["sms","email","web"],"example":"sms","type":"string"},"destinationAddress":{"description":"Required for sms and email; omit for web","example":"+15557654321","nullable":true,"type":"string"},"media":{"description":"Optional media items to ingest over HTTPS","items":{"$ref":"#/components/schemas/TrackMessageMedia"},"nullable":true,"type":"array"},"messageMetadata":{"additionalProperties":{"type":"string"},"description":"Optional string metadata associated with the message","example":"{\"campaign\":\"spring\"}","nullable":true,"type":"object"},"receivedAt":{"description":"Timezone-aware datetime when the message was received/sent","example":"2026-09-09T04:13:17.038608+00:00","format":"date-time","type":"string"},"sender":{"description":"Who sent the message: Lead, User, or AI","enum":["Lead","User","AI"],"example":"Lead","type":"string"},"sourceAddress":{"description":"Required for sms and email; omit for web","example":"+15551234567","nullable":true,"type":"string"},"subject":{"description":"Optional email subject","example":"Checking in","nullable":true,"type":"string"},"text":{"description":"Message body text","example":"Hello from the partner","type":"string"},"vendor":{"description":"Public vendor that originated the message","example":"twilio","type":"string"},"vendorMessageId":{"description":"Vendor identity for this message","example":"SM1234567890","type":"string"}},"required":["channel","receivedAt","sender","text","vendor","vendorMessageId"],"type":"object"},"User":{"properties":{"accountId":{"format":"ObjectId","nullable":true,"readOnly":true,"type":"string"},"archivedAt":{"format":"date-time","nullable":true,"readOnly":true,"type":"string"},"createdAt":{"format":"date-time","readOnly":true,"type":"string"},"email":{"format":"email","readOnly":true,"type":"string"},"id":{"format":"ObjectId","readOnly":true,"type":"string"},"isFauxUser":{"readOnly":true,"type":"boolean"},"name":{"readOnly":true,"type":"string"},"phone":{"readOnly":true,"type":"string"},"teamId":{"format":"ObjectId","nullable":true,"readOnly":true,"type":"string"},"updatedAt":{"format":"date-time","readOnly":true,"type":"string"}},"type":"object"},"UserAppointmentScheduling":{"properties":{"appointmentDuration":{"description":"Present only when provider is faux.","maximum":180,"minimum":10,"readOnly":true,"type":"integer"},"configurable":{"description":"False for Google, which exposes no configurable metadata; true for FAUX.","readOnly":true,"type":"boolean"},"isActive":{"description":"Present only when provider is faux.","readOnly":true,"type":"boolean"},"provider":{"description":"Scheduling provider. Active Google scheduling wins over FAUX scheduling.","enum":["google","faux"],"readOnly":true,"type":"string"},"weeklyAvailability":{"allOf":[{"$ref":"#/components/schemas/UserAppointmentSchedulingWeeklyAvailability"}],"description":"Present only when provider is faux.","readOnly":true}},"required":["configurable","provider"],"type":"object"},"UserAppointmentSchedulingTransition":{"properties":{"mode":{"description":"Availability mode beginning at startTime.","enum":["Available","NotAvailable"],"example":"Available","type":"string"},"startTime":{"description":"Exact lower-case hourly transition start.","enum":["12a","1a","2a","3a","4a","5a","6a","7a","8a","9a","10a","11a","12p","1p","2p","3p","4p","5p","6p","7p","8p","9p","10p","11p"],"example":"9a","type":"string"}},"required":["mode","startTime"],"type":"object"},"UserAppointmentSchedulingWeeklyAvailability":{"properties":{"friday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"readOnly":true,"type":"array"},"monday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"readOnly":true,"type":"array"},"saturday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"readOnly":true,"type":"array"},"sunday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"readOnly":true,"type":"array"},"thursday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"readOnly":true,"type":"array"},"tuesday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"readOnly":true,"type":"array"},"wednesday":{"items":{"$ref":"#/components/schemas/UserAppointmentSchedulingTransition"},"minItems":1,"readOnly":true,"type":"array"}},"required":["friday","monday","saturday","sunday","thursday","tuesday","wednesday"],"type":"object"},"UserDetail":{"properties":{"accountId":{"format":"ObjectId","readOnly":true,"type":"string"},"id":{"format":"ObjectId","readOnly":true,"type":"string"},"isFauxUser":{"readOnly":true,"type":"boolean"},"name":{"readOnly":true,"type":"string"},"phone":{"nullable":true,"readOnly":true,"type":"string"},"settings":{"allOf":[{"$ref":"#/components/schemas/UserSettings"}],"readOnly":true},"teamId":{"format":"ObjectId","nullable":true,"readOnly":true,"type":"string"}},"required":["accountId","id","isFauxUser","name","phone","settings","teamId"],"type":"object"},"UserList":{"properties":{"data":{"items":{"$ref":"#/components/schemas/User"},"type":"array"},"limit":{"type":"integer"},"offset":{"type":"integer"},"total":{"type":"integer"}},"type":"object"},"UserSettings":{"properties":{"appointmentScheduling":{"allOf":[{"$ref":"#/components/schemas/UserAppointmentScheduling"}],"description":"Google responses contain only provider and configurable; FAUX responses contain the configurable surface.","oneOf":[{"additionalProperties":false,"properties":{"configurable":{"enum":[false],"type":"boolean"},"provider":{"enum":["google"],"type":"string"}},"required":["provider","configurable"],"type":"object"},{"additionalProperties":false,"properties":{"appointmentDuration":{"description":"Whole-minute duration honored exactly by FAUX scheduling.","maximum":180,"minimum":10,"type":"integer"},"configurable":{"enum":[true],"type":"boolean"},"isActive":{"type":"boolean"},"provider":{"enum":["faux"],"type":"string"},"weeklyAvailability":{"$ref":"#/components/schemas/UserAppointmentSchedulingWeeklyAvailability"}},"required":["provider","configurable","isActive","appointmentDuration","weeklyAvailability"],"type":"object"}],"readOnly":true},"callingHoursOfOperation":{"allOf":[{"$ref":"#/components/schemas/AccountHoursOfOperation"}],"readOnly":true},"chatbotHoursOfOperation":{"allOf":[{"$ref":"#/components/schemas/AccountHoursOfOperation"}],"readOnly":true},"defaultChatbotName":{"readOnly":true,"type":"string"},"industries":{"items":{"type":"string"},"readOnly":true,"type":"array"},"leadTypes":{"items":{"type":"string"},"readOnly":true,"type":"array"},"timeZone":{"readOnly":true,"type":"string"}},"required":["appointmentScheduling","callingHoursOfOperation","chatbotHoursOfOperation","defaultChatbotName","industries","leadTypes","timeZone"],"type":"object"},"VelocifyIntegration":{"properties":{"leadId":{"description":"Velocify Lead ID","example":"12345","type":"string"}},"required":["leadId"],"type":"object"},"WebhookCreateRequest":{"properties":{"name":{"description":"Human-readable webhook name.","example":"my webhook","type":"string"},"target":{"description":"HTTPS URL where webhook events will be delivered.","example":"https://example.com/webhooks","type":"string"},"triggers":{"description":"List of events that should trigger this webhook.","example":["lead:created","message"],"items":{"enum":["lead:created","lead:updated","call:created","call:updated","message","custom-tool"],"type":"string"},"type":"array"}},"required":["name","target","triggers"],"type":"object"},"WebhookCreateResponse":{"properties":{"consecutiveFailures":{"description":"Number of consecutive failed delivery attempts.","example":0,"type":"integer"},"createdAt":{"description":"Webhook creation timestamp.","format":"date-time","type":"string"},"id":{"description":"Webhook ID.","example":"650ba6ced07cb5552a2467b0","format":"ObjectId","type":"string"},"name":{"description":"Human-readable webhook name.","example":"my webhook","type":"string"},"secret":{"description":"Webhook signing secret.","example":"A4h5Q8Y3y9D7s2P4n6V1k3R0t8W2x5Z7b9C1d4F6g8H0j2K4","type":"string"},"status":{"description":"Current webhook status.","enum":["active","disabled","failed"],"example":"active","type":"string"},"target":{"description":"HTTPS URL where webhook events are delivered.","type":"string"},"totalFailedRequests":{"description":"Total failed webhook delivery attempts.","example":0,"type":"integer"},"totalSuccessfulRequests":{"description":"Total successful webhook delivery attempts.","example":0,"type":"integer"},"triggers":{"description":"Events that trigger this webhook.","example":["message"],"items":{"enum":["lead:created","lead:updated","call:created","call:updated","message","custom-tool"],"type":"string"},"type":"array"},"updatedAt":{"description":"Webhook last update timestamp.","format":"date-time","type":"string"}},"required":["consecutiveFailures","createdAt","id","name","secret","status","target","totalFailedRequests","totalSuccessfulRequests","triggers","updatedAt"],"type":"object"},"WebhookListResponse":{"properties":{"webhooks":{"description":"Webhook resources for the authenticated account.","items":{"$ref":"#/components/schemas/WebhookCreateResponse"},"type":"array"}},"required":["webhooks"],"type":"object"},"WebhookPatchRequest":{"properties":{"status":{"description":"Webhook status to apply.","enum":["active","disabled"],"example":"active","type":"string"}},"required":["status"],"type":"object"}},"securitySchemes":{"bearer-access-token":{"bearerFormat":"JWT","scheme":"bearer","type":"http"}}},"info":{"description":"\n<h2>Overview</h2>\n<p>The Structurely API allows integrators to provide automation for their accounts. It offers various functionalities to streamline lead management, messaging, lead qualification conversations, and retrieval of metadata.</p>\n<p>The Structurely API simplifies the integration process and removes the necessity to track additional fields in your system. It is specifically designed to utilize <b>your system's IDs</b> as internal keys, enabling you to seamlessly use IDs from your CRM or database as parameters, such as <span class=\"docs-inline-token\">externalLeadId</span>, and <span class=\"docs-inline-token\">externalMessageId</span>.\n<p>By utilizing this API, integrators can streamline their workflows, activate enhanced AI qualification conversations, and gain valuable insights into their accounts, leads, and conversations.</p>\n\n<h3>Security</h3>\n<p>The Structurely API provides secure authentication and authorization mechanisms to ensure controlled access to its endpoints. The authentication system utilizes API tokens to secure interactions with the API.</p>\n<p>Types of tokens and keys:</p>\n<ul>\n  <li><span class=\"docs-inline-token\">bearer-access-token</span>: Bearer JWT; <b>valid until deactivated</b></li>\n</ul>\n<p><b>Note:</b> It is essential to keep your bearer-access-tokens secure and avoid sharing them with unauthorized parties to maintain the integrity and security of your Structurely API integration.</p>\n</ul>\n","title":"Structurely Direct v2","version":"v3.35.20"},"openapi":"3.0.3","paths":{"/api/direct/v2/accounts":{"get":{"description":"Retrieve the authenticated account. Requires read:account or write:account scope.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"Account settings"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Retrieve account settings","tags":["Accounts"]},"patch":{"description":"Update the authenticated account. Omitted fields preserve their existing values. Requires write:account scope.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAccount"}}},"description":"Account fields to update.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}},"description":"Updated account settings"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update account settings","tags":["Accounts"]}},"/api/direct/v2/auth/token-info":{"get":{"description":"Retrieve account metadata for an API access token","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInfo"}}},"description":"Account Metadata"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Retrieve account metadata","tags":["Auth"]}},"/api/direct/v2/calling/":{"get":{"description":"List calls using updatedAt and cursor pagination.","parameters":[{"description":"Inclusive lower bound for call analyzedAt/finishedAt (ISO-8601). Required when cursor is not provided.","in":"query","name":"updatedAt","required":false,"schema":{"type":"string"}},{"description":"Number of calls to return per page. Defaults to 50, between 10 and 100","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"Cursor from a previous response.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Optional Structurely customer id or externalLeadId. First page only; mutually exclusive with cursor.","in":"query","name":"leadId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallList"}}},"description":"Paginated call results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List calls","tags":["Calling"]}},"/api/direct/v2/calling/ai-agents":{"get":{"description":"List all the CallAI Agents in your account","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallAiAgentList"}}},"description":"A response containing all the active agents in your account"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List CallAI Agents","tags":["Calling"]}},"/api/direct/v2/calling/call":{"post":{"description":"Create a new lead and immediately start a call with them<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">externalLeadId</span>: The Lead's ID from your CRM or database</li></ul></p>","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartCall"}}},"description":"The lead information and call metadata"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Call"}}},"description":"The call that was started"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Create a lead and start a call, this will not start a Text Conversation","tags":["Calling"]}},"/api/direct/v2/calling/scheduling":{"get":{"description":"Get current scheduled calling status and configuration","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulingStatus"}}},"description":"Scheduling status information"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Get scheduled calling status","tags":["Calling"]},"post":{"description":"Toggle scheduled calling on/off for the authenticated entity","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulingSettings"}}},"description":"Enable/disable scheduled calling"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchedulingStatus"}}},"description":"Current scheduling status"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Enable or disable scheduled calling","tags":["Calling"]}},"/api/direct/v2/calling/track":{"post":{"description":"Ingest an externally completed call, dedupe by vendor call id, and return call details.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackCallRequest"}}},"description":"Vendor call tracking payload"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Call"}}},"description":"Tracked call payload"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Track vendor call ingestion","tags":["Calling"]}},"/api/direct/v2/calling/{callId}/disposition":{"patch":{"description":"Set call disposition for a specific call.","parameters":[{"description":"The Call's ID.","in":"path","name":"callId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallDispositionUpdate"}}},"description":"Payload for updating call disposition"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Call"}}},"description":"The updated call"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update a call disposition","tags":["Calling"]}},"/api/direct/v2/calling/{leadId}/call":{"post":{"description":"Start a call for a lead that is already in the system<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">externalLeadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CallLead"}}},"description":"The metadata for calling a lead"},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Call"}}},"description":"The call that was started"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Start a call for a lead that is already in the system","tags":["Calling"]}},"/api/direct/v2/calling/{leadId}/call/{callId}":{"get":{"description":"Get details of a specific call for a lead<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}},{"description":"The Call's ID.","in":"path","name":"callId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Call"}}},"description":"The call details"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Get call details for a lead","tags":["Calling"]}},"/api/direct/v2/channels":{"get":{"description":"List SMS channels owned directly by the authenticated entity. Requires <span class=\"docs-inline-token\">channel:read</span> or <span class=\"docs-inline-token\">channel:write</span>. Results are sorted by ascending channel ID and use opaque cursor pagination.","parameters":[{"description":"Number of channels to return. Defaults to 50 and must be between 1 and 100.","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"Opaque padded URL-safe base64 cursor from a previous response.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelListResponse"}}},"description":"Cursor-paginated SMS channels for the authenticated entity."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List SMS channels","tags":["Channels"]}},"/api/direct/v2/channels/{channelId}":{"patch":{"description":"Assign or clear a Campaign or Voice AI Agent for an SMS channel owned directly by the authenticated entity. Requires <span class=\"docs-inline-token\">channel:write</span>. Omitted fields remain unchanged; explicit null clears the corresponding assignment. A Campaign and Voice AI Agent cannot both be assigned in the same request.","parameters":[{"description":"The SMS channel ID.","in":"path","name":"channelId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchChannel"}}},"description":"Optional nullable Campaign and Voice AI Agent assignment IDs.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Channel"}}},"description":"The complete updated SMS channel resource."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update SMS channel assignments","tags":["Channels"]}},"/api/direct/v2/custom-properties":{"get":{"description":"\nManage account-level Direct API custom property definitions.\nNames are sanitized before storage. JSON schema fragments are validated as custom property schemas,\nand <span class=\"docs-inline-token\">schema.required</span> is stripped; use the top-level\n<span class=\"docs-inline-token\">required</span> field instead.\n\n<span class=\"docs-inline-token\">usedForLlmContext</span> controls whether this custom property is\nincluded in automatic LLM <span class=\"docs-inline-token\">lead_metadata</span> prompt context. This setting controls whether a custom property is included in automatic LLM lead_metadata prompt context. It does not change extraction behavior, which remains controlled by dataOnly.\n\nCreate example:\n<pre>{\n  \"name\": \"Financing Status\",\n  \"description\": \"How the lead plans to finance the purchase.\",\n  \"schema\": {\n    \"type\": \"string\",\n    \"enum\": [\"cash\", \"financed\"],\n    \"x-enum-descriptions\": [\"Cash buyer\", \"Needs financing\"]\n  },\n  \"required\": false,\n  \"dataType\": \"ENUM\",\n  \"dataOnly\": false,\n  \"usedForLlmContext\": false\n}</pre>\n\nResponse example:\n<pre>{\n  \"id\": \"650ba6ced07cb5552a2467b0\",\n  \"name\": \"financingStatus\",\n  \"description\": \"How the lead plans to finance the purchase.\",\n  \"schema\": {\n    \"type\": \"string\",\n    \"enum\": [\"cash\", \"financed\"],\n    \"x-enum-descriptions\": [\"Cash buyer\", \"Needs financing\"]\n  },\n  \"required\": false,\n  \"dataType\": \"ENUM\",\n  \"dataOnly\": false,\n  \"usedForLlmContext\": false\n}</pre>\n","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPropertyListResponse"}}},"description":"Custom property definitions for the authenticated account."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List custom property definitions","tags":["Custom Properties"]},"post":{"description":"\nManage account-level Direct API custom property definitions.\nNames are sanitized before storage. JSON schema fragments are validated as custom property schemas,\nand <span class=\"docs-inline-token\">schema.required</span> is stripped; use the top-level\n<span class=\"docs-inline-token\">required</span> field instead.\n\n<span class=\"docs-inline-token\">usedForLlmContext</span> controls whether this custom property is\nincluded in automatic LLM <span class=\"docs-inline-token\">lead_metadata</span> prompt context. This setting controls whether a custom property is included in automatic LLM lead_metadata prompt context. It does not change extraction behavior, which remains controlled by dataOnly.\n\nCreate example:\n<pre>{\n  \"name\": \"Financing Status\",\n  \"description\": \"How the lead plans to finance the purchase.\",\n  \"schema\": {\n    \"type\": \"string\",\n    \"enum\": [\"cash\", \"financed\"],\n    \"x-enum-descriptions\": [\"Cash buyer\", \"Needs financing\"]\n  },\n  \"required\": false,\n  \"dataType\": \"ENUM\",\n  \"dataOnly\": false,\n  \"usedForLlmContext\": false\n}</pre>\n\nResponse example:\n<pre>{\n  \"id\": \"650ba6ced07cb5552a2467b0\",\n  \"name\": \"financingStatus\",\n  \"description\": \"How the lead plans to finance the purchase.\",\n  \"schema\": {\n    \"type\": \"string\",\n    \"enum\": [\"cash\", \"financed\"],\n    \"x-enum-descriptions\": [\"Cash buyer\", \"Needs financing\"]\n  },\n  \"required\": false,\n  \"dataType\": \"ENUM\",\n  \"dataOnly\": false,\n  \"usedForLlmContext\": false\n}</pre>\n","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPropertyCreateRequest"}}},"description":"Custom property definition payload.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomProperty"}}},"description":"The created custom property definition."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Create a custom property definition","tags":["Custom Properties"]}},"/api/direct/v2/custom-properties/{customPropertyId}":{"delete":{"description":"Delete only the custom property definition. Existing lead customProperties values are not cleared.","parameters":[{"description":"The custom property definition ID.","in":"path","name":"customPropertyId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPropertyDeleteResponse"}}},"description":"Custom property deletion result."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Delete a custom property definition","tags":["Custom Properties"]},"patch":{"description":"\nManage account-level Direct API custom property definitions.\nNames are sanitized before storage. JSON schema fragments are validated as custom property schemas,\nand <span class=\"docs-inline-token\">schema.required</span> is stripped; use the top-level\n<span class=\"docs-inline-token\">required</span> field instead.\n\n<span class=\"docs-inline-token\">usedForLlmContext</span> controls whether this custom property is\nincluded in automatic LLM <span class=\"docs-inline-token\">lead_metadata</span> prompt context. This setting controls whether a custom property is included in automatic LLM lead_metadata prompt context. It does not change extraction behavior, which remains controlled by dataOnly.\n\nCreate example:\n<pre>{\n  \"name\": \"Financing Status\",\n  \"description\": \"How the lead plans to finance the purchase.\",\n  \"schema\": {\n    \"type\": \"string\",\n    \"enum\": [\"cash\", \"financed\"],\n    \"x-enum-descriptions\": [\"Cash buyer\", \"Needs financing\"]\n  },\n  \"required\": false,\n  \"dataType\": \"ENUM\",\n  \"dataOnly\": false,\n  \"usedForLlmContext\": false\n}</pre>\n\nResponse example:\n<pre>{\n  \"id\": \"650ba6ced07cb5552a2467b0\",\n  \"name\": \"financingStatus\",\n  \"description\": \"How the lead plans to finance the purchase.\",\n  \"schema\": {\n    \"type\": \"string\",\n    \"enum\": [\"cash\", \"financed\"],\n    \"x-enum-descriptions\": [\"Cash buyer\", \"Needs financing\"]\n  },\n  \"required\": false,\n  \"dataType\": \"ENUM\",\n  \"dataOnly\": false,\n  \"usedForLlmContext\": false\n}</pre>\n\nOmitted fields preserve existing values. Explicit null for nullable optional fields (description, required, dataType, dataOnly, and usedForLlmContext) leaves those fields unchanged. When usedForLlmContext is omitted or null, the existing effective value is preserved even if dataOnly changes in the same request.","parameters":[{"description":"The custom property definition ID.","in":"path","name":"customPropertyId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomPropertyPatchRequest"}}},"description":"Custom property definition fields to update.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomProperty"}}},"description":"The updated custom property definition."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update a custom property definition","tags":["Custom Properties"]}},"/api/direct/v2/custom-reports":{"get":{"description":"List every S3 object for the authenticated account's client-accessible custom reports. The response is unpaginated.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomReportListResponse"}}},"description":"Custom report objects for the authenticated account"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List custom reports","tags":["Custom Reports"]}},"/api/direct/v2/custom-reports/{category}/latest":{"get":{"description":"Redirect to a 1-hour presigned S3 GET URL for the most recently modified object in the category. Ties are broken by higher file name.","parameters":[{"description":"Custom report category (DirectPlatformCustomReport.name).","in":"path","name":"category","required":true,"schema":{"oneOf":[{"type":"string"}]}}],"responses":{"302":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomReportDownloadResponse"}}},"description":"Redirect to a 1-hour presigned S3 GET URL. The Location header contains the same URL as downloadReport.","headers":{"Location":{"description":"Presigned S3 GET URL, valid for 1 hour.","schema":{"format":"uri","type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Download the latest custom report in a category","tags":["Custom Reports"]}},"/api/direct/v2/custom-reports/{category}/{id}":{"get":{"description":"Redirect to a 1-hour presigned S3 GET URL for the matching custom report object.","parameters":[{"description":"Custom report category (DirectPlatformCustomReport.name).","in":"path","name":"category","required":true,"schema":{"oneOf":[{"type":"string"}]}},{"description":"SHA-256 hex digest of the report file name.","in":"path","name":"id","required":true,"schema":{"oneOf":[{"type":"string"}]}}],"responses":{"302":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomReportDownloadResponse"}}},"description":"Redirect to a 1-hour presigned S3 GET URL. The Location header contains the same URL as downloadReport.","headers":{"Location":{"description":"Presigned S3 GET URL, valid for 1 hour.","schema":{"format":"uri","type":"string"}}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Download a custom report by id","tags":["Custom Reports"]}},"/api/direct/v2/knowledge-bases":{"get":{"description":"List knowledge bases for the authenticated account.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseListResponse"}}},"description":"Knowledge bases for the authenticated account"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List knowledge bases","tags":["Knowledge Bases"]},"post":{"description":"Create a knowledge base for the authenticated account.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKnowledgeBase"}}},"description":"Knowledge base creation payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBase"}}},"description":"The created knowledge base"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Create a knowledge base","tags":["Knowledge Bases"]}},"/api/direct/v2/knowledge-bases/{knowledgeBaseId}":{"delete":{"description":"Delete a knowledge base for the authenticated account.","parameters":[{"description":"The Knowledge Base ID.","in":"path","name":"knowledgeBaseId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"example":"OK","type":"string"}}},"description":"Knowledge base deletion result"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Delete a knowledge base","tags":["Knowledge Bases"]},"patch":{"description":"Update a knowledge base for the authenticated account.","parameters":[{"description":"The Knowledge Base ID.","in":"path","name":"knowledgeBaseId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchKnowledgeBase"}}},"description":"Knowledge base patch payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBase"}}},"description":"The updated knowledge base"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update a knowledge base","tags":["Knowledge Bases"]}},"/api/direct/v2/leads":{"get":{"description":"List non-archived leads using updatedAt and cursor-based pagination.","parameters":[{"description":"Inclusive lower bound for lead last contact time (ISO-8601). Required when cursor is not provided.","in":"query","name":"updatedAt","required":false,"schema":{"type":"string"}},{"description":"Number of leads to return. Defaults to 50. Must be between 1 and 100.","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"Cursor from a previous response.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadListResponse"}}},"description":"Paginated lead results"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List leads","tags":["Leads"]},"post":{"description":"<p>This endpoint will create a lead if it does not exist.</p><p>This action will <b>not</b> start a conversation.</p><p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">externalLeadId</span>: The Lead's ID from your CRM or database</li></ul></p>","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLead"}}},"description":"New lead metadata","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Newly created lead"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Create a lead, this does not start a conversation","tags":["Leads"]}},"/api/direct/v2/leads/bulk":{"post":{"description":"Enroll leads in bulk, using the Structurely bulk API to maintain a safe enrollment rate.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLeadEnrollmentRequest"}}},"description":"Bulk lead enrollment request payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkLeadEnrollmentResponse"}}},"description":"Created lead list and summary counters"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Enroll leads in bulk, starting a conversation for each","tags":["Leads"]}},"/api/direct/v2/leads/recent-activity":{"get":{"description":"List appointment and callback recent activity for the authenticated account. Requires <span class=\"docs-inline-token\">read:conversations</span> or <span class=\"docs-inline-token\">write:conversations</span>. Initial requests must include <span class=\"docs-inline-token\">createdAt</span>, an inclusive lower bound on activity ObjectId creation time. Continuation requests must include only <span class=\"docs-inline-token\">cursor</span> and may include <span class=\"docs-inline-token\">limit</span>; do not send <span class=\"docs-inline-token\">createdAt</span> or <span class=\"docs-inline-token\">activityTypes</span> with a cursor. Results are ordered oldest first.","parameters":[{"description":"Required for an initial request. ISO-8601 inclusive lower bound on activity ObjectId creation time. Naive values are interpreted as UTC and values must be within the last 14 days.","in":"query","name":"createdAt","required":false,"schema":{"format":"date-time","type":"string"}},{"description":"Optional initial-request filter. Repeat this parameter for each selected type; omitting it returns only APPOINTMENT_SET activities.","explode":true,"in":"query","name":"activityTypes","required":false,"schema":{"default":["APPOINTMENT_SET"],"items":{"enum":["APPOINTMENT_SET","CALLBACK_SCHEDULED"],"type":"string"},"type":"array"},"style":"form"},{"description":"Number of activities to return. Defaults to 50 and must be between 1 and 100.","in":"query","name":"limit","required":false,"schema":{"default":50,"maximum":100,"minimum":1,"type":"integer"}},{"description":"Required for a continuation request. Opaque cursor from a previous response; cannot be combined with createdAt or activityTypes.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecentActivityListResponse"}}},"description":"Oldest-first, cursor-paginated recent activity for the authenticated account."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List appointment and callback recent activity","tags":["Leads"]}},"/api/direct/v2/leads/start":{"post":{"description":"<p>This endpoint will create a lead if it does not exist.</p><p>This action will stop all prior conversations with this lead.</p><p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">externalLeadId</span>: The Lead's ID from your CRM or database</li></ul></p>","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartConversation"}}},"description":"New conversation + lead metadata","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Newly created lead"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Start a new conversation for a lead, create one if it does not exist","tags":["Leads"]}},"/api/direct/v2/leads/{leadId}":{"get":{"description":"Retrieve a lead from Structurely<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Successful response, the lead's metadata"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Retrieve a lead","tags":["Leads"]},"patch":{"description":"Patch lead metadata after enrollment. Supports top-level fields name, externalLeadId, properties, customProperties, and integrations. Top-level email and phone fields are rejected.<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchLead"}}},"description":"Lead patch payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Updated lead metadata"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Lead update conflict, retry request"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update lead metadata","tags":["Leads"]}},"/api/direct/v2/leads/{leadId}/assign-agent":{"patch":{"description":"Assign an agent to a lead<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li><li><span class=\"docs-inline-token\">externalMessageId</span>: The Message's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignAgent"}}},"description":"Agent to assign","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Updated lead metadata"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Assign an agent to a lead","tags":["Leads"]}},"/api/direct/v2/leads/{leadId}/message":{"post":{"description":"Send a message to a lead. Text AI is muted by default unless continueConversation is true. When useGenerativeAI is true, text is used as a prompt template and generation/send is processed asynchronously.<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li><li><span class=\"docs-inline-token\">externalMessageId</span>: The Message's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessage"}}},"description":"Message to send","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Updated lead metadata"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Send a message to a lead","tags":["Messaging"]}},"/api/direct/v2/leads/{leadId}/mute":{"post":{"description":"Mute the AI for a lead<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MuteChannelsRequest"}}},"description":"Optional channels to mute or unmute. Omit to apply both Text and Voice.","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Updated lead metadata"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Mute the AI for a lead","tags":["Leads"]}},"/api/direct/v2/leads/{leadId}/unmute":{"post":{"description":"Unmute the AI for a lead<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MuteChannelsRequest"}}},"description":"Optional channels to mute or unmute. Omit to apply both Text and Voice.","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lead"}}},"description":"Updated lead metadata"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Unmute the AI for a lead","tags":["Leads"]}},"/api/direct/v2/mcp":{"post":{"description":"JSON-RPC 2.0 Streamable HTTP MCP endpoint for Structurely Direct. Canonical path is POST /api/direct/v2/mcp. Alias paths POST /mcp, POST /api/mcp, POST /mcp-server, and POST /api/mcp-server invoke the same handler. Streamable HTTP clients may also POST JSON-RPC to /.well-known/mcp.json and /.well-known/mcp-server (and /api/.well-known counterparts). Unauthenticated server metadata is at GET /.well-known/mcp.json and GET /.well-known/mcp-server (also GET /api/.well-known/mcp.json and GET /api/.well-known/mcp-server). Discovery methods (initialize, ping, tools/list, resources/list, resources/templates/list) work without a bearer token. Calling tools and reading resources requires a Direct API bearer token. This is not a REST resource schema.","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"JSON-RPC 2.0 success or error envelope"},"202":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Accepted JSON-RPC notification with an empty body"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Method not allowed"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Structurely Direct MCP endpoint","tags":["MCP"]}},"/api/direct/v2/messaging/{leadId}/messages":{"get":{"description":"Retrieve message history for a lead<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageList"}}},"description":"Successful response, the lead's message history"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Retrieve a lead message history","tags":["Messaging"]}},"/api/direct/v2/messaging/{leadId}/track":{"post":{"description":"Ingest a message that already happened on a partner channel into conversation history.<p>Optionally utilize your system's IDs as internal keys, pass IDs from your CRM or database as parameters for:<ul><li><span class=\"docs-inline-token\">leadId</span>: The Lead's ID from your CRM or database</li></ul></p>","parameters":[{"description":"The Lead's ID, either the Structurely Lead ID, or the <span class=\"docs-inline-token\">externalLeadId</span> you used when creating the lead.","in":"path","name":"leadId","required":true,"schema":{"oneOf":[{"type":"string"},{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackMessageRequest"}}},"description":"Vendor message tracking payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Message"}}},"description":"Tracked message payload"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Track a vendor message","tags":["Messaging"]}},"/api/direct/v2/scripts":{"get":{"description":"<p>This endpoint will return a list of scripts available to your account</p>","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Scripts"}}},"description":"A script available to your account"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Retrieve a list of available scripts","tags":["Scripts"]}},"/api/direct/v2/users":{"get":{"description":"List users with optional filtering","parameters":[{"description":"Maximum number of results to return","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"Number of results to skip","in":"query","name":"offset","required":false,"schema":{"type":"integer"}},{"description":"Filter by archived status","in":"query","name":"archived","required":false,"schema":{"type":"boolean"}},{"description":"Filter by email","in":"query","name":"email","required":false,"schema":{"type":"string"}},{"description":"Filter by name","in":"query","name":"name","required":false,"schema":{"type":"string"}},{"description":"Filter by team ID","in":"query","name":"teamId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserList"}}},"description":"List of users"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List users","tags":["User Management"]},"post":{"description":"Create a new user in the system","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUser"}}},"description":"User creation parameters"},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"Created user"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Create a new user","tags":["User Management"]}},"/api/direct/v2/users/{userId}":{"delete":{"description":"Archive an existing user. Requires write:users scope.","parameters":[{"description":"The User's ID to archive, this action is not reversible","in":"path","name":"userId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"User archived successfully"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Access is restricted to brokerage accounts."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Archive a user","tags":["User Management"]},"get":{"description":"Retrieve one active user belonging to the authenticated brokerage. Requires read:users or write:users scope.","parameters":[{"description":"The active brokerage user ID.","in":"path","name":"userId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetail"}}},"description":"User detail"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Access is restricted to brokerage accounts."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Retrieve a user detail resource","tags":["User Management"]},"patch":{"description":"Update approved user profile and local settings fields. Omitted fields preserve their existing values. Requires write:users scope.","parameters":[{"description":"The active brokerage user ID.","in":"path","name":"userId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchUser"}}},"description":"User fields to update.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetail"}}},"description":"Updated user detail"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Access is restricted to brokerage accounts."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update a user detail resource","tags":["User Management"]}},"/api/direct/v2/users/{userId}/cross-launch":{"post":{"description":"Create a fully formed Portal cross-launch URL for an active brokerage user. Requires write:users scope.","parameters":[{"description":"The active brokerage user ID.","in":"path","name":"userId","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossLaunchRequest"}}},"description":"Optional Portal destination for the cross-launch.","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrossLaunchResponse"}}},"description":"Portal cross-launch URL"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Access is restricted to brokerage accounts or the session is not authorized to cross-launch."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}},"description":"Resource was not found, check response message"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Create a Portal cross-launch URL for a user","tags":["User Management"]}},"/api/direct/v2/webhooks":{"get":{"description":"List webhook subscriptions for the authenticated account.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookListResponse"}}},"description":"Webhook subscriptions for the authenticated account"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"List webhook subscriptions","tags":["Webhooks"]},"post":{"description":"Create a webhook subscription for lead, call, and message events.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreateRequest"}}},"description":"Webhook configuration payload","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreateResponse"}}},"description":"The created webhook resource"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Create a new webhook","tags":["Webhooks"]}},"/api/direct/v2/webhooks/{webhook_id}":{"delete":{"description":"Delete a webhook subscription.","parameters":[{"description":"The webhook ID.","in":"path","name":"webhook_id","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"responses":{"200":{"content":{"application/json":{"schema":{"example":"OK","type":"string"}}},"description":"Webhook deletion result"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Delete an existing webhook","tags":["Webhooks"]},"patch":{"description":"Update mutable webhook fields. This endpoint currently supports status updates only.","parameters":[{"description":"The webhook ID.","in":"path","name":"webhook_id","required":true,"schema":{"oneOf":[{"format":"ObjectId","type":"string"}]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookPatchRequest"}}},"description":"Webhook update payload.","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreateResponse"}}},"description":"The updated webhook resource"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequest"}}},"description":"Invalid request, check response message"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotAuthorized"}}},"description":"Request is not authorized"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}},"description":"Internal server error, check response message"}},"security":[{"bearer-access-token":[]}],"summary":"Update an existing webhook","tags":["Webhooks"]}}}}
