✓ You are viewing API v2 documentation — Base URL: https://yourcrmsupport.com/glu/ Old v1 docs (deprecated): API v1 →

Quickstart — API v2

v2 uses token-based auth. All API requests require an Authorization: Bearer {access_token} header. The Method body field still routes to the correct endpoint.

  1. Call POST /api/v2/auth/token with your api_uId and api_key to receive an access_token (valid 6 hours) and a refresh_token.
  2. Include Authorization: Bearer {access_token} in every subsequent request header.
  3. Send all API calls to POST /api/v2/request with a Method field in the body to select the operation.
  4. When the access_token expires, call POST /api/v2/auth/refresh with your refresh_token to get a new one.
  5. To invalidate all tokens, call POST /api/v2/auth/revoke with the Bearer token you want to revoke.
Auth endpoint: POST https://service.hookscall.com/glu/api/v2/auth/token
API endpoint: POST https://service.hookscall.com/glu/api/v2/request
HTTP method: POST for all endpoints.
Router: the Method body field selects the operation (same as v1).
Auth change from v1: remove api_uId and api_key from request body. Use Authorization: Bearer header instead.

Authentication NEW

POST https://service.hookscall.com/glu/api/v2/auth/token Generate Access Token NEW

Exchange your api_uId and api_key credentials for a short-lived access_token (6 hours) and a long-lived refresh_token. Store the refresh_token securely — it lets you obtain new access tokens without re-entering credentials.

🔒 This is the only endpoint that accepts api_uId + api_key in the request body. All other endpoints require Authorization: Bearer {access_token}.
Request Body
ParameterTypeRequiredDescription
api_uIdstringRequiredYour account user ID
api_keystringRequiredYour account API key
Request
{
  "api_uId": "YOUR_API_UID",
  "api_key": "YOUR_API_KEY"
}
Response 200
{
  "success": true,
  "message": "Token generated successfully.",
  "data": {
    "access_token": "a3f8c2d1e9b047...",
    "refresh_token": "d7e2a1b9c3f048...",
    "expires_in": 21600,
    "token_type": "Bearer"
  }
}
Response 401
{
  "success": false,
  "message": "Invalid api_uId or api_key."
}
curl -X POST https://service.hookscall.com/glu/api/v2/auth/token \
  -H "Content-Type: application/json" \
  -d '{"api_uId": "YOUR_API_UID", "api_key": "YOUR_API_KEY"}'
const res = await fetch("https://service.hookscall.com/glu/api/v2/auth/token", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ api_uId: "YOUR_API_UID", api_key: "YOUR_API_KEY" })
});
const { data } = await res.json();
const { access_token, refresh_token } = data;
import requests
r = requests.post("https://service.hookscall.com/glu/api/v2/auth/token",
    json={"api_uId": "YOUR_API_UID", "api_key": "YOUR_API_KEY"})
token = r.json()["data"]["access_token"]
<?php
$ch = curl_init("https://service.hookscall.com/glu/api/v2/auth/token");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
  CURLOPT_POSTFIELDS => json_encode(["api_uId" => "YOUR_API_UID", "api_key" => "YOUR_API_KEY"]),
  CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
$access_token = $data["data"]["access_token"];
POST https://service.hookscall.com/glu/api/v2/auth/refresh Refresh Access Token NEW

Use your refresh_token to obtain a new access_token without re-entering credentials. The refresh token is long-lived; the new access token is valid for 6 hours.

Request Body
ParameterTypeRequiredDescription
refresh_tokenstringRequiredThe refresh token received from /auth/token
Request
{
  "refresh_token": "abc123def456..."
}
Response 200
{
  "success": true,
  "message": "Token refreshed successfully.",
  "data": {
    "access_token": "b9c3d2e1f0a147...",
    "refresh_token": "e8f1a2b0c4d259...",
    "expires_in": 21600,
    "token_type": "Bearer"
  }
}
Response 401
{
  "success": false,
  "message": "Refresh token is invalid, expired, or already revoked."
}
POST https://service.hookscall.com/glu/api/v2/auth/revoke Revoke Tokens NEW

Immediately invalidates all active tokens for the authenticated account. Use this when a token may have been compromised or when logging out. Requires a valid Bearer token in the Authorization header.

🔒 Requires Authorization: Bearer {access_token} header.
Request Body

No body parameters required.

Response 200
{
  "success": true,
  "message": "All tokens for this account have been revoked."
}
Response 401
{
  "success": false,
  "message": "A valid Bearer token is required to revoke."
}
cURL Example
curl -X POST https://service.hookscall.com/glu/api/v2/auth/revoke \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
POST https://service.hookscall.com/glu/api/v2/request LoginUser

Verify that the access token is valid and that authentication is working.

🔒 Requires Authorization: Bearer {access_token} header.
Request Body
ParameterTypeRequiredDescription
MethodstringRequiredMust be set to LoginUser
Request
curl -X POST https://service.hookscall.com/glu/api/v2/request \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{"Method": "LoginUser"}'
Response 200
{"response": "true", "message": "Successfully Authenticated"}
Response 401
{"response": "false", "message": "Invalid or expired token"}

Tags

POST https://service.hookscall.com/glu/api/v2/request FetchAllTags
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchAllTags
Request
{"Method": "FetchAllTags"}
Success Response
{"response":"true","tag":[{"TagId":"1","TagTitle":"Sample Tag A"}],"message":"There are 1 tags"}
Error Response
{"response":"false","message":"No tag found"}
POST https://service.hookscall.com/glu/api/v2/request AddTag
🔒 Requires Authorization: Bearer {access_token} header. Method: AddTag
Request
{"Method": "AddTag","TagTitle": "Sample Test Tag"}
Success Response
{"response":"true","Added TagId":1,"message":"Tag(Sample Test Tag) has been successfully added"}
Error Response
{"response":"false","message":"Invalid token"}
POST https://service.hookscall.com/glu/api/v2/request UpdateTag
🔒 Requires Authorization: Bearer {access_token} header. Method: UpdateTag
Request
{"Method": "UpdateTag","TagId": "1","UpdateTagTitle": "New Name"}
Success Response
{"response":"true","TagId":"1","UpdateTagTitle":"New Name","message":"Tag has been successfully updated"}
Error Response
{"response":"false","message":"Invalid provided TagId"}

Groups

POST https://service.hookscall.com/glu/api/v2/request FetchAllGroups
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchAllGroups
Request
{"Method": "FetchAllGroups"}
Success Response
{"response":"true","group":[{"GroupId":"1","GroupTitle":"Sample Group A"}],"message":"There are 1 groups"}
Error Response
{"response":"false","message":"No group found"}
POST https://service.hookscall.com/glu/api/v2/request AddGroup
🔒 Requires Authorization: Bearer {access_token} header. Method: AddGroup
Request
{"Method": "AddGroup","GroupTitle": "My Group"}
Success Response
{"response":"true","Added GroupId":1,"message":"Group(My Group) has been successfully added"}
Error Response
{"response":"false","message":"Invalid token"}
POST https://service.hookscall.com/glu/api/v2/request UpdateGroup
🔒 Requires Authorization: Bearer {access_token} header. Method: UpdateGroup
Request
{"Method": "UpdateGroup","GroupId": "1","UpdateGroupTitle": "New Group Name"}
Success Response
{"response":"true","GroupId":"1","UpdateGroupTitle":"New Group Name","message":"Group has been successfully updated"}
Error Response
{"response":"false","message":"Invalid provided GroupId"}
POST https://service.hookscall.com/glu/api/v2/request DeleteGroup
🔒 Requires Authorization: Bearer {access_token} header. Method: DeleteGroup
Request
{"Method": "DeleteGroup","GroupId": "1"}
Success Response
{"response":"true","GroupId":"1","message":"Group has been successfully deleted"}
Error Response
{"response":"false","message":"Invalid Provided GroupId"}

Custom Fields

POST https://service.hookscall.com/glu/api/v2/request AddCustomField
🔒 Requires Authorization: Bearer {access_token} header. Method: AddcustomField
Request
{"Method": "AddcustomField","FieldName": "Age","FieldType": "textbox"}
Success Response
{"response":"true","FieldName":"age","message":"Custom Field has been successfully added"}
Error Response
{"response":"false","message":"Location setting not found"}
POST https://service.hookscall.com/glu/api/v2/request UpdateCustomField
🔒 Requires Authorization: Bearer {access_token} header. Method: UpdateCustomField
Request
{"Method": "UpdateCustomField","PreviousFieldName": "Street Address","newFieldName": "Company Address","newFieldType": "textbox"}
Success Response
{"response":"true","FieldName":"company_address","message":"Custom Field has been successfully updated"}
Error Response
{"response":"false","message":"Invalid field name"}
POST https://service.hookscall.com/glu/api/v2/request CheckCustomField
🔒 Requires Authorization: Bearer {access_token} header. Method: CheckCustomField
Request
{"Method": "CheckCustomField","FieldName": "Age"}
Success Response
{"response":"True","FieldName":"Age","message":"Provided Custom Field Exist"}
Error Response
{"response":"false","message":"Field not found"}
POST https://service.hookscall.com/glu/api/v2/request DeleteCustomField
🔒 Requires Authorization: Bearer {access_token} header. Method: DeleteCustomField
Request
{"Method": "DeleteCustomField","FieldName": "Age"}
Success Response
{"response":"true","FieldName":"age","message":"Provided Custom Field has been successfully Deleted"}
Error Response
{"response":"false","message":"Invalid FieldName"}

Leads

POST https://service.hookscall.com/glu/api/v2/request SearchByUserInput
🔒 Requires Authorization: Bearer {access_token} header. Method: SearchByUserInput
Request
{"Method": "SearchByUserInput","GroupId": "236","searchField": "first_name","searchText": "John","sortBy": "ASC"}
Success Response
{"response":"true","Results":[{"LeadId":"12345","GroupId":"236","Firstname":"John","Lastname":"Doe","E-Mail":"john@example.com","Phone":"5551234567","Mobile":"","Tags":"","CountryCode":"","Zipcode":"","City":"","State":"","Address":"","Company":"","Website":"","Lead_Custom_Fields":{}}]}
Error Response
{"response":"false","message":"No results found"}
POST https://service.hookscall.com/glu/api/v2/request SearchByCustomField
🔒 Requires Authorization: Bearer {access_token} header. Method: SearchByCustomField
Request
{"Method": "SearchByCustomField","GroupId": "236","searchField": "Age","searchText": "30","sortBy": "ASC"}
Success Response
{"response":"true","Results":[{"LeadId":"12346","GroupId":"236","Firstname":"Jane","Lastname":"Smith","E-Mail":"jane@example.com","Phone":"5559876543","Mobile":"","Tags":"","CountryCode":"","Zipcode":"","City":"","State":"","Address":"","Company":"","Website":"","Lead_Custom_Fields":{"Age":"30"}}]}
Error Response
{"response":"false","message":"No results found"}
POST https://service.hookscall.com/glu/api/v2/request Un_SubscribeLead
🔒 Requires Authorization: Bearer {access_token} header. Method: Un_SubscribeLead
Request
{"Method": "Un_SubscribeLead","unsubscribeBy": "leadId","unsubscribeValue": "12345"}
Success Response
{"response":"true","leadId":"12345","unsubscribeBy":"leadId","unsubscribeValue":"12345","message":"Lead has been unsubscribed"}
Error Response
{"response":"false","message":"Invalid unsubscribeBy value"}
POST https://service.hookscall.com/glu/api/v2/request UpdateExistingLead
🔒 Requires Authorization: Bearer {access_token} header. Method: UpdateExistingLead
Request
{"Method": "UpdateExistingLead","LeadId": "12345","LeadField": "first_name","LeadData": "John Updated"}
Success Response
{"response":"true","LeadId":"12345","UserField":"first_name","UserData":"John Updated","message":"Lead has been successfully updated"}
Error Response
{"response":"false","message":"Invalid LeadId"}
POST https://service.hookscall.com/glu/api/v2/request MoveLead
🔒 Requires Authorization: Bearer {access_token} header. Method: MoveLead
Request
{"Method": "MoveLead","LeadId": "12345","moveGroupId": "237"}
Success Response
{"response":"true","LeadId":"12345","moveGroupId":"237","message":"Lead has been successfully moved"}
Error Response
{"response":"false","message":"Invalid LeadId or moveGroupId"}
POST https://service.hookscall.com/glu/api/v2/request CopyLead
🔒 Requires Authorization: Bearer {access_token} header. Method: CopyLead
Request
{"Method": "CopyLead","LeadId": "12345","copyGroupId": "238"}
Success Response
{"response":"true","LeadId":"12345","copyGroupId":"238","message":"Lead has been successfully copied"}
Error Response
{"response":"false","message":"Invalid LeadId or copyGroupId"}
POST https://service.hookscall.com/glu/api/v2/request AddSingleLead
🔒 Requires Authorization: Bearer {access_token} header. Method: AddSingleLead
Request
{"Method": "AddSingleLead","groupId": "236","first_name": "Jane","last_name": "Smith","email": "jane@example.com","phone": "5551234567","mobile": "","country_code": "","website": "","company": "","zip": "","address": "","tagId": []}
Success Response
{"response":"true","AddedleadId":"12346","groupId":"236","message":"Lead has been successfully added"}
Error Response
{"response":"false","message":"Lead already exists or groupId invalid"}
POST https://service.hookscall.com/glu/api/v2/request RemoveSingleLead
🔒 Requires Authorization: Bearer {access_token} header. Method: RemoveSingleLead
Request
{"Method": "RemoveSingleLead","groupId": "236","phone": "5551234567"}
Success Response
{"response":"true","RemovedleadId":"12346","groupId":"236","message":"Lead has been successfully removed"}
Error Response
{"response":"false","message":"Lead not found in group"}
POST https://service.hookscall.com/glu/api/v2/request AddMultipleLeads
🔒 Requires Authorization: Bearer {access_token} header. Method: AddMultipleLeads
Request
{"Method": "AddMultipleLeads","groupId": "236","leads_array": [{"first_name":"Alice","phone":"5550001111"},{"first_name":"Bob","phone":"5550002222"}],"tagId": []}
Success Response
{"response":"true","message":"Leads are added to Queue for Processing"}
Error Response
{"response":"false","message":"Invalid groupId"}

Lead Metadata

POST https://service.hookscall.com/glu/api/v2/request FetchLeadFieldsName
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchLeadFieldsName
Request
{"Method": "FetchLeadFieldsName"}
Success Response
{"response":"true","FieldsName":{"Default":["first_name","last_name","email","phone","mobile","country_code","website","company","zip","address"],"Custom":["Age","Gender","Notes"]}}
Error Response
{"response":"false","message":"No fields found"}
POST https://service.hookscall.com/glu/api/v2/request FetchLeadNotes
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchLeadNotes
Request
{"Method": "FetchLeadNotes","leadId": 12345}
Success Response
{"response":"true","message":"2 note(s) found","notes":[{"notesId":1,"note":"Called — left voicemail","type":"manual","added_by":101,"dated":"2026-06-23 10:30:00"},{"notesId":2,"note":"SMS : Sent","type":"sms","added_by":101,"dated":"2026-06-23 11:00:00"}]}
Error Response
{"response":"false","message":"No notes found"}
POST https://service.hookscall.com/glu/api/v2/request AddLeadTags
🔒 Requires Authorization: Bearer {access_token} header. Method: AddLeadTags
Request
{"Method": "AddLeadTags","leadId": 12345,"tagId": "5,12,18"}
Success Response
{"response":"true","message":"Tags assigned successfully","leadId":12345,"tags_assigned":[5,12,18]}
Error Response
{"response":"false","message":"Invalid leadId or tagId"}
POST https://service.hookscall.com/glu/api/v2/request RemoveLeadTags
🔒 Requires Authorization: Bearer {access_token} header. Method: RemoveLeadTags
Request
{"Method": "RemoveLeadTags","leadId": 12345,"tagId": "5,12"}
Success Response
{"response":"true","message":"Tags removed successfully","leadId":12345,"tags_removed":[5,12]}
Error Response
{"response":"false","message":"Invalid leadId or tagId"}

Per-Lead Logs

POST https://service.hookscall.com/glu/api/v2/request FetchLeadCallLogs
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchLeadCallLogs
Request
{"Method": "FetchLeadCallLogs","LeadId": "12345","type": "","from_date": "2026-06-01","to_date": "2026-06-23"}
Success Response
{"response":"true","Results":[{"leadId":"12345","lead_Name":"John Doe","from_number":"+15551234567","to_number":"+15559876543","call_time":"Jun 23, 2026 10:30 am","transfer":"No","state":"CA","city":"Los Angeles","duration":"90","recording":"","call_status":"completed","speed_to_lead":120}]}
Error Response
{"response":"false","message":"No call logs found"}
POST https://service.hookscall.com/glu/api/v2/request FetchLeadSMSLogs
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchLeadSMSLogs
Request
{"Method": "FetchLeadSMSLogs","LeadId": "12345","from_date": "2026-06-01","to_date": "2026-06-23"}
Success Response
{"response":"true","Results":[{"leadId":"12345","lead_Name":"John Doe","from_number":"+15551234567","to_number":"+15559876543","message":"Hi, just following up","dated":"Jun 23, 2026 10:30 am","status":"Sent","messageId":"900001"}]}
Error Response
{"response":"false","message":"No SMS logs found"}
POST https://service.hookscall.com/glu/api/v2/request FetchLeadRVMLogs
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchLeadRVMLogs
Request
{"Method": "FetchLeadRVMLogs","LeadId": "12345","from_date": "2026-06-01","to_date": "2026-06-23"}
Success Response
{"response":"true","Results":[{"leadId":"12345","lead_Name":"John Doe","from_number":"+15551234567","to_number":"+15559876543","group":"My Group","dated":"Jun 23, 2026 10:30 am","voice_file":"https://...","duration":"30","vmId":"100001"}]}
Error Response
{"response":"false","message":"No RVM logs found"}

Account Logs

POST https://service.hookscall.com/glu/api/v2/request FetchUserSMSLogs
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchUserSMSLogs
Request
{"Method": "FetchUserSMSLogs","from_date": "2026-06-01","to_date": "2026-06-23","direction": "outbound","groupId": "236","leadId": "","status": "","limit": 100,"offset": 0}
Success Response
{"response":"true","Results":[{"leadId":"10000001","lead_Name":"John Doe","from_number":"+15550000001","to_number":"+15550000002","message":"Hi, just following up on your inquiry.","dated":"Jun 23, 2026 10:30 am","status":"Sent","direction":"outbound","groupId":"236","tags":"12,45","messageId":"900001"}],"total_records":1520,"returned_records":1,"limit":100,"offset":0,"has_more":true,"next_offset":100,"message":"There are 1520 SMS"}
Error Response
{"response":"false","message":"No SMS logs found"}
POST https://service.hookscall.com/glu/api/v2/request FetchUserCallLog
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchUserCallLog
Request
{"Method": "FetchUserCallLog","from_date": "2026-06-01","to_date": "2026-06-23","type": "inbound","campaignId": "","groupId": "236","locationId": "","memberId": "","statusId": "","min_duration": 0,"max_duration": 0,"search_phone": "","transfer_only": "","limit": 100,"offset": 0,"sort_by": "call_time","sort_order": "DESC"}
Success Response
{"response":"true","Results":[{"leadId":"10000001","lead_Name":"Test Lead A","from_number":"+10000000001","to_number":"+10000000002","recording":"","group":"Group A","caller_name":"Agent One","call_time":"Jun 23, 2026 6:34 pm","duration":"84","city":"Test City","state":"TS","transfer":"Yes","recordingId":"900001","call_status":"completed","call_type":"inbound","speed_to_lead":300,"campaignId":"11111","statusId":"0"}],"total_records":30481,"returned_records":1,"limit":100,"offset":0,"has_more":true,"next_offset":100,"message":"There are 5491 inbound & 24990 outbound Call(s) (Total: 30481)","inbound_count":"5491","outbound_count":"24990"}
Error Response
{"response":"false","message":"No call logs found"}

Members

POST https://service.hookscall.com/glu/api/v2/request addMemberUser
🔒 Requires Authorization: Bearer {access_token} header. Method: addMemberUser
Request
{"Method": "addMemberUser","first_name": "Support","last_name": "Team","email": "abcxyz@gmail.com","inbound_phone": "14087777111","password": "a-sasdasdsA3"}
Success Response
{"response":"true","message":"Team member added successfully."}
Error Response
{"response":"false","message":"Email already exists"}
POST https://service.hookscall.com/glu/api/v2/request editMemberUser
🔒 Requires Authorization: Bearer {access_token} header. Method: editMemberUser
Request
{"Method": "editMemberUser","memberId": "967","first_name": "Support","last_name": "Team","email": "abcxyz@gmail.com","inbound_phone": "14087777111","member_status": "Active"}
Success Response
{"response":"true","message":"Member updated successfully."}
Error Response
{"response":"false","message":"Invalid memberId"}
POST https://service.hookscall.com/glu/api/v2/request getMemberUsers
🔒 Requires Authorization: Bearer {access_token} header. Method: getMemberUsers
Request
{"Method": "getMemberUsers"}
Success Response
{"response":"true","data":[{"memberId":"3232","first_name":"Support","last_name":"Team","email":"abc@hotmail.com","title":"","company":"","country":"USA","state":"","city":"","zip":"","street_address":"","industry":"","main_time_zone":"America","sub_time_zone":"America/Chicago","inbound_phone":"","direct_number":"+12345678900","direct_call_recording":"false","outbound_call_recording":"No","outbound_phone":"","inbound_call_option":"1","inbound_call_option_label":"Ring Browser","phone_extension":"","member_status":"Active","dated":"2025-01-21 15:28:07"}]}
Error Response
{"response":"false","message":"No members found"}
POST https://service.hookscall.com/glu/api/v2/request checkMemberLimit
🔒 Requires Authorization: Bearer {access_token} header. Method: checkMemberLimit
Request
{"Method": "checkMemberLimit"}
Success Response
{"response":"true","message":"record","data":{"total_user":"10","active_user":"8","remaining_user":"2"}}
Error Response
{"response":"false","message":"Unable to fetch limit"}
POST https://service.hookscall.com/glu/api/v2/request deleteMemberUser
🔒 Requires Authorization: Bearer {access_token} header. Method: deleteMemberUser
Request
{"Method": "deleteMemberUser","memberId": "434"}
Success Response
{"response":"true","message":"Member deleted successfully."}
Error Response
{"response":"false","message":"Invalid memberId"}
POST https://service.hookscall.com/glu/api/v2/request fetchCreditCount
🔒 Requires Authorization: Bearer {access_token} header. Method: fetchCreditCount
Request
{"Method": "fetchCreditCount"}
Success Response
{"response":"true","credits":"2500"}
Error Response
{"response":"false","message":"Unable to fetch credits"}
POST https://service.hookscall.com/glu/api/v2/request creditDeduct
🔒 Requires Authorization: Bearer {access_token} header. Method: creditDeduct
Request
{"Method": "creditDeduct","description": "Some description..."}
Success Response
{"response":"true","credits":"credits deduct successfully"}
Error Response
{"response":"false","message":"Insufficient credits"}

Campaigns

POST https://service.hookscall.com/glu/api/v2/request FetchAllCampaigns
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchAllCampaigns
Request
{"Method": "FetchAllCampaigns"}
Success Response
{"response":"true","result":[{"campaign_id":"11111","CampaignTitle":"Summer Campaign"},{"campaign_id":"22222","CampaignTitle":"Fall Outreach"}]}
Error Response
{"response":"false","message":"No campaigns found"}

Conversation Intelligence

POST https://service.hookscall.com/glu/api/v2/request FetchCallTranscripts
🔒 Requires Authorization: Bearer {access_token} header. Method: FetchCallTranscripts
Request
{"Method": "FetchCallTranscripts","from_date": "2026-06-01","to_date": "2026-06-23","call_type": "","campaignId": "","groupId": "","memberId": "","statusId": "","min_duration": 0,"max_duration": 0,"search_keyword": "","flagged_only": 0,"recordingId": "","limit": 100,"offset": 0,"sort_by": "call_time","sort_order": "DESC","summary_only": 0,"compress_transcripts": 0,"fields": "","return_format": "","cursor": ""}
Success Response
{"response":"true","Results":[{"leadId":"10000001","lead_Name":"John Doe","from_number":"+15550000001","to_number":"+15550000002","recording":"","group":"Group A","caller_name":"Agent One","call_time":"Jun 23, 2026 10:30 am","duration":"90","city":"Test City","state":"TS","transfer":"No","recordingId":"900001","call_status":"completed","call_type":"outbound","speed_to_lead":0,"campaignId":"11111","statusId":"0","message_data":[{"role":"agent","content":"Hi, this is..."},{"role":"lead","content":"Hello..."}],"message_data_raw":"agent: Hi, this is...\nlead: Hello...","analytics_status":"completed","analytics_dated":"2026-06-23 10:35:00","transcript_text":"agent: Hi, this is...\nlead: Hello..."}],"total_records":500,"returned_records":1,"limit":100,"offset":0,"has_more":true,"next_offset":100}
Error Response
{"response":"false","message":"No transcripts found"}

Dashboard

POST https://service.hookscall.com/glu/api/v2/request getMemberDashboardData
🔒 Requires Authorization: Bearer {access_token} header. Method: getMemberDashboardData
Request
{"Method": "getMemberDashboardData","date": "2026-06-23"}
Success Response
{"response":"true","date":"2026-06-23","last_updated":"Jun 23, 2026 12:46 pm (PST)","message":"Today`s Member Dashboard Data","results":[{"agentId":"1","agentName":"John Doe","agentEmail":"abc@example.com","hours":"08h :15m :32s","firstCall":"09:01 AM","lastCall":"05:12 PM","gapTime":"45m :12s","acg":"01:02","outboundCall":"250","inboundCall":"20","hangups":"15","AOD":"320.000000","AID":"315.000000","talkMin":"280","avgMin":"35 m","answered_calls":"110","ansPerHour":14,"answer_rate":"44 %","convos":"18","cr":"16.36 %","Prospects":"3","ProspectsWeekly":"4","Appts":"2","ApptsWeekly":"3","ABR":"12.50","SMS":"5"}]}
Error Response
{"response":"false","message":"Unable to fetch dashboard data"}
POST https://service.hookscall.com/glu/api/v2/request getDashboardMemberDatabyCampaign
🔒 Requires Authorization: Bearer {access_token} header. Method: getDashboardMemberDatabyCampaign
Request
{"Method": "getDashboardMemberDatabyCampaign","campaign_id": "11111","date": "2026-06-23"}
Success Response
{"response":"true","date":"2026-06-23","last_updated":"Jun 23, 2026 12:46 pm (PST)","message":"Today`s Member Dashboard Data","results":[{"agentId":"1","agentName":"John Doe","agentEmail":"abc@example.com","hours":"08h :15m :32s","firstCall":"09:01 AM","lastCall":"05:12 PM","gapTime":"45m :12s","acg":"01:02","outboundCall":"250","inboundCall":"20","hangups":"15","AOD":"320.000000","AID":"315.000000","talkMin":"280","avgMin":"35 m","answered_calls":"110","ansPerHour":14,"answer_rate":"44 %","convos":"18","cr":"16.36 %","Prospects":"3","ProspectsWeekly":"4","Appts":"2","ApptsWeekly":"3","ABR":"12.50","SMS":"5","dispositionStatus":{"Hot Lead":"3","Not Interested":"5"}}]}
Error Response
{"response":"false","message":"Unable to fetch dashboard data"}

Number Health

POST https://service.hookscall.com/glu/api/v2/request GetNumberHealthList
🔒 Requires Authorization: Bearer {access_token} header. Method: GetNumberHealthList
Request
{"Method": "GetNumberHealthList","filter": "spam_only","checked_since": "2026-06-23","page": 1,"per_page": 100}
Success Response
{"response":"true","message":"Success","pagination":{"page":1,"per_page":100,"total":2,"total_pages":1},"data":[{"phoneId":1042,"phone_number":"5551234567","is_spam_detected":true,"overall_device_spam":false,"spam_checks":{"fcc_complaint":0,"ftc_complaint":1,"youmail_spam":1,"truespam":0,"nomorobo_spam":0,"robokiller_spam":0},"carriers":{"verizon":{"title":"Verizon","android_status":"Spam Risk","iphone_status":"Spam Risk"},"tmobile":{"title":"T-Mobile","android_status":"Scam Likely","iphone_status":"Scam Likely"},"cingular":{"title":"Cingular","android_status":null,"iphone_status":null},"cricket":{"title":"Cricket","android_status":null,"iphone_status":null}},"last_checked_at":"2026-06-23 08:00:00","next_billing_at":"2026-07-23 08:00:00","business_profile":{"connected_profile":"BU39810c949c409a84a6548f506cc6d1b0","brand_status":"APPROVED","legal_business_name":"Acme Corp LLC","business_type":"Private","business_industry":"REAL_ESTATE","ein":"12-3456789","website_url":"https://acmecorp.com","street_address":"123 Main St","city":"Los Angeles","state":"CA","postal_code":"90001","contact_first_name":"John","contact_last_name":"Smith","contact_email":"john@acmecorp.com","contact_phone":"+15551234567","contact_title":"CEO","notification_email":"notify@acmecorp.com"}}]}
Error Response
{"response":"false","message":"No numbers found"}