@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api CallFire API Documentation
@base https://api.callfire.com/v2
@version V2
@auth basic
@endpoints 123
@hint download_for_search
@toc calls(21), campaigns(10), contacts(23), keywords(9), me(13), media(6), numbers(9), orders(4), reports(1), texts(20), webhooks(7)

@group calls
@endpoint GET /calls
@optional {fields: any, limit: any, offset: any, id: any, campaignId: any, batchId: any, fromNumber: any, toNumber: any, label: any, states: any, results: any, inbound: any, intervalBegin: any, intervalEnd: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls
@optional {fields: any, campaignId: any, defaultLiveMessage: any, defaultMachineMessage: any, defaultLiveMessageSoundId: any, defaultMachineMessageSoundId: any, defaultVoice: any, strictValidation: any, body: [map]}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/broadcasts
@optional {fields: any, limit: any, offset: any, label: any, name: any, running: any, scheduled: any, intervalBegin: any, intervalEnd: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls/broadcasts
@optional {start: any, strictValidation: any, body: map}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/broadcasts/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /calls/broadcasts/{id}
@required {id: any}
@optional {strictValidation: any, body: map}
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls/broadcasts/{id}/archive
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/broadcasts/{id}/batches
@required {id: any}
@optional {fields: any, limit: any, offset: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls/broadcasts/{id}/batches
@required {id: any}
@optional {strictValidation: any, body: map}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/broadcasts/{id}/calls
@required {id: any}
@optional {batchId: any, fields: any, limit: any, offset: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls/broadcasts/{id}/recipients
@required {id: any}
@optional {fields: any, strictValidation: any, body: [map]}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls/broadcasts/{id}/start
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/broadcasts/{id}/stats
@required {id: any}
@optional {fields: any, begin: any, end: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls/broadcasts/{id}/stop
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint POST /calls/broadcasts/{id}/toggleRecipientsStatus
@required {id: any}
@optional {enable: any, body: [map]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/recordings/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/recordings/{id}.mp3
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/{id}/recordings
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/{id}/recordings/{name}
@required {id: any, name: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /calls/{id}/recordings/{name}.mp3
@required {id: any, name: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group campaigns
@endpoint GET /campaigns/batches/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /campaigns/batches/{id}
@required {id: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint GET /campaigns/sounds
@optional {limit: any, offset: any, filter: any, includeArchived: any, includePending: any, includeScrubbed: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /campaigns/sounds/calls
@optional {fields: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /campaigns/sounds/files
@required {file: any}
@optional {fields: any, name: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /campaigns/sounds/tts
@optional {fields: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /campaigns/sounds/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /campaigns/sounds/{id}
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /campaigns/sounds/{id}.mp3
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /campaigns/sounds/{id}.wav
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group contacts
@endpoint GET /contacts
@optional {fields: any, limit: any, offset: any, id: any, number: any, contactListId: any, propertyName: any, propertyValue: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /contacts
@optional {body: [map]}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/dncs
@optional {fields: any, limit: any, offset: any, prefix: any, campaignId: any, source: any, call: any, text: any, inboundCall: any, inboundText: any, number: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /contacts/dncs
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /contacts/dncs/sources/{source}
@required {source: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/dncs/universals/{toNumber}
@required {toNumber: any}
@optional {fromNumber: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/dncs/{number}
@required {number: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /contacts/dncs/{number}
@required {number: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /contacts/dncs/{number}
@required {number: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/lists
@optional {fields: any, limit: any, offset: any, name: any, exactMatch: any, contactCount: any, orderBy: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /contacts/lists
@optional {body: map, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /contacts/lists/upload
@required {file: any}
@optional {name: any, useCustomFields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/lists/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /contacts/lists/{id}
@required {id: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /contacts/lists/{id}
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/lists/{id}/items
@required {id: any}
@optional {fields: any, limit: any, offset: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /contacts/lists/{id}/items
@required {id: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /contacts/lists/{id}/items
@required {id: any}
@optional {contactId: any}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /contacts/lists/{id}/items/{contactId}
@required {id: any, contactId: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /contacts/{id}
@required {id: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /contacts/{id}
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /contacts/{id}/history
@required {id: any}
@optional {limit: any, offset: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group keywords
@endpoint GET /keywords
@optional {keywords: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /keywords/leases
@optional {limit: any, offset: any, filter: any, labelName: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /keywords/leases/configs
@optional {limit: any, offset: any, filter: any, labelName: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /keywords/leases/configs/{keyword}
@required {keyword: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /keywords/leases/configs/{keyword}
@required {keyword: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint GET /keywords/leases/id/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /keywords/leases/{keyword}
@required {keyword: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /keywords/leases/{keyword}
@required {keyword: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint GET /keywords/{keyword}/available
@required {keyword: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group me
@endpoint GET /me/account
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /me/api/credentials
@optional {name: any, fields: any, limit: any, offset: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /me/api/credentials
@optional {body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /me/api/credentials/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /me/api/credentials/{id}
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint POST /me/api/credentials/{id}/disable
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint POST /me/api/credentials/{id}/enable
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /me/billing/credit-usage
@optional {intervalBegin: any, intervalEnd: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /me/billing/credit-usage/grouped/{rollupBinType}
@required {rollupBinType: any}
@optional {intervalBegin: any, intervalEnd: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /me/billing/plan-usage
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /me/callerids
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /me/callerids/{callerid}
@required {callerid: any}
@errors {400, 401, 403, 404, 500}

@endpoint POST /me/callerids/{callerid}/verification-code
@required {callerid: any}
@optional {body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group media
@endpoint GET /media
@optional {limit: any, offset: any, filter: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /media
@required {file: any}
@optional {name: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /media/public/{key}.{extension}
@required {key: any, extension: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /media/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /media/{id}.{extension}
@required {id: any, extension: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /media/{id}/file
@required {id: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group numbers
@endpoint GET /numbers/leases
@optional {limit: any, offset: any, prefix: any, city: any, state: any, zipcode: any, labelName: any, tollFree: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /numbers/leases/configs
@optional {limit: any, offset: any, prefix: any, city: any, state: any, zipcode: any, labelName: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /numbers/leases/configs/{number}
@required {number: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /numbers/leases/configs/{number}
@required {number: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint GET /numbers/leases/{number}
@required {number: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /numbers/leases/{number}
@required {number: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint GET /numbers/local
@optional {limit: any, prefix: any, city: any, state: any, zipcode: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /numbers/regions
@optional {limit: any, offset: any, prefix: any, city: any, cityPrefix: any, state: any, zipcode: any, country: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /numbers/tollfree
@optional {pattern: any, limit: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group orders
@endpoint GET /orders
@optional {limit: any, offset: any, fields: any, status: any, intervalBegin: any, intervalEnd: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /orders/keywords
@optional {body: map, fields: any}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint POST /orders/numbers
@optional {body: map, fields: any}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint GET /orders/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group reports
@endpoint GET /reports/delivery
@optional {startDate: any, endDate: any, limit: any, offset: any, campaignId: any, fromNumber: any, toNumber: any, deliveryCategory: any, deliveryState: any, carrier: any, messageText: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group texts
@endpoint GET /texts
@optional {id: any, campaignId: any, batchId: any, fromNumber: any, toNumber: any, label: any, states: any, results: any, inbound: any, intervalBegin: any, intervalEnd: any, limit: any, offset: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts
@optional {fields: any, campaignId: any, defaultMessage: any, strictValidation: any, body: [map]}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/auto-replys
@optional {fields: any, limit: any, offset: any, number: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/auto-replys
@optional {body: map}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/auto-replys/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /texts/auto-replys/{id}
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/broadcasts
@optional {name: any, label: any, running: any, scheduled: any, intervalBegin: any, intervalEnd: any, limit: any, offset: any, fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/broadcasts
@optional {start: any, strictValidation: any, body: map}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/broadcasts/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /texts/broadcasts/{id}
@required {id: any}
@optional {strictValidation: any, body: map}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/broadcasts/{id}/archive
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/broadcasts/{id}/batches
@required {id: any}
@optional {fields: any, limit: any, offset: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/broadcasts/{id}/batches
@required {id: any}
@optional {strictValidation: any, body: map}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/broadcasts/{id}/recipients
@required {id: any}
@optional {fields: any, strictValidation: any, sendImmediately: any, body: [map]}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/broadcasts/{id}/start
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/broadcasts/{id}/stats
@required {id: any}
@optional {fields: any, begin: any, end: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/broadcasts/{id}/stop
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/broadcasts/{id}/texts
@required {id: any}
@optional {batchId: any, fields: any, limit: any, offset: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /texts/broadcasts/{id}/toggleRecipientsStatus
@required {id: any}
@optional {enable: any, body: [map]}
@errors {400, 401, 403, 404, 500}

@endpoint GET /texts/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endgroup

@group webhooks
@endpoint GET /webhooks
@optional {fields: any, limit: any, offset: any, name: any, resource: any, event: any, callback: any, enabled: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /webhooks
@optional {body: map}
@returns(201)
@errors {400, 401, 403, 404, 500}

@endpoint GET /webhooks/resources
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /webhooks/resources/{resource}
@required {resource: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /webhooks/{id}
@required {id: any}
@optional {fields: any}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /webhooks/{id}
@required {id: any}
@optional {body: map}
@errors {400, 401, 403, 404, 500}

@endpoint DELETE /webhooks/{id}
@required {id: any}
@errors {400, 401, 403, 404, 500}

@endgroup

@end
