Find an API

Search public APIs with auth details & Postman guides

← All APIs

BulkSMS JSON REST API

bulksms · Company

Company No Auth Free & Open telecom

## Overview The JSON REST API allows you to submit and receive [BulkSMS](https://www.bulksms.com/) messages. You can also get access to past messages and see your account profile. The base URL to use for this service is `https://api.bulksms.com/v1`. The base URL cannot be used on its own; you must append a path that identifies an operation and you may have to specify some path parameters as well. [Click here](/developer/) to go to the main BulkSMS developer site. In order to give you an ide

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET List blocked numbers

List blocked numbers

https://api.apis.guru/v2/specs/bulksms.com/1.0.0/blocked-numbers?limit=10&min-id=1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/blocked-numbers?limit=10&min-id=1"
import requests
params = {
    "limit": "10",
    "min-id": "1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/blocked-numbers",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/bulksms.com/1.0.0/blocked-numbers');
url.searchParams.set('limit', '10');
url.searchParams.set('min-id', '1');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/bulksms.com/1.0.0/blocked-numbers")
	q := baseURL.Query()
	q.Set("limit", "10")
	q.Set("min-id", "1")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bulksms.com/1.0.0/blocked-numbers")
uri.query = URI.encode_www_form({
  "limit" => "10",
  "min-id" => "1"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/blocked-numbers?" . http_build_query([
    "limit" => "10",
    "min-id" => "1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Retrieve Messages

Retrieve the messages you have sent or received. Scheduled messages are available for retrieval only after the delivery date. All the parameters are optional. If a value is not supplied for `filter`, the messages are not filtered. Messages can be filtered by supplying query clauses in the `fil

https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages?limit=10&filter=example&sortOrder=ASCENDING

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages?limit=10&filter=example&sortOrder=ASCENDING"
import requests
params = {
    "limit": "10",
    "filter": "example",
    "sortOrder": "ASCENDING"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages');
url.searchParams.set('limit', '10');
url.searchParams.set('filter', 'example');
url.searchParams.set('sortOrder', 'ASCENDING');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages")
	q := baseURL.Query()
	q.Set("limit", "10")
	q.Set("filter", "example")
	q.Set("sortOrder", "ASCENDING")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages")
uri.query = URI.encode_www_form({
  "limit" => "10",
  "filter" => "example",
  "sortOrder" => "ASCENDING"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages?" . http_build_query([
    "limit" => "10",
    "filter" => "example",
    "sortOrder" => "ASCENDING"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Send message by simple GET or POST

A really simple interface for people who require a GET mechanism to submit a single message. The URI is interpreted as UTF-8. HTTP Basic Auth is used for authentication. __Note__ BulkSMS recommends that you use the more flexible Send Messages Operation when submitting SMS messages from your applic

https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages/send?to=2024-12-31&body=example&deduplication-id=1

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages/send?to=2024-12-31&body=example&deduplication-id=1"
import requests
params = {
    "to": "2024-12-31",
    "body": "example",
    "deduplication-id": "1"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages/send",
    params=params,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages/send');
url.searchParams.set('to', '2024-12-31');
url.searchParams.set('body', 'example');
url.searchParams.set('deduplication-id', '1');

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages/send")
	q := baseURL.Query()
	q.Set("to", "2024-12-31")
	q.Set("body", "example")
	q.Set("deduplication-id", "1")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages/send")
uri.query = URI.encode_www_form({
  "to" => "2024-12-31",
  "body" => "example",
  "deduplication-id" => "1"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/bulksms.com/1.0.0/messages/send?" . http_build_query([
    "to" => "2024-12-31",
    "body" => "example",
    "deduplication-id" => "1"
]);
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with BulkSMS JSON REST API?

BulkSMS JSON REST API is a Company API. Developers commonly use company APIs for:

  • enriching CRM records with company firmographics
  • building lead-generation and prospecting tools
  • verifying business identity and registration details
  • monitoring competitors and market intelligence
  • powering B2B data enrichment pipelines

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. BulkSMS JSON REST API is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗