• advantage_1

    Global Coverage

    Covering local and international voice routes in multiple countries and regions, our platform intelligently selects the optimal route based on the target area, ensuring users around the world enjoy high call completion rates, low latency, and crystal-clear audio quality.

  • High-Quality Voice Routes

    Powered by multiple premium carrier routes and intelligent routing strategies, the system achieves fast call setup and stable transmission, delivering smooth, clear audio while reducing jitter and call drops.

    advantage_2
  • advantage_3

    Customizable Prompts & Voice Settings

    Flexibly adjust speech rate, volume, pitch, and pauses. Support both text‑to‑speech (TTS) and pre‑recorded audio playback or mixed usage, allowing you to build a voice experience that truly matches your brand identity.

  • Real-Time Callbacks & Analytics

    End‑to‑end event callbacks and reporting cover call status, answer results, duration, failure reasons, and more. This enables you to monitor operations, analyze performance, and continuously optimize your communication strategies.

    advantage_4
  • advantage_5

    Security & Compliance

    Number masking, rate limiting, black/white lists, and content control help you comply with privacy and regulatory requirements in multiple countries and regions. The platform is suitable for high‑risk scenarios such as finance, internet services, and other sensitive industries.

  • TTS Voice Messaging
    With TTS (Text‑to‑Speech), preset text is converted into high‑quality audio in real time and delivered to users via automated outbound calls. This is ideal for verification codes (OTP), critical alerts, and any must‑deliver information.
  • PML Programmable Voice
    PML Programmable Voice lets you design highly customized voice flows, including outbound, inbound, IVR (Interactive Voice Response), real‑time multilingual translation, call recording, and fine‑grained call control—delivering a flexible and efficient voice communication experience.
  • Voice Verification Code

    Convert text-based verification codes into spoken audio and play them to users via automatic outbound calls.

    pml_advantage_1
  • pml_advantage_2

    Voice Messages

    Convert text content into speech and automatically dial the user’s phone number to play it back.

" Hello, this is PaaSoo. Your verification code is: 600352. "

tts_scene_1

Getting Started

  • Prepare text/audio content and business variables (e.g., name, verification code, order ID)

  • Select language, voice type, and playback parameters (speed / pitch / pause)

  • Call the API or send voice messages via the self-service console

API Link

All PaaSoo services are accessible using either HTTP or HTTPS. However, for security reasons, we highly recommend all our customers to use the HTTPS protocol.

  • Java
  • PHP
              
    import org.apache.http.HttpEntity;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     *  Java code example for SMS HTTP API
     *  Voice API
     *  Based on Apache HttpClient 4.X
     */
    public class JavaSmsApi {
        // Encoding format. UTF-8 is uniformly used for sending encoding
        private static String ENCODING = "UTF-8";
        // Voice URL
        private static String URI_VOICE_TTS = "https://api.paasoo.com/voice/tts";
    
        public static void main(String[] args) throws Exception {
            // Parameters
            String key = "********";
            String secret = "********";
            String from = "********";
            String to = "********";
            String text = "********";
            String lang = "********";
            String repeat = "********";
            String voice = "********";
    
            /**************** Voice API invocation example *****************/
            System.out.println(JavaSmsApi.getVoiceTts(key, secret, from, to, text, lang, repeat, voice));
    
        }
    
        /**
         * Voice API
         * @param key       API Account
         * @param secret    API Password
         * @param from      Caller ID
         * @param to        Destination number
         * @param lang      Language of the voice message received by the recipient
         * @param text      Message content
         * @param repeat    Number of times the message is broadcast
         * @param voice     Voice
         * @return json     Formatted string
         * @throws Exception
         */
    
        public static String getVoiceTts(String key, String secret, String from, String to, String text, String lang, String repeat, String voice) throws Exception {
            Map<String, String> params = new HashMap<String, String>();
            params.put("key", key);
            params.put("secret", secret);
            params.put("from", from);
            params.put("to", to);
            params.put("text", text);
            params.put("lang", lang);
            params.put("repeat", repeat);
            params.put("voice", voice);
            return get(URI_VOICE_TTS, params);
        }
        /**
         * Generic GET method based on HttpClient 4.X
         *
         * @param url        Request URL
         * @param paramsMap  Submitted <Parameter Value> Map
         * @return           Response
         */
    
        public static String get(String url, Map<String, String> paramsMap) throws Exception {
            CloseableHttpClient httpClient = HttpClients.createDefault();
            CloseableHttpResponse response = null;
            InputStream is = null;
            try {
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                for (Map.Entry<String, String> param : paramsMap.entrySet()) {
                    NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue());
                    params.add(pair);
                }
                String str = EntityUtils.toString(new UrlEncodedFormEntity(params, ENCODING));
                HttpGet httpGet = new HttpGet(url + "?" + str);
                response = httpClient.execute(httpGet);
                HttpEntity entity = response.getEntity();
                String result = EntityUtils.toString(entity);
                return result;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (is != null) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (response != null) {
                    try {
                        response.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if (httpClient != null) {
                    try {
                        httpClient.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return null;
        }
    }
	
            
Tell us your target regions and business scenarios, and we will provide the most suitable routes and pricing for your needs

Please contact us for more details

Apple Messages
Telegram
WhatsApp
LINE