How to Forward Text Messages to Custom API
Why Forward SMS to Custom API?
Forwarding SMS to a custom API helps you:
- Integrate with any application - Connect SMS forwarding to your own backend
- Full control over data - Process and store messages exactly how you need
- Build custom workflows - Trigger any action based on incoming SMS
- Add to existing systems - Integrate SMS into CRM, support systems, or databases
- Create custom automations - Parse data, filter messages, and execute custom logic
- No third-party limitations - Complete flexibility with your own endpoint
- Secure communication - Use your own authentication and encryption
Prerequisites
Before setting up Custom API forwarding, make sure you have:
- ✅ Forward SMS app installed
- ✅ iOS Shortcuts automation configured (Required first step)
- ✅ Custom API endpoint that accepts HTTP POST requests
- ✅ (Optional) API authentication token or key
Setup Steps
Step 1: Prepare Your API Endpoint
Your API endpoint should accept HTTP POST requests with JSON payload:
Example Request Format:
{
"from": "+1234567890",
"message": "This is the SMS text content",
"timestamp": "2025-10-15T12:34:56Z"
}
Requirements:
- Method: POST
- Content-Type: application/json
- Response: Return HTTP 200 for successful receipt
- Authentication: (Optional) Bearer token or API key in headers
Example API Endpoint:
https://your-domain.com/api/sms/receive
Step 2: Configure Forward SMS App
Now add your custom API endpoint to Forward SMS app:
- Open Forward SMS app
- Tap Create New Rule or "+" button
- Select Custom API as the destination type
- Enter your API endpoint URL
- Tap Send Test Message to test the integration
- Check your API logs to verify the test message was received
- Tap "Save"
Your SMS messages will now automatically forward to your custom API endpoint!
API Payload Details
The Forward SMS app sends the following JSON structure:
{
"from": "string", // Sender's phone number
"message": "string", // SMS message content
"timestamp": "string" // ISO 8601 timestamp
}
Example Response:
{
"success": true,
"message": "SMS received successfully"
}