cURL
curl --request POST \
--url https://api.cme.sh/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "<string>",
"keywordType": "<string>",
"longUrl": "<string>",
"customDomain": "amazon.com",
"keyword": "myYoutubeChannel"
}
'import requests
url = "https://api.cme.sh/link"
payload = {
"workspaceId": "<string>",
"keywordType": "<string>",
"longUrl": "<string>",
"customDomain": "amazon.com",
"keyword": "myYoutubeChannel"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: '<string>',
keywordType: '<string>',
longUrl: '<string>',
customDomain: 'amazon.com',
keyword: 'myYoutubeChannel'
})
};
fetch('https://api.cme.sh/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cme.sh/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => '<string>',
'keywordType' => '<string>',
'longUrl' => '<string>',
'customDomain' => 'amazon.com',
'keyword' => 'myYoutubeChannel'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cme.sh/link"
payload := strings.NewReader("{\n \"workspaceId\": \"<string>\",\n \"keywordType\": \"<string>\",\n \"longUrl\": \"<string>\",\n \"customDomain\": \"amazon.com\",\n \"keyword\": \"myYoutubeChannel\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cme.sh/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"<string>\",\n \"keywordType\": \"<string>\",\n \"longUrl\": \"<string>\",\n \"customDomain\": \"amazon.com\",\n \"keyword\": \"myYoutubeChannel\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cme.sh/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"<string>\",\n \"keywordType\": \"<string>\",\n \"longUrl\": \"<string>\",\n \"customDomain\": \"amazon.com\",\n \"keyword\": \"myYoutubeChannel\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"data": {
"linkId": "<string>",
"keyWordExist": true,
"shortUrl": "<string>",
"recommendedUrls": [
"<unknown>"
],
"failToGenerateHash": true
}
}{
"status": true,
"errors": [
{
"code": "<string>",
"errorMessage": "<string>"
}
]
}Links
Create Link
Create a new link for the authenticated workspace.
POST
/
link
cURL
curl --request POST \
--url https://api.cme.sh/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "<string>",
"keywordType": "<string>",
"longUrl": "<string>",
"customDomain": "amazon.com",
"keyword": "myYoutubeChannel"
}
'import requests
url = "https://api.cme.sh/link"
payload = {
"workspaceId": "<string>",
"keywordType": "<string>",
"longUrl": "<string>",
"customDomain": "amazon.com",
"keyword": "myYoutubeChannel"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: '<string>',
keywordType: '<string>',
longUrl: '<string>',
customDomain: 'amazon.com',
keyword: 'myYoutubeChannel'
})
};
fetch('https://api.cme.sh/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cme.sh/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => '<string>',
'keywordType' => '<string>',
'longUrl' => '<string>',
'customDomain' => 'amazon.com',
'keyword' => 'myYoutubeChannel'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.cme.sh/link"
payload := strings.NewReader("{\n \"workspaceId\": \"<string>\",\n \"keywordType\": \"<string>\",\n \"longUrl\": \"<string>\",\n \"customDomain\": \"amazon.com\",\n \"keyword\": \"myYoutubeChannel\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.cme.sh/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"<string>\",\n \"keywordType\": \"<string>\",\n \"longUrl\": \"<string>\",\n \"customDomain\": \"amazon.com\",\n \"keyword\": \"myYoutubeChannel\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cme.sh/link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"<string>\",\n \"keywordType\": \"<string>\",\n \"longUrl\": \"<string>\",\n \"customDomain\": \"amazon.com\",\n \"keyword\": \"myYoutubeChannel\"\n}"
response = http.request(request)
puts response.read_body{
"status": true,
"data": {
"linkId": "<string>",
"keyWordExist": true,
"shortUrl": "<string>",
"recommendedUrls": [
"<unknown>"
],
"failToGenerateHash": true
}
}{
"status": true,
"errors": [
{
"code": "<string>",
"errorMessage": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Create a new link for the authenticated workspace.
Id of the Workspace
The type slug we use for shortening the url. It can be either HASH or CUSTOM
The long url for shortening
The custom domain value if have any custom domain setupped in the workspace to create short url. It can be null if not configured
Example:
"amazon.com"
Custom keyword/slug for shortening url if keywordType selected as CUSTOM
Example:
"myYoutubeChannel"
⌘I