CallRail
32 tools • OpenAPI spec ↗
GETlist_accounts/accountsList all accounts scoped to the provided API key
Request
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| hipaa_account | boolean | No | Filter by HIPAA account status (true or false). |
| sort | string | No | Sort field. Valid values: name |
| order | string | No | Sort order (asc or desc). |
| fields | array | No | Additional response fields to include (e.g. numeric_id). |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_accounts"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_accounts",
"params": {}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"accounts": []
}GETget_account/accounts/:account_idRetrieve a single account by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | array | No | Additional response fields to include (e.g. numeric_id). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_account"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_account",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": "...",
"name": "...",
"outbound_recording_enabled": false,
"hipaa_account": false
}GETlist_calls/accounts/:account_id/callsList all calls in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| date_range | string | No | Filter by date range: recent, today, yesterday, last_7_days, last_30_days, this_month, last_month, this_year, last_year, all_time. |
| start_date | string | No | Filter starting from this date (ISO 8601, e.g. 2016-10-17). Must be used with end_date. |
| end_date | string | No | Filter up to this date (ISO 8601, e.g. 2016-10-17). Must be used with start_date. |
| company_id | string | No | If provided, only return calls to tracking numbers belonging to this company. |
| tracker_id | string | No | If provided, only return calls to this specific tracking number. |
| call_type | string | No | Filter by call type: first_call, missed, voicemails, inbound, or outbound. |
| answer_status | string | No | Filter by answer status: answered, missed, or voicemail. |
| device | string | No | Filter by device type: desktop or mobile. |
| direction | string | No | Filter by call direction: inbound or outbound. |
| lead_status | string | No | Filter by lead status: good_lead, not_a_lead, or not_scored. |
| tags | array | No | Filter by tag IDs. Returns calls tagged with any of the given tags. |
| sort | string | No | Sort field: customer_name, customer_phone_number, duration, start_time, source, customer_city, customer_country, landing_page_url, device_type, answered, first_call, source_name, lead_status, tags. |
| order | string | No | Sort order (asc or desc). |
| search | string | No | Search across: business_phone_number, customer_name, customer_number, note, source, tracking_phone_number. |
| fields | array | No | Additional response fields to include (e.g. utm_source, utm_medium, campaign). |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_calls"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_calls",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/calls Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"calls": []
}GETget_call/accounts/:account_id/calls/:call_idRetrieve a single call by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| call_id | string | Yes | The ID of the call |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | array | No | Additional response fields to include (e.g. utm_source, utm_medium, campaign). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_call"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_call",
"params": {
"account_id": "<account_id>",
"call_id": "<call_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/calls/:call_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"answered": false,
"business_phone_number": null,
"customer_city": "...",
"customer_country": "...",
"customer_name": "...",
"customer_phone_number": "...",
"customer_state": "...",
"direction": "...",
"duration": 0,
"id": "...",
"recording": "...",
"recording_duration": "...",
"recording_player": "...",
"start_time": "...",
"tracking_phone_number": "...",
"voicemail": false,
"agent_email": "..."
}GETsummarize_call_data/accounts/:account_id/calls/summarySummarize call data with optional grouping and filtering by various criteria
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| date_range | string | No | Filter by date range: recent, today, yesterday, last_7_days, last_30_days, this_month, last_month, this_year, last_year, all_time. |
| start_date | string | No | Filter starting from this date (ISO 8601, e.g. 2016-10-17). Must be used with end_date. |
| end_date | string | No | Filter up to this date (ISO 8601, e.g. 2016-10-17). Must be used with start_date. |
| company_id | string | No | If provided, show results for calls to a single Company. |
| group_by | string | No | Group call summary data by specific characteristic. One of source, keywords, campaign, referrer, landing_page, company, city, device, browser, os, call_type, answer_status, lead_status, tracker, ring_to_number, agent. |
| fields | string | No | Comma-separated list of data fields to return: total_calls, missed_calls, answered_calls, first_time_callers, average_duration, total_duration, leads. |
| device | string | No | Show results for a specific device type. One of desktop, mobile, or tablet. |
| min_duration | number | No | Only include summary data for calls over the specified duration (in seconds). |
| max_duration | number | No | Only include summary data for calls under the specified duration (in seconds). |
| tags | string | No | Only return calls that have had the given tag applied. Comma-separated list of tag IDs. |
| tracker_ids | string | No | Only return calls made to specific Trackers. Comma-separated list of Tracker IDs. |
| direction | string | No | Show results for a specific call direction. One of inbound, outbound. |
| answer_status | string | No | Show results for a specific answer status. One of answered, missed, voicemail. |
| first_time_callers | boolean | No | If true, show results for first time callers only. If false, show non-first-time callers. |
| lead_status | string | No | Filter by Lead Status. One of good_lead, not_a_lead, previously_marked_good_lead. |
| agent | number | No | User ID of an agent. If provided, show results for calls to a specific Agent. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "summarize_call_data"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "summarize_call_data",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/calls/summary Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"start_date": "...",
"end_date": "...",
"time_zone": "...",
"total_results": {
"total_calls": 0
},
"grouped_by": "...",
"grouped_results": []
}GETsummarize_call_data_by_time_series/accounts/:account_id/calls/timeseriesSummarize call data grouped by time intervals with optional filtering
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| date_range | string | No | Filter by date range: recent, today, yesterday, last_7_days, last_30_days, this_month, last_month, this_year, last_year, all_time. |
| start_date | string | No | Filter starting from this date (ISO 8601, e.g. 2016-10-17). Must be used with end_date. |
| end_date | string | No | Filter up to this date (ISO 8601, e.g. 2016-10-17). Must be used with start_date. |
| company_id | string | No | If provided, show results for calls to a single Company. |
| fields | string | No | Comma-separated list of data fields to return: total_calls, missed_calls, answered_calls, first_time_callers, average_duration, total_duration, leads. |
| device | string | No | Show results for a specific device type. One of desktop, mobile, or tablet. |
| interval | string | No | Time interval to group response data. One of hour, day, week, month. |
| min_duration | number | No | Only include time series data for calls over the specified duration (in seconds). |
| max_duration | number | No | Only include time series data for calls under the specified duration (in seconds). |
| tags | string | No | Only return calls that have had the given tag applied. Comma-separated list of tag IDs. |
| tracker_ids | string | No | Only return calls made to specific Trackers. Comma-separated list of Tracker IDs. |
| direction | string | No | Show results for a specific call direction. One of inbound, outbound. |
| answer_status | string | No | Show results for a specific answer status. One of answered, missed, voicemail. |
| first_time_callers | boolean | No | If true, show results for first time callers only. If false, show non-first-time callers. |
| lead_status | string | No | Filter by Lead Status. One of good_lead, not_a_lead, previously_marked_good_lead. |
| agent | number | No | User ID of an agent. If provided, show results for calls to a specific Agent. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "summarize_call_data_by_time_series"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "summarize_call_data_by_time_series",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/calls/timeseries Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"start_date": "...",
"end_date": "...",
"time_zone": "...",
"total_results": {
"total_calls": 0,
"missed_calls": 0,
"answered_calls": 0,
"first_time_callers": 0,
"average_duration": 0,
"formatted_average_duration": "...",
"leads": 0
},
"data": []
}GETget_call_recording/accounts/:account_id/calls/:call_id/recordingRetrieve the recording for a single call
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| call_id | string | Yes | The ID of the call |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_call_recording"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_call_recording",
"params": {
"account_id": "<account_id>",
"call_id": "<call_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/calls/:call_id/recording Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"url": "..."
}GETlist_companies/accounts/:account_id/companiesList all companies in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| sort | string | No | Sort field. Valid values: name. |
| order | string | No | Sort order (asc or desc). |
| search | string | No | Search across: name. |
| fields | array | No | Additional response fields to include (e.g. verified_caller_ids). |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_companies"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_companies",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/companies Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"companies": []
}GETget_company/accounts/:account_id/companies/:company_idRetrieve a single company by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| company_id | string | Yes | The ID of the company |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | array | No | Additional response fields to include (e.g. verified_caller_ids). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_company"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_company",
"params": {
"account_id": "<account_id>",
"company_id": "<company_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/companies/:company_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": "...",
"name": "...",
"status": "...",
"time_zone": "...",
"created_at": "...",
"disabled_at": null,
"dni_active": false,
"script_url": "...",
"callscore_enabled": false,
"lead_scoring_enabled": false,
"swap_exclude_jquery": null,
"swap_ppc_override": null,
"swap_landing_override": null,
"swap_cookie_duration": 0,
"swap_cookie_duration_unit": "...",
"callscribe_enabled": false,
"keyword_spotting_enabled": false,
"form_capture": false
}GETlist_form_submissions/accounts/:account_id/form-submissionsList all form submissions in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| date_range | string | No | Filter by date range: recent, today, yesterday, last_7_days, last_30_days, this_month, last_month, this_year, last_year, all_time. |
| start_date | string | No | Filter starting from this date (ISO 8601, e.g. 2016-10-17). Must be used with end_date. |
| end_date | string | No | Filter up to this date (ISO 8601, e.g. 2016-10-17). Must be used with start_date. |
| company_id | string | No | Filter by company ID. |
| person_lead | string | No | Set to true to return only form submissions with an associated lead. |
| lead_status | string | No | Filter by lead status: good_lead, not_a_lead, or not_scored. |
| tags | array | No | Filter by tag IDs. Returns forms tagged with any of the given tags. |
| sort | string | No | Sort field. Valid values: created_at, submitted_at, form_url. |
| order | string | No | Sort order (asc or desc). |
| fields | array | No | Additional response fields to include (e.g. utm_source, utm_medium, campaign). |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_form_submissions"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_form_submissions",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/form-submissions Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"form_submissions": []
}GETsummarize_form_data/accounts/:account_id/form-submissions/summarySummarize form submission data with optional grouping and filtering
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| date_range | string | No | Filter by date range: recent, today, yesterday, last_7_days, last_30_days, this_month, last_month, this_year, last_year, all_time. |
| start_date | string | No | Filter starting from this date (ISO 8601, e.g. 2016-10-17). Must be used with end_date. |
| end_date | string | No | Filter up to this date (ISO 8601, e.g. 2016-10-17). Must be used with start_date. |
| company_id | string | No | If provided, show results for forms to a single Company. |
| group_by | string | No | Group form summary data by specific characteristic. One of source, keywords, campaign, referrer, landing_page, company. |
| fields | string | No | Comma-separated list of data fields to return: total_forms, first_time_forms, leads. |
| tags | string | No | Only return forms that have had the given tag applied. Comma-separated list of tag IDs. |
| custom_form_ids | string | No | Only return forms made to specific custom forms. Comma-separated list of IDs. |
| form_URL | string | No | The URL the form was submitted to. |
| lead_status | string | No | Filter by Lead Status. One of good_lead, not_a_lead, previously_marked_good_lead. |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "summarize_form_data"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "summarize_form_data",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/form-submissions/summary Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"start_date": "...",
"end_date": "...",
"time_zone": "...",
"total_results": {
"total_forms": 0,
"first_forms": 0,
"leads": 0
},
"grouped_by": "...",
"grouped_results": []
}GETlist_integrations/accounts/:account_id/integrationsList all integrations in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company_id | string | No | Ensures results contain integrations belonging to a single company. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_integrations"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_integrations",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/integrations Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"integrations": []
}GETget_integration/accounts/:account_id/integrations/:integration_idRetrieve a single integration by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| integration_id | string | Yes | The ID of the integration |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_integration"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_integration",
"params": {
"account_id": "<account_id>",
"integration_id": "<integration_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/integrations/:integration_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETlist_integration_filters/accounts/:account_id/integration-filtersList all integration filters in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company_id | string | No | Ensures results contain integration filters belonging to a single company. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_integration_filters"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_integration_filters",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/integration-filters Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"integration_criteria": []
}GETget_integration_filter/accounts/:account_id/integration-filters/:integration_triggers_idRetrieve a single integration filter by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| integration_triggers_id | string | Yes | The ID of the integration filter |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_integration_filter"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_integration_filter",
"params": {
"account_id": "<account_id>",
"integration_triggers_id": "<integration_triggers_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/integration-filters/:integration_triggers_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETlist_notifications/accounts/:account_id/notificationsList all notifications in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_notifications"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_notifications",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/notifications Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"notifications": []
}GETlist_outbound_caller_ids/accounts/:account_id/caller-idsList all outbound caller IDs in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company_id | string | No | If provided, only the caller IDs belonging to this company will be returned. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_outbound_caller_ids"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_outbound_caller_ids",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/caller-ids Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"caller_ids": []
}GETget_outbound_caller_id/accounts/:account_id/caller-ids/:caller_ids_idRetrieve a single outbound caller ID by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| caller_ids_id | string | Yes | The ID of the outbound caller ID |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_outbound_caller_id"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_outbound_caller_id",
"params": {
"account_id": "<account_id>",
"caller_ids_id": "<caller_ids_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/caller-ids/:caller_ids_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETget_page_views_for_a_call/accounts/:account_id/calls/:call_id/page-viewsRetrieve all page views associated with a specific call
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| call_id | string | Yes | The ID of the call |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_page_views_for_a_call"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_page_views_for_a_call",
"params": {
"account_id": "<account_id>",
"call_id": "<call_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/calls/:call_id/page-views Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"page_views": []
}GETlist_sms_threads/accounts/:account_id/sms-threadsList all SMS threads in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| date_range | string | No | Filter by date range: recent, today, yesterday, last_7_days, last_30_days, this_month, last_month, this_year, last_year, all_time. |
| start_date | string | No | Filter starting from this date (ISO 8601, e.g. 2016-10-17). Must be used with end_date. |
| end_date | string | No | Filter up to this date (ISO 8601, e.g. 2016-10-17). Must be used with start_date. |
| company_id | string | No | Limit response to threads belonging to a single company. |
| search | string | No | Search threads by customer phone number, customer name, or tag name. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_sms_threads"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_sms_threads",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/sms-threads Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"sms_threads": []
}GETget_sms_thread/accounts/:account_id/sms-threads/:thread_idRetrieve a single SMS thread by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| thread_id | string | Yes | The ID of the SMS thread |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| with_msg_errors | boolean | No | If true, includes error details for messages that failed. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | number | No | Page number to retrieve (default: 1). |
| per_page | number | No | Number of messages per page (default: 100, max: 100). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_sms_thread"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_sms_thread",
"params": {
"account_id": "<account_id>",
"thread_id": "<thread_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/sms-threads/:thread_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"tags": []
}GETlist_summary_email_subscriptions/accounts/:account_id/summary-emailsList all summary email subscriptions in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| frequency | string | No | If provided, only return summary email records configured for the specified frequency. Comma-separated list of: daily, weekly, monthly. |
| company_id | string | No | If provided, only return summary emails for this company. |
| user_id | string | No | If provided, only return summary email records for this user. |
| string | No | If provided, only return summary email records for this email address. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_summary_email_subscriptions"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_summary_email_subscriptions",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/summary-emails Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"summary_emails": []
}GETget_summary_email_subscription/accounts/:account_id/summary-emails/:summary_email_idRetrieve a single summary email subscription by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| summary_email_id | string | Yes | The ID of the summary email subscription |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_summary_email_subscription"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_summary_email_subscription",
"params": {
"account_id": "<account_id>",
"summary_email_id": "<summary_email_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/summary-emails/:summary_email_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": "...",
"scope": {
"id": "...",
"type": "...",
"name": "..."
},
"frequency": [],
"config": {
"summary_statistics": false,
"top_sources": false,
"top_keywords": false,
"call_log": false
},
"user": {
"id": "...",
"name": "...",
"email": "..."
}
}GETlist_conversations/accounts/:account_id/conversationsList all text message conversations in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| date_range | string | No | Filter by date range: recent, today, yesterday, last_7_days, last_30_days, this_month, last_month, this_year, last_year, all_time. |
| start_date | string | No | Filter starting from this date (ISO 8601, e.g. 2016-10-17). Must be used with end_date. |
| end_date | string | No | Filter up to this date (ISO 8601, e.g. 2016-10-17). Must be used with start_date. |
| company_id | string | No | Limit response to conversations belonging to a single company. |
| search | string | No | Search across: customer_phone_number, customer_name. |
| fields | array | No | Additional response fields to include (e.g. lead_status, source). |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_conversations"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_conversations",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/conversations Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"conversations": []
}GETget_text_conversation/accounts/:account_id/conversations/:conversation_idRetrieve a single text message conversation by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| conversation_id | string | Yes | The ID of the conversation |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | array | No | Additional response fields to include (e.g. lead_status, source). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_text_conversation"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_text_conversation",
"params": {
"account_id": "<account_id>",
"conversation_id": "<conversation_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/conversations/:conversation_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
// Raw JSON from upstream API
GETlist_message_flows/accounts/:account_id/message-flowsList all message flows in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company_id | string | No | Unique identifier for the company that owns the message flows. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_message_flows"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_message_flows",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/message-flows Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"message-flows": []
}GETget_message_flow/accounts/:account_id/message-flows/:message_flow_idRetrieve a single message flow by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| message_flow_id | string | Yes | The ID of the message flow |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_message_flow"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_message_flow",
"params": {
"account_id": "<account_id>",
"message_flow_id": "<message_flow_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/message-flows/:message_flow_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": "...",
"name": "...",
"updated_at": "...",
"tracker_ids": [],
"initial_step_id": "...",
"steps": {
"MFS6fa29e4c8b1347fcbf2e8d9731b7061d": {
"id": "...",
"type": "...",
"initial_step": false,
"next_step_id": "...",
"branches": []
},
"MFS0dcb13a29ae64f14a8c9eaf4e932b5d7": {
"id": "...",
"type": "...",
"initial_step": false,
"next_step_id": "...",
"message": "...",
"first_text": false
},
"MFSab81c45d290947e1b6ec18f0cd3a9b23": {
"id": "...",
"type": "...",
"initial_step": false,
"next_step_id": null,
"tag_ids": []
}
}
}GETlist_trackers/accounts/:account_id/trackersList all trackers (tracking numbers) in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company_id | string | No | Limit response to trackers belonging to a single company. |
| sort | string | No | Sort field. Valid values: name. |
| order | string | No | Sort order (asc or desc). |
| search | string | No | Search across: name. |
| fields | array | No | Additional response fields to include (e.g. campaign_name, swap_targets). |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_trackers"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_trackers",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/trackers Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"trackers": []
}GETget_tracker/accounts/:account_id/trackers/:tracker_idRetrieve a single tracker by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| tracker_id | string | Yes | The ID of the tracker |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| fields | array | No | Additional response fields to include (e.g. campaign_name, swap_targets). |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_tracker"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_tracker",
"params": {
"account_id": "<account_id>",
"tracker_id": "<tracker_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/trackers/:tracker_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"id": "...",
"name": "...",
"type": "...",
"status": "...",
"destination_number": "...",
"tracking_numbers": [],
"whisper_message": "...",
"sms_enabled": false,
"sms_supported": false,
"company": {
"id": "...",
"name": "..."
},
"call_flow": {
"type": "...",
"recording_enabled": false,
"destination_number": "...",
"greeting_text": "..."
},
"source": {
"type": "...",
"search_engine": "...",
"search_type": "..."
},
"created_at": "...",
"disabled_at": null
}GETlist_users/accounts/:account_id/usersList all users in the target account
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| company_id | string | No | Limit response to users belonging to a single company. |
| sort | string | No | Sort field. Valid values: email, created_at. |
| order | string | No | Sort order (asc or desc). |
| search | string | No | Search across: first_name, last_name, email. |
Pagination
| Name | Type | Required | Description |
|---|---|---|---|
| page | string | No | Page number (default: 1) |
| per_page | string | No | Results per page (default: 25, max: 250) |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "list_users"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "list_users",
"params": {
"account_id": "<account_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/users Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"page": 0,
"per_page": 0,
"total_pages": 0,
"total_records": 0,
"users": []
}GETget_user/accounts/:account_id/users/:user_idRetrieve a single user by ID
Request
Path Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| account_id | string | Yes | The ID of the account |
| user_id | string | Yes | The ID of the user |
Response
Examples
1. Describe method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe_method",
"arguments": {
"service": "callrail",
"method": "get_user"
}
}
}2. Call method
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "call_callrail",
"arguments": {
"method": "get_user",
"params": {
"account_id": "<account_id>",
"user_id": "<user_id>"
}
}
}
}Request
GET https://app.ferrule.io/api/v1/callrail/accounts/:account_id/users/:user_id Authorization: Bearer <your-api-key> Content-Type: application/json
Response
{
"email": "...",
"id": "...",
"created_at": "...",
"role": "...",
"first_name": "...",
"last_name": "...",
"name": "...",
"companies": []
}