{"id":16702196,"url":"https://github.com/vkatsuba/bellboy","last_synced_at":"2025-08-14T08:16:18.338Z","repository":{"id":48132243,"uuid":"212610943","full_name":"vkatsuba/bellboy","owner":"vkatsuba","description":":email: Bellboy - is HTTP client library for send SMS by different services: Plivo, Twilio, Nexmo","archived":false,"fork":false,"pushed_at":"2023-12-23T13:53:56.000Z","size":59,"stargazers_count":10,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-24T17:42:10.012Z","etag":null,"topics":["erlang","functional","http","https","library","nexmo","nexmo-api","nexmo-sms","plivo","plivo-sms","twilio","twilio-sms","twilio-sms-api"],"latest_commit_sha":null,"homepage":"https://github.com/vkatsuba/bellboy","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vkatsuba.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-03T15:15:04.000Z","updated_at":"2023-12-23T13:49:30.000Z","dependencies_parsed_at":"2024-10-12T18:57:17.277Z","dependency_job_id":null,"html_url":"https://github.com/vkatsuba/bellboy","commit_stats":{"total_commits":73,"total_committers":3,"mean_commits":"24.333333333333332","dds":"0.20547945205479456","last_synced_commit":"5a9d6279a8daa96e029915fdba50721183db66d1"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkatsuba%2Fbellboy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkatsuba%2Fbellboy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkatsuba%2Fbellboy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vkatsuba%2Fbellboy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vkatsuba","download_url":"https://codeload.github.com/vkatsuba/bellboy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245116004,"owners_count":20563264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erlang","functional","http","https","library","nexmo","nexmo-api","nexmo-sms","plivo","plivo-sms","twilio","twilio-sms","twilio-sms-api"],"created_at":"2024-10-12T18:47:10.185Z","updated_at":"2025-03-23T14:31:44.454Z","avatar_url":"https://github.com/vkatsuba.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bellboy\n**bellboy** - is `Erlang` `HTTP` client library for send **[SMS](https://en.wikipedia.org/wiki/SMS)** by different services: **[Plivo](https://www.plivo.com)**, **[Twilio](https://www.twilio.com)**, **[Nexmo](https://developer.nexmo.com)**.\n\n[![Hex.pm Version](https://img.shields.io/hexpm/v/bellboy.svg)](https://hex.pm/packages/bellboy)\n\n[![Build Status](https://github.com/vkatsuba/bellboy/workflows/CI/badge.svg)](https://github.com/vkatsuba/bellboy/actions)\n\n## Contents\n* [Goals](#goals)\n* [Build \u0026 Run](#build--run)\n* [Dialyzer](#dialyzer)\n* [Clean Project](#clean-project)\n* [Install bellboy to project](#install-bellboy-to-project-rebar3)\n* [Erlang Plivo](#erlang-plivo)\n  * [Send SMS By Erlang Plivo](#send-sms-by-erlang-plivo)\n  * [Get Details of a Single Message By Erlang Plivo](#get-details-of-a-single-message-by-erlang-plivo)\n  * [Get Details of all Messages By Erlang Plivo](#get-details-of-all-messages-by-erlang-plivo)\n* [Erlang Twilio](#erlang-twilio)\n  * [Send SMS By Erlang Twilio](#send-sms-by-erlang-twilio)\n  * [Fetch a Message Resource By Erlang Twilio](#fetch-a-message-resource-by-erlang-twilio)\n  * [Read Multiple Message Resources By Erlang Twilio](#read-multiple-message-resources-by-erlang-twilio)\n* [Erlang Nexmo](#erlang-nexmo)\n  * [Send SMS By Erlang Nexmo](#send-sms-by-erlang-nexmo)\n  * [Send PIN By Erlang Nexmo](#send-pin-by-erlang-nexmo)\n  * [Check PIN By Erlang Nexmo](#check-pin-by-erlang-nexmo)\n  * [Cancel PIN By Erlang Nexmo](#cancel-pin-by-erlang-nexmo)\n* [Support](#support)\n\n# Goals\nBellboy aims to provide a simple way for send **[SMS](https://en.wikipedia.org/wiki/SMS)** by different services by REST API.\n\n# Build \u0026 Run\n```sh\n$ git clone https://github.com/vkatsuba/bellboy.git\n$ cd bellboy\n$ wget https://s3.amazonaws.com/rebar3/rebar3\n$ chmod u+x ./rebar3\n$ ./rebar3 shell\n```\n# Dialyzer\n```sh\n$ ./rebar3 dialyzer\n```\n# Clean Project\n```sh\n$ ./rebar3 clean\n```\n# Install bellboy to project: [Rebar3](https://www.rebar3.org/)\n* Edit file **rebar.config**:\n```erlang\n{deps, [\n    {bellboy, \"2.0.0\"},\n]}.\n```\n\n# Erlang Plivo\n## Send SMS By Erlang Plivo\n```erlang\n% https://docs.labs.plivo.com/latest/python/elements/message/send-an-sms\nReqMap = #{\n   type =\u003e send_message,            % atom()   - bellboy type for send SMS\n   auth_id =\u003e \"PlivoAuthID\",        % list()   - Plivo auth ID\n   auth_token =\u003e \"PlivoAuthToken\",  % list()   - Plivo auth token\n   src =\u003e \u003c\u003c\"00000000000000000\"\u003e\u003e,  % binary() - Plivo phone number\n   dst =\u003e \u003c\u003c\"11111111111111111\"\u003e\u003e,  % binary() - user phone number\n   text =\u003e \u003c\u003c\"Plivo SMS Text\"\u003e\u003e     % binary() - SMS text\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:plivo(ReqMap).\n```\n\n## Get Details of a Single Message By Erlang Plivo\n```erlang\n% https://www.plivo.com/docs/sms/getting-started/advanced/sms-details-single-message\nReqMap = #{\n   type =\u003e get_message,             % atom() - bellboy type for send SMS\n   auth_id =\u003e \"PlivoAuthID\",        % list() - Plivo auth ID\n   auth_token =\u003e \"PlivoAuthToken\",  % list() - Plivo auth token\n   message_uuid =\u003e \"PlivoMsgUUID\"   % list() - Plivo message UUID\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:plivo(ReqMap).\n```\n\n## Get Details of all Messages By Erlang Plivo\n```erlang\n% https://www.plivo.com/docs/sms/getting-started/advanced/sms-details-all-messages/\nReqMap = #{\n   type =\u003e get_messages,            % atom() - bellboy type for send SMS\n   auth_id =\u003e \"PlivoAuthID\",        % list() - Plivo auth ID\n   auth_token =\u003e \"PlivoAuthToken\"   % list() - Plivo auth token\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:plivo(ReqMap).\n```\n\n# Erlang Twilio\n## Send SMS By Erlang Twilio\n```erlang\n% https://www.twilio.com/docs/sms/send-messages\nReqMap = #{\n   type        =\u003e send_message,         % atom() - bellboy type for send SMS\n   account_sid =\u003e \"TwilioAccountSID\",   % list() - Twilio account SID\n   auth_token  =\u003e \"TwilioAuthToken\",    % list() - Twilio auth token\n   body        =\u003e \"Twilio SMS Text\",    % list() - SMS text\n   from        =\u003e \"00000000000000000\",  % list() - Twilio phone number\n   to          =\u003e \"11111111111111111\"   % list() - User phone number\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:twilio(ReqMap).\n```\n\n## Fetch a Message Resource By Erlang Twilio\n```erlang\n% https://www.twilio.com/docs/sms/api/message-resource#fetch-a-message-resource\nReqMap = #{\n   type        =\u003e get_message,          % atom() - bellboy type for send SMS\n   account_sid =\u003e \"TwilioAccountSID\",   % list() - Twilio account SID\n   auth_token  =\u003e \"TwilioAuthToken\",    % list() - Twilio auth token\n   sid         =\u003e \"MsgSid\"              % list() - Twilio SID of SMS message\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:twilio(ReqMap).\n```\n\n## Read Multiple Message Resources By Erlang Twilio\n```erlang\n% https://www.twilio.com/docs/sms/api/message-resource#read-multiple-message-resources\nReqMap = #{\n   type        =\u003e get_messages,         % atom() - bellboy type for send SMS\n   account_sid =\u003e \"TwilioAccountSID\",   % list() - Twilio account SID\n   auth_token  =\u003e \"TwilioAuthToken\"     % list() - Twilio auth token\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:twilio(ReqMap).\n```\n\n# Erlang Nexmo\n## Send SMS By Erlang Nexmo\n```erlang\n% https://developer.nexmo.com/api/sms\nReqMap = #{\n   type        =\u003e send_sms,                 % atom()   - bellboy type for send SMS\n   from        =\u003e \u003c\u003c\"00000000000000000\"\u003e\u003e,  % binary() - Nexmo name or number\n   to          =\u003e \u003c\u003c\"11111111111111111\"\u003e\u003e,  % binary() - User phone number\n   text        =\u003e \u003c\u003c\"Nexmo SMS text\"\u003e\u003e,     % binary() - SMS text\n   api_key     =\u003e \u003c\u003c\"ApiKey\"\u003e\u003e,             % binary() - Nexmo API key\n   api_secret  =\u003e \u003c\u003c\"ApiSecret\"\u003e\u003e           % binary() - Nexmo API secret\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:nexmo(ReqMap).\n```\n## Send PIN By Erlang Nexmo\n```erlang\n% https://developer.nexmo.com/verify/overview \nReqMap = #{\n   type        =\u003e send_pin,             % atom() - bellboy type for send SMS\n   brand       =\u003e \"Brand\",              % list() - Nexmo brand\n   number      =\u003e \"11111111111111111\",  % list() - User phone number\n   code_length =\u003e \"4\",                  % list() - Length of PIN\n   api_key     =\u003e \"ApiKey\",             % list() - Nexmo API key\n   api_secret  =\u003e \"ApiSecret\"           % list() - Nexmo API secret\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:nexmo(ReqMap).\n```\n\n## Check PIN By Erlang Nexmo\n```erlang\n% https://developer.nexmo.com/verify/overview \nReqMap = #{\n   type        =\u003e check_pin,   % atom() - bellboy type for send SMS\n   request_id  =\u003e \"ReqID\",     % list() - Nexmo `request_id` field from `send_pin` response\n   code        =\u003e \"1111\",      % list() - Nexmo PIN code \n   api_key     =\u003e \"ApiKey\",    % list() - Nexmo API key\n   api_secret  =\u003e \"ApiSecret\"  % list() - Nexmo API secret\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:nexmo(ReqMap).\n```\n\n## Cancel PIN By Erlang Nexmo\n```erlang\n% https://developer.nexmo.com/verify/overview \nReqMap = #{\n   type        =\u003e cancel_pin,  % atom() - bellboy type for send SMS\n   request_id  =\u003e \"ReqID\",     % list() - Nexmo `request_id` field from `send_pin` response\n   api_key     =\u003e \"ApiKey\",    % list() - Nexmo API key\n   api_secret  =\u003e \"ApiSecret\"  % list() - Nexmo API secret\n},\n\n% Code     - integer()\n% Body     - map() | list()\n% Response - list()\n{ok, #{code := Code, body := Body, response := FullResp}} = bellboy:nexmo(ReqMap).\n```\n\n# Support\nv.katsuba.dev@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvkatsuba%2Fbellboy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvkatsuba%2Fbellboy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvkatsuba%2Fbellboy/lists"}