{"openapi":"3.1.0","info":{"title":"Showday API","version":"1.0.0","description":"AI voice calling for your leads. Send leads in; Showday's voice agent calls them under your consent, DND and calling-hour rules; read results back. Guide: https://api.voice.oliotesting.in/docs"},"servers":[{"url":"https://api.voice.oliotesting.in"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"LeadInput":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","example":"9820012345","description":"Indian mobile number"},"name":{"type":"string","example":"Anil Mehta"},"lead_id":{"type":"string","example":"LG-1001","description":"Your id; the same id updates the lead. Default: the phone number."},"language":{"type":"string","example":"hi","description":"One of en, hi, mr, ta, te, kn, bn, gu, ml, pa, or a language name"},"city":{"type":"string"},"product":{"type":"string"},"consent":{"type":"string","enum":["yes","no"]},"dnd_status":{"type":"string","description":"\"dnd\" adds the lead without calling it"},"call_after":{"type":"string","example":"2026-10-25 11:00"},"priority":{"type":"integer"},"tags":{"type":"string"},"notes":{"type":"string"}},"additionalProperties":{"type":"string","description":"Account-specific fields; see GET /intake/columns"}}}},"paths":{"/intake/leads":{"post":{"summary":"Send leads to be called","description":"Key scope: leads","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/LeadInput"},{"type":"array","maxItems":200,"items":{"$ref":"#/components/schemas/LeadInput"}},{"type":"object","required":["leads"],"properties":{"leads":{"type":"array","maxItems":200,"items":{"$ref":"#/components/schemas/LeadInput"}},"hold":{"type":"boolean","description":"Add without calling until Release"}}}]}}}}}},"/intake/columns":{"get":{"summary":"Columns this account accepts","description":"Key scope: leads","responses":{"200":{"description":"OK"}}}},"/intake/template.csv":{"get":{"summary":"Download the CSV template","description":"Key scope: leads","responses":{"200":{"description":"OK"}}}},"/intake/check":{"post":{"summary":"Check a .csv/.xlsx file without importing (multipart, field file)","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/intake/import":{"post":{"summary":"Import the ready rows of a .csv/.xlsx file (multipart, field file; hold=true optional)","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/leads":{"get":{"summary":"List leads","description":"Key scope: leads","responses":{"200":{"description":"OK"}},"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Phone, name or lead_id"},{"name":"callStatus","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values"},{"name":"journeyState","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated values"},{"name":"disposition","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"campaignId","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"createdFrom","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"createdTo","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"page","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"pageSize","in":"query","required":false,"schema":{"type":"string"},"description":""}]}},"/leads/{leadId}":{"get":{"summary":"One lead with its calls","description":"Key scope: leads","responses":{"200":{"description":"OK"}},"parameters":[{"name":"leadId","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/leads/do-not-call":{"post":{"summary":"Mark leads do-not-call","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["leadIds"],"properties":{"leadIds":{"type":"array","items":{"type":"string"}},"note":{"type":"string"}}}}}}}},"/leads/approve":{"post":{"summary":"Approve leads","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["leadIds"],"properties":{"leadIds":{"type":"array","items":{"type":"string"}}}}}}}}},"/leads/reject":{"post":{"summary":"Reject leads","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["leadIds"],"properties":{"leadIds":{"type":"array","items":{"type":"string"}}}}}}}}},"/leads/hold":{"post":{"summary":"Hold leads","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["leadIds"],"properties":{"leadIds":{"type":"array","items":{"type":"string"}}}}}}}}},"/leads/bucket":{"post":{"summary":"File leads (archive/testing) or restore (null)","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["leadIds"],"properties":{"leadIds":{"type":"array","items":{"type":"string"}},"bucket":{"type":["string","null"],"enum":["archive","testing",null]}}}}}}}},"/calls":{"get":{"summary":"Call log","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"pageSize","in":"query","required":false,"schema":{"type":"string"},"description":""},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":""}]}},"/calls/live":{"get":{"summary":"Calls in progress","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/calls/export.csv":{"get":{"summary":"Call log as CSV","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/calls/{attemptId}":{"get":{"summary":"One call: result, transcript, summary","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"attemptId","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/calls/instant":{"post":{"summary":"Call one lead now (all calling rules apply)","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["leadId"],"properties":{"leadId":{"type":"string"}}}}}}}},"/calls/schedule":{"post":{"summary":"Call leads at a time","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["leadIds","at"],"properties":{"leadIds":{"type":"array","items":{"type":"string"}},"at":{"type":"string","format":"date-time"}}}}}}}},"/journey/leads/{leadId}/start":{"post":{"summary":"Start calling a lead that has not started","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"leadId","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/journey/leads/{leadId}/timeline":{"get":{"summary":"Everything that happened to a lead, oldest first","description":"Key scope: leads","responses":{"200":{"description":"OK"}},"parameters":[{"name":"leadId","in":"path","required":true,"schema":{"type":"string"},"description":""},{"name":"limit","in":"query","required":false,"schema":{"type":"string"},"description":"Up to 500, default 200"}]}},"/journey/release-held":{"post":{"summary":"Start every held lead","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/journey/visits":{"get":{"summary":"Appointments","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/campaigns":{"get":{"summary":"List campaigns","description":"Key scope: full","responses":{"200":{"description":"OK"}}},"post":{"summary":"Create a campaign","description":"Key scope: full","responses":{"200":{"description":"OK"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"leadIds":{"type":"array","items":{"type":"string"}}}}}}}}},"/campaigns/{id}":{"get":{"summary":"One campaign","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/campaigns/{id}/launch":{"post":{"summary":"Launch now, or at launchAt","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":""}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"launchAt":{"type":"string","format":"date-time"}}}}}}}},"/campaigns/{id}/pause":{"post":{"summary":"Pause","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/campaigns/{id}/resume":{"post":{"summary":"Resume","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/campaigns/{id}/cancel":{"post":{"summary":"Cancel","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/campaigns/{id}/retry":{"post":{"summary":"Retry failed dials","description":"Key scope: full","responses":{"200":{"description":"OK"}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":""}]}},"/dashboard/stats":{"get":{"summary":"Headline numbers","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/analytics/overview":{"get":{"summary":"Analytics","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/analytics/review":{"get":{"summary":"Campaign review","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/gaps":{"get":{"summary":"Questions the bot could not answer","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/billing/wallet":{"get":{"summary":"Balance and usage","description":"Key scope: full","responses":{"200":{"description":"OK"}}}},"/integrations/calling-window":{"get":{"summary":"Calling hours","description":"Key scope: full","responses":{"200":{"description":"OK"}}}}}}