New feature
Check out our API

Salesmsg API Documentation

Unlock the power of business messaging through the Salesmsg API. This API documentation will give an in-depth explanation to help you get up and running quickly, complete with reference information for each endpoint.

Followed by reference information about each specific endpoint.

API Documentation Overview

The following API documentation is a comprehensive guidebook that helps developers utilize the Salesmsg API to the fullest extent. It includes detailed tutorials, helpful code examples and useful visuals.

Usage Guidelines

Salesmsg's API documentation provides you with all the information you need to get started using our public API. Our easy-to-use interface makes it simple to get the data you need, when you need it.

How It Works

Salesmsg Account API Access

Customize your texting experience or integrate Salesmsg into your App or a Platform.

Salesmsg API Access

API Documentation

Almost anything you can do in Salesmsg, you can do with our RESTful API. See everything you can do in our docs.

See API Documentation

Public API Interface

Experiment with the Salesmsg API in real-time and find details of each endpoint.

Test Salesmsg API

Implementation Guide

Integration with an external API can be a daunting task. This guide provides step-by-step instructions on how to use Salesmsg API in your projects. By following these instructions, you will be able to quickly and easily get Salesmsg integration up and running.

Authentication

Supported authorization methods include: Personal Access Token (PAT) and OAuth2. Whether to use PAT or regular OAuth2 tokens highly depends on your use case.

  • OAuth2 authorization type is to go for in case you want to allow other users to authenticate against Salesmsg in order for your app to use the issued token as well as utilize the Salesmsg’s functionality.
  • PAT authorization type is to go for in case you want to integrate your personal existing account with Salesmsg in order to extend your app’s functionality. PAT are managed by the user, which means that they are tied to a user account. This makes Personal Access Tokens a good choice for development, as well as automation purposes, when an application does only require a single Salesmsg account to manage organizations.

Guides and Examples

Using the Salesmsg Public API with Swagger. Easily integrate with the Salesmsg Public API using a personal access token (PAT) and Swagger.

  • Start by generating your token through Salesmsg’s Settings > Personal Access Token section. Once created, copy and securely store the token for future use.  
  • Next, access the Swagger UI to authenticate. Use your token to authorize by pasting it into the provided field and confirming the authentication process. With Swagger, you can explore and test API endpoints to perform key operations.
  • Example: Retrieve conversations by using the GET /conversations endpoint and applying filters like date ranges. Dive deeper into individual conversations by using the GET /conversations/{id}/messages endpoint to access detailed message histories.
    You can also send messages directly through the POST /conversations/{id}/send endpoint by providing the conversation ID and message content.
  • Test all operations in Swagger to ensure accuracy before integrating with your application. Remember to keep your token secure, as it provides access to your account data.

Salesmsg Public API Usage with OAuth2 and Postman. Discover how to leverage the Salesmsg Public API with OAuth2 tokens in Postman to access conversations, retrieve messages, and send texts efficiently.

  • Start by retrieving your OAuth2 token. Log in to Salesmsg, open DevTools by pressing F12, and navigate to the Application tab. In Local Storage, locate the token key, and copy its value for use in Postman.
  • Importing the API collection into Postman is straightforward. From the Salesmsg API documentation, either copy the Swagger JSON URL and import it into Postman or use the "Run in Postman" option available on the website. Once imported, verify that the collection and its endpoints are visible.
  • Set up your environment variables in Postman by pasting the copied token into the Bearer Token field and confirming the Base URL is correctly configured.
  • With the setup complete, you can perform various API operations. As an example, use the GET /conversations endpoint to fetch conversations by specifying filters like date range. Retrieve specific messages within a conversation using the GET /conversations/{id}/messages endpoint. To send a new message, use POST /conversations/{id}/send, providing the conversation ID and the message content.

Refreshing OAuth2 Tokens
To refresh an expired OAuth2 token, send a POST request to the token refresh endpoint:

Endpoint:
https://api.salesmessage.com/pub/v2.2/oauth/token/refresh

Send the following parameters in a JSON object:

Request Body Parameters:
Parameter Description
grant_type Must be set to refresh_token.
client_id Your application's client ID.
client_secret Your application's client secret.
refresh_token The refresh token obtained during the initial token exchange.
Request Example:
POST https://api.salesmessage.com/pub/v2.2/oauth/token/refresh
Content -Type: application/json

{
	"grant_type": "refresh_token",
	"client_id": "your_client_id",
	"client_secret": "your_client_secret",
	"refresh_token": "your_refresh_token"
}
Response Example:
{
	"token_type": "Bearer",
	"expires_in": 3600,
	"access_token": "new_access_token",
	"refresh_token": "new_refresh_token"
}

Important Notes

1. The refresh_token should be securely stored and only transmitted over secure channels (e.g., HTTPS).
2. Always validate the response to confirm the token was successfully refreshed.

Refreshing Personal Access Tokens (PAT)
To refresh a PAT, send a POST request to the PAT refresh endpoint:

Endpoint:
https://api.salesmessage.com/pub/v2.2/oauth/personal-token/refresh

Include the following header to authenticate the request:

Headers:
Authorization: Bearer 'existing_PAT'
Request Example:
POST https://api.salesmessage.com/pub/v2.2/oauth/personal-token/refresh

Content-Type: application/json
Authorization: Bearer existing_PAT
Response Example:
{
	"token_type": "Bearer",
	"expires_in": 3600,
	Refreshing 2"access_token": "new_personal_access_token"
}

Salesmsg's API documentation is designed to help you get the most out of our platform. Each step of the process contains a code example.

  • Get contacts information of the user.

All endpoints use Tokens to authenticate Users, and all responses are in JSON format. To get started, use the GET /pub/v2.2/contacts method to get a list of contacts for the User.

Bearer token example:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiIxMTYiLCJqdGkiOiI1NTUyY2JkNmYxZjI1ODVkNmJjYzUyYTkxY2E5MzYyNmFiYjMyZjg3OGNmN2RiOGIxODliM2Y5Mjc3MjhmZjgxYjliZTk0YTdiZjBlZmMzZCIsImlhdCI6MTY2OTM3MzI5MywibmJmIjoxNjY5MzczMjkzLCJleHAiOjE2NzQ1NTcyOTIsInN1YiI6IjEiLCJzY29wZXMiOlsicHVibGljLWFwaSJdfQ.CurW-IudLBMq571rRn57FqFEBNA0oXJWA0c5uxVBSWo
Code example (CURL):
curl -X GET https://api.salesmessage.com/pub/v2.2/contacts?search=&length=&page=&sortBy=&sortOrder=desc&filtersList=[object Object]&filtersList=[object Object] -H "Authorization: Bearer {token}"
Response example:
You will get 10 contacts per page.
{
    "current_page": 1,
    "data": [
        {
            "id": 1,
            "owner_id": 1,
            "organization_id": 1,
            "integration_id": 2,
            "is_archived": false,
            "first_name": "Test",
            "last_name": “Contact”,
            "email": null,
            "photo_url": null,
            "color_index": 4,
            "country": "US",
            "number": "+12019772861",
            "country_calling_code": "1",
            "national_number": "2019772861",
            "formatted_number": "(201) 977-2861",
            "source": null,
            "area_code_id": 1,
            "is_blocked": false,
            "is_invalid": true,
            "lookup_type": "landline",
            "carrier_name": null,
            "invalid_reason": "Landline number",
            "opt_out": null,
            "opt_out_at": null,
            "opt_in_request_at": null,
            "opt_in_at": "2020-07-13T08:52:27.000000Z",
            "prevent_autolink": 1,
            "unlinked": 0,
            "created_at": "2021-12-06T14:39:03.000000Z",
            "updated_at": "2021-12-29T09:48:58.000000Z",
            "disabled": null,
            "archived_at": null,
            "keywords_count": 0,
            "tags_count": 2,
            "full_name": "Test Contact",
            "color": "#e04e50",
            "opt_out_status": null,
            "keywords": [],
            "notes": [],
            "tags": [
                {
                    "id": 3,
                    "owner_id": 1,
                    "organization_id": 1,
                    "label": "test api tag2",
                    "name": "test-api-tag",
                    "type": "organization",
                    "classname": "light",
                    "created_at": "2020-07-17T05:34:02.000000Z",
                    "updated_at": "2020-07-17T05:43:27.000000Z",
                    "pivot": {
                        "contact_id": 1,
                        "tag_id": 3,
                        "created_at": "2021-04-02T09:21:15.000000Z",
                        "updated_at": "2021-04-02T09:21:15.000000Z",
                        "user_id": 1
                    }
                },
                {
                    "id": 6,
                    "owner_id": 1,
                    "organization_id": 1,
                    "label": "example",
                    "name": "example",
                    "type": "organization",
                    "classname": "light",
                    "created_at": "2020-12-16T11:53:17.000000Z",
                    "updated_at": "2020-12-16T11:53:17.000000Z",
                    "pivot": {
                        "contact_id": 1,
                        "tag_id": 6,
                        "created_at": "2021-04-02T09:21:15.000000Z",
                        "updated_at": "2021-04-02T09:21:15.000000Z",
                        "user_id": 1
                    }
                }
            ],
            "custom_fields": [],
            "area_code": {
                "id": 1,
                "area_code": "201",
                "state_code": "NJ",
                "state_name": "New Jersey",
                "country_code": "US",
                "time_zone": "Eastern",
                "group_id": null
            }
        },
        {
            "id": 2,
            "owner_id": 1,
            "organization_id": 1,
            "integration_id": 2,
            "is_archived": false,
            "first_name": Test2,
            "last_name": Contact2,
            "email": null,
            "photo_url": null,
            "color_index": 1,
            "country": "US",
            "number": "+12027953213",
            "country_calling_code": "1",
            "national_number": "2027953213",
            "formatted_number": "(202) 795-3213",
            "source": null,
            "area_code_id": 2,
            "is_blocked": false,
            "is_invalid": false,
            "lookup_type": "voip",
            "carrier_name": null,
            "invalid_reason": null,
            "opt_out": "soft",
            "opt_out_at": "2020-07-13T08:52:24.000000Z",
            "opt_in_request_at": null,
            "opt_in_at": null,
            "prevent_autolink": 0,
            "unlinked": 0,
            "created_at": "2021-12-06T14:39:04.000000Z",
            "updated_at": "2021-12-29T09:56:30.000000Z",
            "disabled": null,
            "archived_at": null,
            "keywords_count": 0,
            "tags_count": 2,
            "full_name": "",
            "color": "#26a69a",
            "opt_out_status": "soft",
            "keywords": [],
            "notes": [],
            "tags": [
                {
                    "id": 3,
                    "owner_id": 1,
                    "organization_id": 1,
                    "label": "test api tag2",
                    "name": "test-api-tag",
                    "type": "organization",
                    "classname": "light",
                    "created_at": "2020-07-17T05:34:02.000000Z",
                    "updated_at": "2020-07-17T05:43:27.000000Z",
                    "pivot": {
                        "contact_id": 2,
                        "tag_id": 3,
                        "created_at": "2021-04-02T09:21:15.000000Z",
                        "updated_at": "2021-04-02T09:21:15.000000Z",
                        "user_id": 1
                    }
                },
                {
                    "id": 6,
                    "owner_id": 1,
                    "organization_id": 1,
                    "label": "example",
                    "name": "example",
                    "type": "organization",
                    "classname": "light",
                    "created_at": "2020-12-16T11:53:17.000000Z",
                    "updated_at": "2020-12-16T11:53:17.000000Z",
                    "pivot": {
                        "contact_id": 2,
                        "tag_id": 6,
                        "created_at": "2021-04-02T09:21:15.000000Z",
                        "updated_at": "2021-04-02T09:21:15.000000Z",
                        "user_id": 1
                    }
                }
            ],
            "custom_fields": [],
            "area_code": {
                "id": 2,
                "area_code": "202",
                "state_code": "DC",
                "state_name": "District of Columbia",
                "country_code": "US",
                "time_zone": "Eastern",
                "group_id": null
            }
        },
         
     ],
    "first_page_url": "https://core.salesmsg.local/api/v4/contacts?page=1",
    "from": 1,
    "last_page": 28,
    "last_page_url": "https://core.salesmsg.local/api/v4/contacts?page=2",
    "next_page_url": "https://core.salesmsg.local/api/v4/contacts?page=2",
    "path": "https://core.salesmsg.local/api/v4/contacts",
    "per_page": 10,
    "prev_page_url": null,
    "to": 10,
    "total": 15
}
View more
View less
  • Get contacts information of the user.

The previous step will provide you a view of 10 contacts per page. Next, you can choose a contact to retrieve by ID, using GET /pub/v2.2/contacts/{contact}.

Now you can chose a contact to retrieve by ID:

Code example:
GET /pub/v2.2/contacts/{contact}
Code example:
curl -X GET https://api.salesmessage.com/pub/v2.2/contacts/1 -H "Authorization: Bearer {token}

You will get Contact object in return.

Response example:
{
   "id": 1,
   "owner_id": 1,
   "color": "#e04e50",
   "first_name": "Test",
   "last_name": “Contact”,
   "full_name": "Test Contact",
   "email": null,
   "photo_url": null,,
   "number": "+12019772861",
   "country": "US",
   "country_calling_code": "1",
   "national_number": "2019772861",
   "formatted_number": "(201) 977-2861",
   "is_blocked": false,
   "opt_out": null,
   "opt_out_at": "",
   "opt_in_request_at": "",
   "opt_in_requests": [],
   "opt_in_at": "2020-07-13 08:52:27",
   "shortcode_opt_outs": [
       {
           "id": 1,
           "number_id": 19,
           "name": "Shortcode",
           "disabled": false,
           "timestamp": null,
           "value": true
       }
   ],
   "is_invalid": true,
   "lookup_type": "landline",
   "carrier_name": null,
   "source": null,
   "created_at": "2021-12-06 14:39:03",
   "updated_at": "2021-12-29 09:48:58",
   "integration_vendor_id": 101,
   "prevent_autolink": true,
   "integration": {
       "id": 2,
       "key": "hubspot",
       "name": "HubSpot",
       "photo_url": null,
   },
   "custom_fields": [],
   "tags": [
       {
           "id": 3,
           "name": "test-api-tag",
           "label": "test api tag2",
           "created_at": "2021-04-02 09:21:15"
       },
       {
           "id": 6,
           "name": "example",
           "label": "example",
           "created_at": "2021-04-02 09:21:15"
       }
   ],
   "notes": [],
   "area_code": {
       "id": 1,
       "area_code": "201",
       "state_code": "NJ",
       "state_name": "New Jersey",
       "country_code": "US",
       "time_zone": "Eastern",
       "group_id": null
   },
   "keywords": []
}
View more
View less

Update contact’s properties

Let’s change some Contact’s properties: first_name to Newname and email newemail@example.com. To do this use PUT /api/v4/contacts/{contact}.

Code example:
curl -X PUT https://api.salesmessage.com/pub/v2.2/contacts/1 -H "Authorization: Bearer {token}” -d {“first_name”: “Newname”, “email”: “newemail@example.com”, “number”: “(201) 977-2861”}’
Response example:
{
   "id": 1,
   "owner_id": 1,
   "color": "#e04e50",
   "first_name": "Newname",
   "last_name": “Contact”,
   "full_name": "Newname Contact",
   "email": "newemail@example.com",
   "photo_url": null,
   "number": "+12019772861",
   "country": "US",
   "country_calling_code": 1,
   "national_number": "2019772861",
   "formatted_number": "(201) 977-2861",
   "is_blocked": false,
   "opt_out": null,
   "opt_out_at": "",
   "opt_in_request_at": "",
   "opt_in_requests": [],
   "opt_in_at": "2020-07-13 08:52:27",
   "shortcode_opt_outs": [
       {
           "id": 1,
           "number_id": 19,
           "name": "Shortcode",
           "disabled": false,
           "timestamp": null,
           "value": true
       }
   ],
   "is_invalid": true,
   "lookup_type": "landline",
   "carrier_name": null,
   "source": null,
   "created_at": "2021-12-06 14:39:03",
   "updated_at": "2022-11-25 11:36:48",
   "integration_vendor_id": 101,
   "prevent_autolink": true,
   "integration": {
       "id": 2,
       "key": "hubspot",
       "name": "HubSpot",
       "photo_url": null
   },
   "custom_fields": [],
   "tags": [
       {
           "id": 3,
           "name": "test-api-tag",
           "label": "test api tag2",
           "created_at": "2021-04-02 09:21:15"
       },
       {
           "id": 6,
           "name": "example",
           "label": "example",
           "created_at": "2021-04-02 09:21:15"
       }
   ],
   "notes": [],
   "area_code": {
       "id": 1,
       "area_code": "201",
       "state_code": "NJ",
       "state_name": "New Jersey",
       "country_code": "US",
       "time_zone": "Eastern",
       "group_id": null
   },
   "keywords": []
}
View more
View less

Send a message

Let’s send a Message to this Contact. To do this we need to create a Conversation object.

Creating Conversation is done by POST /pub/v2.2/conversations method. It will either create new conversation or return existing conversation with our Contact.

Code example:
curl -X POST https://api.salesmessage.com/pub/v2.2/conversations -H "Authorization: Bearer {token}” -d {“contact_id”: 1, “team_id”: 16, "number_id": 2}’
Response example:
{
   "id": 1,
   "inbox_id": 16,
   "contact_id": 1,
   "user_id": 1,
   "last_message_at": "2022-04-22 12:51:45",
   "last_manual_message_at": "2022-04-22 12:51:45",
   "last_read_at": "2022-08-10 11:40:06",
   "has_tagging": false,
   "tagging_last_message_at": "",
   "tagging_last_read_at": "",
   "started_at": "2020-07-09 03:59:50",
   "closed_at": "",
   "name": null,
   "group_name": null,
   "participants": [],
   "reassign_logs": [],
   "is_group": false,
   "owner": {
       "id": 1,
       "first_name": "Owner",
       "last_name": "Owner",
       "full_name": "Owner Owner",
       "disabled": null,
       "default_team_id": null
   },
   "number_id": 1,
   "allow_call": true,
   "number": {
       "id": 1,
       "organization_id": 1,
       "country": "US",
       "state": null,
       "city": null,
       "number": "+12074894075",
       "number_vendor_id": 2,
       "country_calling_code": "1",
       "national_number": "2074894075",
       "formattedNumber": "(207) 489-4075",
       "formatted_number": "(207) 489-4075",
       "short_code": 0,
       "is_landline": 0,
       "is_zipwhip": 0,
       "is_toll_free": false,
       "is_aircall": false,
       "voice": true,
       "use_organization_call_settings": true,
       "voice_outbound": true,
       "mms": true,
       "disabled": null,
       "has_profile": false,
       "verified_status": "Unverified",
       "area_code": {
           "id": 6,
           "area_code": "207",
           "state_code": "ME",
           "state_name": "Maine",
           "country_code": "US",
           "time_zone": "Eastern",
           "group_id": null
       },
       "landline": null,
       "number_vendor": {
           "id": 2,
           "is_active": true,
           "key": "twilio",
           "name": "Twilio",
           "credentials_prefix": "",
           "twilio_sid": "",
           "twilio_auth_token": "",
           "is_billable": 1,
           "created_at": "2020-07-08T12:09:04.000000Z",
           "updated_at": "2020-07-08T12:09:04.000000Z"
       }
   },
   "contact": {
       "id": 1,
       "owner_id": 1,
       "color": "#e04e50",
       "first_name": "Newname",
       "last_name": “Contact”,
       "full_name": "Newname Contact",
       "email": "newemail@example.com",
       "photo_url": null,
       "number": "+12019772861",
       "country": "US",
       "country_calling_code": "1",
       "national_number": "2019772861",
       "formatted_number": "(201) 977-2861",
       "is_blocked": false,
       "opt_out": null,
       "opt_out_at": "",
       "opt_in_request_at": "",
       "opt_in_requests": [],
       "opt_in_at": "2020-07-13 08:52:27",
       "shortcode_opt_outs": [
           {
               "id": 1,
               "number_id": 19,
               "name": "Shortcode",
               "disabled": false,
               "timestamp": null,
               "value": true
           }
       ],
       "is_invalid": true,
       "lookup_type": "landline",
       "carrier_name": null,
       "source": null,
       "created_at": "2021-12-06 14:39:03",
       "updated_at": "2022-11-25 11:36:48",
       "integration_vendor_id": 101,
       "prevent_autolink": true,
       "integration": {
           "id": 2,
           "key": "hubspot",
           "name": "HubSpot",
           "photo_url": null
       },
       "custom_fields": [],
       "tags": [
           {
               "id": 3,
               "name": "test-api-tag",
               "label": "test api tag2",
               "created_at": "2021-04-02 09:21:15"
           },
           {
               "id": 6,
               "name": "example",
               "label": "example",
               "created_at": "2021-04-02 09:21:15"
           }
       ],
       "notes": [],
       "area_code": {
           "id": 1,
           "area_code": "201",
           "state_code": "NJ",
           "state_name": "New Jersey",
           "country_code": "US",
           "time_zone": "Eastern",
           "group_id": null
       },
       "keywords": []
   },
   "Recent_message": null
}
View more
View less

Now that you have our Conversation you can send a Message. To do this use POST /pub/v2.2/messages/{conversation} endpoint. Let’s send “My text message” Message using this code:

Code example:
curl -X POST https://api.salesmessage.com/pub/v2.2/messages/1 -H "Authorization: Bearer {token}” -d {“message”: “My text message”}’
Response example:
{
   "id": 2191,
   "conversation_id": 1,
   "contact_id": 1,
   "automated": false,
   "status": "failed",
   "type": "sms",
   "mms_status": "",
   "body": "My text message",
   "body_raw": "My text message",
   "has_tagging": false,
   "icon": null,
   "received_at": "",
   "send_at": "",
   "queued_at": "",
   "sent_at": "2022-11-25 12:03:11",
   "delivered_at": "",
   "failed_at": "2022-11-25 12:03:14",
   "failed_reason": "Landline number",
   "created_at": "2022-11-25 12:03:11",
   "stop_on_response": false,
   "record": null,
   "user_id": 1,
   "media": [],
   "source_id": 0,
   "source": "manual",
   "pending_mentions": [],
   "contact": {
       "id": 1,
       "owner_id": 1,
       "color": "#e04e50",
       "first_name": "Newname",
       "last_name": “Contact”,
       "full_name": "Newname Contact",
       "email": "newemail@example.com",
       "photo_url": null,
       "number": "+12019772861",
       "country": "US",
       "country_calling_code": "1",
       "national_number": "2019772861",
       "formatted_number": "(201) 977-2861",
       "is_blocked": false,
       "opt_out": null,
       "opt_out_at": "",
       "opt_in_request_at": "",
       "opt_in_requests": [],
       "opt_in_at": "2020-07-13 08:52:27",
       "shortcode_opt_outs": [
           {
               "id": 1,
               "number_id": 19,
               "name": "Shortcode",
               "disabled": false,
               "timestamp": null,
               "value": true
           }
       ],
       "is_invalid": true,
       "lookup_type": "landline",
       "carrier_name": null,
       "source": null,
       "created_at": "2021-12-06 14:39:03",
       "updated_at": "2022-11-25 11:36:48",
       "integration_vendor_id": 101,
       "prevent_autolink": true,
       "integration": {
           "id": 2,
           "key": "hubspot",
           "name": "HubSpot",
           "photo_url": null
       },
       "custom_fields": [],
       "tags": [
           {
               "id": 3,
               "name": "test-api-tag",
               "label": "test api tag2",
               "created_at": "2021-04-02 09:21:15"
           },
           {
               "id": 6,
               "name": "example",
               "label": "example",
               "created_at": "2021-04-02 09:21:15"
           }
       ],
       "notes": [],
       "area_code": {
           "id": 1,
           "area_code": "201",
           "state_code": "NJ",
           "state_name": "New Jersey",
           "country_code": "US",
           "time_zone": "Eastern",
           "group_id": null
       },
       "keywords": []
   },
   "user": {
       "id": 1,
       "first_name": "Owner",
       "last_name": "Owner",
       "full_name": "Owner Owner",
       "disabled": null,
       "default_team_id": null
   }
}
View more
View less

Let’s review our new Message in the Conversation. To do this, you should use GET /pub/v2.2/messages/{conversation} method.

Code example:
curl -X GET https://api.salesmessage.com/pub/v2.2/messages/1 -H "Authorization: Bearer {token}” -d {“limit”: 10}’
Response example:
[
   {
       "id": 2193,
       "conversation_id": 1,
       "contact_id": 1,
       "automated": false,
       "status": "received",
       "type": "sms",
       "mms_status": "done",
       "body": "great!",
       "body_raw": "great!",
       "has_tagging": false,
       "icon": null,
       "received_at": "2022-11-25 12:19:15",
       "send_at": "",
       "queued_at": "",
       "sent_at": "",
       "delivered_at": "",
       "failed_at": "",
       "failed_reason": null,
       "created_at": "2022-11-25 12:19:15",
       "stop_on_response": false,
       "record": null,
       "user_id": 0,
       "media": [],
       "source_id": null,
       "source": "manual",
       "pending_mentions": [],
       "contact": {
           "id": 1,
           "owner_id": 1,
           "color": "#e04e50",
           "first_name": "Newname",
           "last_name": “Contact”,
           "full_name": "Newname Contact",
           "email": "newemail@example.com",
           "photo_url": null,
           "number": "+12019772861",
           "country": "US",
           "country_calling_code": "1",
           "national_number": "2019772861",
           "formatted_number": "(201) 977-2861",
           "is_blocked": false,
           "opt_out": null,
           "opt_out_at": "",
           "opt_in_request_at": "",
           "opt_in_requests": [],
           "opt_in_at": "2020-07-13 08:52:27",
           "shortcode_opt_outs": [
               {
                   "id": 1,
                   "number_id": 19,
                   "name": "Shortcode",
                   "disabled": false,
                   "timestamp": null,
                   "value": true
               }
           ],
           "is_invalid": true,
           "lookup_type": "landline",
           "carrier_name": null,
           "source": null,
           "created_at": "2021-12-06 14:39:03",
           "updated_at": "2022-11-25 11:36:48",
           "integration_vendor_id": 101,
           "prevent_autolink": true,
           "integration": {
               "id": 2,
               "key": "hubspot",
               "name": "HubSpot",
               "photo_url": null
           },
           "custom_fields": [],
           "tags": [
               {
                   "id": 3,
                   "name": "test-api-tag",
                   "label": "test api tag2",
                   "created_at": "2021-04-02 09:21:15"
               },
               {
                   "id": 6,
                   "name": "example",
                   "label": "example",
                   "created_at": "2021-04-02 09:21:15"
               }
           ],
           "notes": [],
           "area_code": {
               "id": 1,
               "area_code": "201",
               "state_code": "NJ",
               "state_name": "New Jersey",
               "country_code": "US",
               "time_zone": "Eastern",
               "group_id": null
           },
           "keywords": []
       },
       "user": {
           "id": 0
       }
   },
   {
       "id": 2192,
       "conversation_id": 419,
       "contact_id": 106,
       "automated": false,
       "status": "delivered",
       "type": "sms",
       "mms_status": "",
       "body": "My text message",
       "body_raw": "My text message",
       "has_tagging": false,
       "icon": null,
       "received_at": "",
       "send_at": "",
       "queued_at": "2022-11-25 12:19:00",
       "sent_at": "2022-11-25 12:19:02",
       "delivered_at": "2022-11-25 12:19:05",
       "failed_at": "",
       "failed_reason": null,
       "created_at": "2022-11-25 12:18:54",
       "stop_on_response": false,
       "record": null,
       "user_id": 1,
       "media": [],
       "source_id": 0,
       "source": "manual",
       "pending_mentions": [],
       "contact": {
           "id": 1,
           "owner_id": 1,
           "color": "#e04e50",
           "first_name": "Newname",
           "last_name": “Contact”,
           "full_name": "Newname Contact",
           "email": "newemail@example.com",
           "photo_url": null,
           "number": "+12019772861",
           "country": "US",
           "country_calling_code": "1",
           "national_number": "2019772861",
           "formatted_number": "(201) 977-2861",
           "is_blocked": false,
           "opt_out": null,
           "opt_out_at": "",
           "opt_in_request_at": "",
           "opt_in_requests": [],
           "opt_in_at": "2020-07-13 08:52:27",
           "shortcode_opt_outs": [
               {
                   "id": 1,
                   "number_id": 19,
                   "name": "Shortcode",
                   "disabled": false,
                   "timestamp": null,
                   "value": true
               }
           ],
           "is_invalid": true,
           "lookup_type": "landline",
           "carrier_name": null,
           "source": null,
           "created_at": "2021-12-06 14:39:03",
           "updated_at": "2022-11-25 11:36:48",
           "integration_vendor_id": 101,
           "prevent_autolink": true,
           "integration": {
               "id": 2,
               "key": "hubspot",
               "name": "HubSpot",
               "photo_url": null
           },
           "custom_fields": [],
           "tags": [
               {
                   "id": 3,
                   "name": "test-api-tag",
                   "label": "test api tag2",
                   "created_at": "2021-04-02 09:21:15"
               },
               {
                   "id": 6,
                   "name": "example",
                   "label": "example",
                   "created_at": "2021-04-02 09:21:15"
               }
           ],
           "notes": [],
           "area_code": {
               "id": 1,
               "area_code": "201",
               "state_code": "NJ",
               "state_name": "New Jersey",
               "country_code": "US",
               "time_zone": "Eastern",
               "group_id": null
           },
           "keywords": []
       },
       "user": {
           "id": 1,
           "first_name": "Owner",
           "last_name": "Owner",
           "full_name": "Owner Owner",
           "disabled": null,
           "default_team_id": null
       }
   }
]
View more
View less

As you can see in the response below the Contact has replied to your Message.
Enjoy integrating with Salemsg Open API.

End Points (Mock Server)

Additionally, if you want to try Salesmsg API without creating an account you can do so using our Mock Server.

1. Signup for a free Postman account https://www.postman.com.
2. Set baseUrl variable in your collection as https://e33e4a6a-ff9d-419f-a378-ec53560c0bb7.mock.pstmn.io and you are good to go.

Versioning

The new API 2.2 introduces a major update with an expanded batch of endpoints, now totaling 500! This new version builds on the success of API 2.1, which fully replaced version 1.0 and introduced 200 endpoints.

Rate Limits

The global rate limit for our API is 60 requests per minute. If you exceed this, all API calls for the next 60 seconds will be blocked, receiving a HTTP 429 response.Each endpoint of our API returns responses in a JSON format.

The best way to get
something done is to start

Sign up here for a 14-day trial and be on your way to engaging
with your customers faster than ever before.
Start Your Free 14-Day Trial
Still have questions? Text us: (561) 788-7898