{"openapi":"3.1.0","info":{"title":"ReplyKing API","version":"1","description":"CRM, bookings and payment offers of one ReplyKing workspace. Create a key in Integrations → API keys. MCP server: https://www.replyking.app/api/v1/mcp."},"servers":[{"url":"https://www.replyking.app/api/v1"}],"security":[{"apiKey":[]}],"paths":{"/me":{"get":{"summary":"The workspace, plan and permissions behind this key","operationId":"me","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/contacts":{"get":{"summary":"List contacts","operationId":"list_contacts","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"post":{"summary":"Create one in contacts","operationId":"create_contacts","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/contacts"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/contacts/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"Get one from contacts","operationId":"get_contacts","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"404":{"description":"Not found"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"patch":{"summary":"Update one in contacts","operationId":"update_contacts","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/contacts"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"delete":{"summary":"Delete one from contacts","operationId":"delete_contacts","responses":{"204":{"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/companies":{"get":{"summary":"List companies","operationId":"list_companies","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"post":{"summary":"Create one in companies","operationId":"create_companies","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/companies"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/companies/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"Get one from companies","operationId":"get_companies","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"404":{"description":"Not found"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"patch":{"summary":"Update one in companies","operationId":"update_companies","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/companies"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"delete":{"summary":"Delete one from companies","operationId":"delete_companies","responses":{"204":{"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/leads":{"get":{"summary":"List leads","operationId":"list_leads","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"post":{"summary":"Create one in leads","operationId":"create_leads","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/leads"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/leads/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"Get one from leads","operationId":"get_leads","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"404":{"description":"Not found"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"patch":{"summary":"Update one in leads","operationId":"update_leads","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/leads"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"delete":{"summary":"Delete one from leads","operationId":"delete_leads","responses":{"204":{"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/deals":{"get":{"summary":"List deals","operationId":"list_deals","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"post":{"summary":"Create one in deals","operationId":"create_deals","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/deals"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/deals/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"Get one from deals","operationId":"get_deals","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"404":{"description":"Not found"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"patch":{"summary":"Update one in deals","operationId":"update_deals","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/deals"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"delete":{"summary":"Delete one from deals","operationId":"delete_deals","responses":{"204":{"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/tasks":{"get":{"summary":"List tasks","operationId":"list_tasks","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"post":{"summary":"Create one in tasks","operationId":"create_tasks","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tasks"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/tasks/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"Get one from tasks","operationId":"get_tasks","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"404":{"description":"Not found"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"patch":{"summary":"Update one in tasks","operationId":"update_tasks","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/tasks"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"delete":{"summary":"Delete one from tasks","operationId":"delete_tasks","responses":{"204":{"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/services":{"get":{"summary":"List services","operationId":"list_services","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"post":{"summary":"Create one in services","operationId":"create_services","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/services"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/services/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"Get one from services","operationId":"get_services","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"404":{"description":"Not found"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"patch":{"summary":"Update one in services","operationId":"update_services","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/services"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"delete":{"summary":"Delete one from services","operationId":"delete_services","responses":{"204":{"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/offers":{"get":{"summary":"List offers","operationId":"list_offers","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"post":{"summary":"Create one in offers","operationId":"create_offers","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/offers"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/offers/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"get":{"summary":"Get one from offers","operationId":"get_offers","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"404":{"description":"Not found"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"patch":{"summary":"Update one in offers","operationId":"update_offers","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/offers"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}},"delete":{"summary":"Delete one from offers","operationId":"delete_offers","responses":{"204":{"description":"Deleted"},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}},"/bookings":{"get":{"summary":"List bookings","operationId":"list_bookings","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"q","in":"query","schema":{"type":"string"},"description":"Search"},{"name":"sort","in":"query","schema":{"type":"string"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}},"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"}}}}}},"401":{"description":"Missing or invalid API key"},"402":{"description":"The workspace's plan doesn't include API access"},"429":{"description":"Rate limited. The plan sets how many a minute, and the body names the number and when to retry"}}}}},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"contacts":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":80},"lastName":{"type":"string","maxLength":80},"email":{"type":"string","maxLength":200,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone":{"type":"string","maxLength":40},"companyId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"ownerId":{"type":"string"},"source":{"type":"string","enum":["manual","website","whatsapp","instagram","facebook","email","store","referral","ads","import","other"]},"lifecycleStage":{"default":"new","type":"string","enum":["new","contacted","qualified","proposal","won","lost"]},"tags":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","maxLength":40}},"country":{"type":"string","maxLength":2},"language":{"type":"string","maxLength":40},"timeZone":{"type":"string","maxLength":64},"channels":{"type":"object","properties":{"instagram":{"type":"object","properties":{"username":{"type":"string"}}},"whatsapp":{"type":"object","properties":{"phone":{"type":"string"},"optIn":{"type":"boolean"}}}}}},"required":["firstName"]},"companies":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"website":{"type":"string","maxLength":200},"industry":{"type":"string","maxLength":80},"email":{"type":"string","maxLength":200,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone":{"type":"string","maxLength":40},"address":{"type":"string","maxLength":300},"ownerId":{"type":"string"}},"required":["name"]},"leads":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"contactId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"firstName":{"type":"string","maxLength":80},"lastName":{"type":"string","maxLength":80},"email":{"type":"string","maxLength":200,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"phone":{"type":"string","maxLength":40},"source":{"type":"string","enum":["manual","website","whatsapp","instagram","facebook","email","store","referral","ads","import","other"]},"status":{"default":"new","type":"string","enum":["new","contacted","qualified","unqualified","converted"]},"score":{"type":"integer","minimum":0,"maximum":100},"estimatedValue":{"type":"number","minimum":0},"ownerId":{"type":"string"},"nextFollowUpAt":{}}},"deals":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"contactId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"companyId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"pipelineId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"stageId":{"type":"string"},"value":{"default":0,"type":"number","minimum":0},"currency":{"type":"string","enum":["INR","USD","EUR","GBP","AED","SGD","AUD","CAD"]},"expectedCloseDate":{},"ownerId":{"type":"string"},"source":{"type":"string","enum":["manual","website","whatsapp","instagram","facebook","email","store","referral","ads","import","other"]}},"required":["name"]},"tasks":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"type":{"default":"follow_up","type":"string","enum":["call","whatsapp","email","meeting","follow_up","custom"]},"status":{"default":"open","type":"string","enum":["open","done"]},"dueAt":{},"assigneeId":{"type":"string"},"relatedType":{"type":"string","enum":["contact","company","lead","deal","task"]},"relatedId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"conversationId":{"type":"string","pattern":"^[a-f0-9]{24}$"},"notes":{"type":"string","maxLength":2000}},"required":["title"]},"services":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":1000},"durationMin":{"type":"integer","minimum":5,"maximum":480},"bufferBeforeMin":{"default":0,"type":"integer","minimum":0,"maximum":240},"bufferAfterMin":{"default":0,"type":"integer","minimum":0,"maximum":240},"slotIntervalMin":{"type":"integer","minimum":5,"maximum":480},"capacityPerSlot":{"default":1,"type":"integer","minimum":1,"maximum":200},"priceMinor":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","enum":["INR","USD","EUR","GBP","AED","SGD","AUD","CAD"]},"meeting":{"default":"in_person","type":"string","enum":["google_meet","teams","zoom","link","phone","in_person"]},"location":{"type":"string","maxLength":300},"active":{"default":true,"type":"boolean"},"payment":{"default":"none","type":"string","enum":["none","deposit","full"]},"depositMinor":{"type":"integer","minimum":1,"maximum":9007199254740991},"refundPolicy":{"default":"cutoff","type":"string","enum":["full","cutoff","none"]},"refundCutoffHours":{"default":24,"type":"integer","minimum":1,"maximum":720},"reminderOffsetsMin":{"default":[],"maxItems":5,"type":"array","items":{"type":"integer","minimum":5,"maximum":43200}}},"required":["name","durationMin"]},"offers":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"type":{"type":"string","enum":["digital","service","deposit","product"]},"priceMinor":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"currency":{"type":"string","enum":["INR","USD","EUR","GBP","AED","SGD","AUD","CAD"]},"description":{"type":"string","maxLength":1000},"deliveryUrl":{"type":"string","maxLength":500,"format":"uri"},"active":{"default":true,"type":"boolean"}},"required":["name","type","priceMinor","currency"]}}}}