Authentication & Access
How do I get an API key?
How do I get an API key?
- Visit our API Key Request Form
- Fill in your details and use case
- Our team will review and provision your key within 24 hours
- You’ll receive your API key via secure email
Authorization header:What authentication method does Gomobile use?
What authentication method does Gomobile use?
My API key stopped working. What happened?
My API key stopped working. What happened?
- Expired - Your key may have an expiration date
- Revoked - The key may have been revoked for security reasons
- Wrong format - Ensure you’re using
x-api-key: <your-key> - Typo - Double-check you’re using the correct key
Can I have multiple API keys?
Can I have multiple API keys?
- Per environment: Separate keys for development, staging, and production
- Per integration: One key per third-party service
- Per team member: Individual keys for accountability
Contacts & Audiences
What's the difference between a contact and an audience?
What's the difference between a contact and an audience?
Can a contact be in multiple audiences?
Can a contact be in multiple audiences?
What phone number formats are accepted?
What phone number formats are accepted?
- ✅
+212612345678(Morocco) - ✅
+14155551234(USA) - ❌
06-12-34-56-78(spaces/dashes) - ❌
0612345678(missing country code)
How do I import contacts in bulk?
How do I import contacts in bulk?
Can I add custom fields to contacts?
Can I add custom fields to contacts?
text, number, boolean, date, phone_number, email, url.Then include it when creating/updating contacts:Flows & Nodes
What's the difference between a flow and a program?
What's the difference between a flow and a program?
Can I reuse flows across multiple programs?
Can I reuse flows across multiple programs?
flowId in different programs targeting different
audiences or schedules.What node types are available?
What node types are available?
How do I test a flow before launching?
How do I test a flow before launching?
graph object) in the request body.Response:POST /flows/execute with a test contact.Calls & Execution
Why didn't my call go through?
Why didn't my call go through?
GET /call-report/:jobId) for the outcome field:- Phone number format is correct
- DID pool has valid numbers
- Program status is
active
What does 'AMD' mean?
What does 'AMD' mean?
enableAMD: true) on a Dial node, the system detects whether a human or voicemail answered:- Human detected → Routes to
onAnswer - Machine detected → Routes to
onVoicemail
How do I stop a running campaign?
How do I stop a running campaign?
-
Pause (can resume later):
-
Cancel (permanent):
Can I call the same contact multiple times?
Can I call the same contact multiple times?
fixed_delay: Retry after X minutesscheduled: Retry at specific times
Retry Strategies
How many times will Gomobile retry a failed call?
How many times will Gomobile retry a failed call?
none: No retries (1 attempt total)fixed_delay: Up tomaxRetriesadditional attemptsscheduled: Number of dates inretryDatesarray
What triggers a retry?
What triggers a retry?
- ✅
completed- No retry (success) - 🔄
no_answer- Retry - 🔄
busy- Retry - 🔄
rejected- Retry - 🔄
voicemail- Retry (configurable) - ❌
failed- Retry (system error)
Do retries respect pause windows?
Do retries respect pause windows?
Audio & Media
What audio formats are supported?
What audio formats are supported?
POST /audio-management/upload using multipart/form-data. The system processes and converts files automatically.Supported content types include:audio/wavaudio/mp3audio/mpeg
How do I upload audio files?
How do I upload audio files?
id to use in your Play nodes.What's a dictionary used for?
What's a dictionary used for?
- Key
"1"→ audio of “one” spoken - Key
"100"→ audio of “one hundred” spoken - Key
"thousand"→ audio of “thousand” spoken
Troubleshooting
I'm getting 429 Too Many Requests
I'm getting 429 Too Many Requests
- Reduce request frequency - Add delays between calls
- Implement exponential backoff - Wait longer after each retry
- Batch operations - Use bulk endpoints like
/contact/upsert - Check response headers for rate limit details
My program won't start
My program won't start
startAtis in the future - Or already passed if you want immediate start- Audience is not empty -
AudienceEmptyErrorif no contacts - No existing running execution -
ExecutionAlreadyRunningError - Program status is
active- Notdraftorarchived
POST /programs/:id/launchStill have questions?
If you couldn’t find the answer you’re looking for:- Check our Troubleshooting Guide
- Browse the Core Concepts documentation
- Contact our support team