Morse Code
Morse Code is a simple tool for encoding and decoding Morse code. It returns the encoded or decoded Morse code.
This API provides reliable and fast access to morse code data through a simple REST interface. Built for developers who need consistent, high-quality results with minimal setup time.
To use this API, you need an API key. You can get one by creating a free account and visiting your dashboard.
View API in DirectoryEndpoint
POST https://api.apiverve.com/v1/morsecode
Code Examples
Here are examples of how to call this API in different programming languages:
curl -X POST \
"https://api.apiverve.com/v1/morsecode" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"audio": true,
"text": "This Is A Message"
}'
const response = await fetch('https://api.apiverve.com/v1/morsecode', {
method: 'POST',
headers: {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"audio": true,
"text": "This Is A Message"
})
});
const data = await response.json();
console.log(data);
import requests
headers = {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
}
payload = {
"audio": true,
"text": "This Is A Message"
}
response = requests.post('https://api.apiverve.com/v1/morsecode', headers=headers, json=payload)
data = response.json()
print(data)
const https = require('https');
const url = require('url');
const options = {
method: 'POST',
headers: {
'X-API-Key': 'your_api_key_here',
'Content-Type': 'application/json'
}
};
const postData = JSON.stringify({
"audio": true,
"text": "This Is A Message"
});
const req = https.request('https://api.apiverve.com/v1/morsecode', options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => console.log(JSON.parse(data)));
});
req.write(postData);
req.end();
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.apiverve.com/v1/morsecode');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: your_api_key_here',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode({
'audio': true,
'text': 'This Is A Message'
}));
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
print_r($data);
?>
package main
import (
"fmt"
"io"
"net/http"
"bytes"
"encoding/json"
)
func main() {
payload := map[string]interface{}{
"audio": "true",
"text": "This Is A Message"
}
jsonPayload, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.apiverve.com/v1/morsecode", bytes.NewBuffer(jsonPayload))
req.Header.Set("X-API-Key", "your_api_key_here")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
require 'net/http'
require 'json'
uri = URI('https://api.apiverve.com/v1/morsecode')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
payload = {
"audio": true,
"text": "This Is A Message"
}
request = Net::HTTP::Post.new(uri)
request['X-API-Key'] = 'your_api_key_here'
request['Content-Type'] = 'application/json'
request.body = payload.to_json
response = http.request(request)
puts JSON.pretty_generate(JSON.parse(response.body))
Authentication
This API requires authentication via API key. Include your API key in the request header:
X-API-Key: your_api_key_here
Parameters
The following parameters are available for this API endpoint:
Parameter | Type | Required | Location | Description | Example |
---|---|---|---|---|---|
text | string | Yes | body | The text to encode or decode in Morse code | This Is A Message |
Response
The API returns responses in JSON, XML, and YAML formats:
Example Responses
{
"status": "ok",
"error": null,
"data": {
"text": "This Is A Message",
"morse": "- .... .. ... / .. ... / .- / -- . ... ... .- --. . ",
"stats": {
"characters": 17,
"dits": 25,
"dahs": 7
},
"valid": true,
"audio": {
"audioFile": "9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav",
"format": ".wav",
"downloadURL": "https://storage.googleapis.com/apiverve.appspot.com/morsecode/9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1760978073&Signature=msdNuo4gid8r%2F89Tkuo9ybJOh2qccrs9ceqDXX4QAmeTMVNVwqWeLh1ULL2%2BXQAo4p%2FBav7x7K7xIJQyDFqyIMsqlZnSopGHvaFAKLF7K%2BJZlZORk3XrG0KN2VvvTrGWbOLytOdPa8xlxYeWNQZjA48QyNCWgDEG5ovLcbS3HWrPM%2BYz4yE80MV60eb6orHaA0%2FQsVuPAKNYta1GwcyXWGU7HzP8gAUhf6tdsG6bdvcv7Vs92iKv0fSKxxsHiziVe6zQQOKqAzMtzTg9RnujEVksCiq7KzRMsSLKizWBLRvPokEpbaydds8N%2B35fQztmnykFCQ2RDXxxoHQsB2fZzQ%3D%3D",
"duration": "13.20s",
"frequency": "600Hz",
"sampleRate": "44100Hz",
"expires": 1760978073054
}
}
}
<Root>
<status>ok</status>
<error />
<data>
<text>This Is A Message</text>
<morse>- .... .. ... / .. ... / .- / -- . ... ... .- --. . </morse>
<stats>
<characters>17</characters>
<dits>25</dits>
<dahs>7</dahs>
</stats>
<valid>true</valid>
<audio>
<audioFile>9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav</audioFile>
<format>.wav</format>
<downloadURL>https://storage.googleapis.com/apiverve.appspot.com/morsecode/9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1760978073&Signature=msdNuo4gid8r%2F89Tkuo9ybJOh2qccrs9ceqDXX4QAmeTMVNVwqWeLh1ULL2%2BXQAo4p%2FBav7x7K7xIJQyDFqyIMsqlZnSopGHvaFAKLF7K%2BJZlZORk3XrG0KN2VvvTrGWbOLytOdPa8xlxYeWNQZjA48QyNCWgDEG5ovLcbS3HWrPM%2BYz4yE80MV60eb6orHaA0%2FQsVuPAKNYta1GwcyXWGU7HzP8gAUhf6tdsG6bdvcv7Vs92iKv0fSKxxsHiziVe6zQQOKqAzMtzTg9RnujEVksCiq7KzRMsSLKizWBLRvPokEpbaydds8N%2B35fQztmnykFCQ2RDXxxoHQsB2fZzQ%3D%3D</downloadURL>
<duration>13.20s</duration>
<frequency>600Hz</frequency>
<sampleRate>44100Hz</sampleRate>
<expires>1760978073054</expires>
</audio>
</data>
</Root>
status: ok
error:
data:
text: This Is A Message
morse: '- .... .. ... / .. ... / .- / -- . ... ... .- --. . '
stats:
characters: 17
dits: 25
dahs: 7
valid: true
audio:
audioFile: 9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav
format: .wav
downloadURL: https://storage.googleapis.com/apiverve.appspot.com/morsecode/9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1760978073&Signature=msdNuo4gid8r%2F89Tkuo9ybJOh2qccrs9ceqDXX4QAmeTMVNVwqWeLh1ULL2%2BXQAo4p%2FBav7x7K7xIJQyDFqyIMsqlZnSopGHvaFAKLF7K%2BJZlZORk3XrG0KN2VvvTrGWbOLytOdPa8xlxYeWNQZjA48QyNCWgDEG5ovLcbS3HWrPM%2BYz4yE80MV60eb6orHaA0%2FQsVuPAKNYta1GwcyXWGU7HzP8gAUhf6tdsG6bdvcv7Vs92iKv0fSKxxsHiziVe6zQQOKqAzMtzTg9RnujEVksCiq7KzRMsSLKizWBLRvPokEpbaydds8N%2B35fQztmnykFCQ2RDXxxoHQsB2fZzQ%3D%3D
duration: 13.20s
frequency: 600Hz
sampleRate: 44100Hz
expires: 1760978073054
Response Structure
All API responses follow a consistent structure with the following fields:
Field | Type | Description | Example |
---|---|---|---|
status | string | Indicates whether the request was successful ("ok") or failed ("error") | ok |
error | string | null | Contains error message if status is "error", otherwise null | null |
data | object | null | Contains the API response data if successful, otherwise null | {...} |
Response Data Fields
When the request is successful, the data
object contains the following fields:
Field | Type | Sample Value |
---|---|---|
text | string | "This Is A Message" |
morse | string | "- .... .. ... / .. ... / .- / -- . ... ... .- --. . " |
stats | object | {...} |
stats.characters | number | 17 |
stats.dits | number | 25 |
stats.dahs | number | 7 |
valid | boolean | true |
audio | object | {...} |
audio.audioFile | string | "9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav" |
audio.format | string | ".wav" |
audio.downloadURL | string | "https://storage.googleapis.com/apiverve.appspot.com/morsecode/9187cc09-7f1c-4ef6-91b2-47b45a779d37.wav?GoogleAccessId=635500398038-compute%40developer.gserviceaccount.com&Expires=1760978073&Signature=msdNuo4gid8r%2F89Tkuo9ybJOh2qccrs9ceqDXX4QAmeTMVNVwqWeLh1ULL2%2BXQAo4p%2FBav7x7K7xIJQyDFqyIMsqlZnSopGHvaFAKLF7K%2BJZlZORk3XrG0KN2VvvTrGWbOLytOdPa8xlxYeWNQZjA48QyNCWgDEG5ovLcbS3HWrPM%2BYz4yE80MV60eb6orHaA0%2FQsVuPAKNYta1GwcyXWGU7HzP8gAUhf6tdsG6bdvcv7Vs92iKv0fSKxxsHiziVe6zQQOKqAzMtzTg9RnujEVksCiq7KzRMsSLKizWBLRvPokEpbaydds8N%2B35fQztmnykFCQ2RDXxxoHQsB2fZzQ%3D%3D" |
audio.duration | string | "13.20s" |
audio.frequency | string | "600Hz" |
audio.sampleRate | string | "44100Hz" |
audio.expires | number | 1760978073054 |
Headers
Required and optional headers for API requests:
Header Name | Required | Example Value | Description |
---|---|---|---|
X-API-Key | Yes | your_api_key_here | Your APIVerve API key. Found in your dashboard under API Keys. |
Accept | No | application/json | Specify response format: application/json (default), application/xml, or application/yaml |
User-Agent | No | MyApp/1.0 | Identifies your application for analytics and debugging purposes |
X-Request-ID | No | req_123456789 | Custom request identifier for tracking and debugging requests |
Cache-Control | No | no-cache | Control caching behavior for the request and response |
Client Libraries
To get started with minimal code, most of our APIs are available through client libraries and clients:
Error Codes
The API uses standard HTTP status codes to indicate success or failure:
Status Code | Message | Description |
---|---|---|
200 | OK | Request successful, data returned |
400 | Bad Request | Invalid request parameters or malformed request |
401 | Unauthorized | Missing or invalid API key |
403 | Forbidden | API key does not have permission for this endpoint |
429 | Too Many Requests | Rate limit exceeded, please slow down requests |
500 | Internal Server Error | Server error, please try again later |
Was this page helpful?
Help us improve our documentation