Integrate ClipSend into your applications with our REST API
Enter your API Key and all code examples will update automatically so you can copy and paste directly.
All API requests require authentication via the header X-API-Key.
curl -H "X-API-Key: YOUR_API_KEY" \
https://www.clipsend.net/api/usage
import requests
headers = {
"X-API-Key": "YOUR_API_KEY"
}
response = requests.get(
"https://www.clipsend.net/api/usage",
headers=headers
)
print(response.json())
const response = await fetch("https://www.clipsend.net/api/usage", {
headers: {
"X-API-Key": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(data);
<?php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://www.clipsend.net/api/usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"X-API-Key: YOUR_API_KEY"
]
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
print_r($data);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://www.clipsend.net/api/usage", nil)
req.Header.Set("X-API-Key", "YOUR_API_KEY")
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://www.clipsend.net/api/usage")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = "YOUR_API_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.parse(response.body)
Create a new link with content that will self-destruct after being viewed.
| Parameter | Type | Description |
|---|---|---|
| content required | string | The secret content to share |
| max_uses optional | integer | Number of allowed views: 1, 2, 5, 10. Default: 1 |
| slug optional | string | Custom slug for the URL. If not provided, a random one will be generated |
curl -X POST https://www.clipsend.net/api/links \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content": "Mi mensaje secreto", "max_uses": 1, "slug": "mi-slug"}'
import requests
response = requests.post(
"https://www.clipsend.net/api/links",
headers={
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"content": "Mi mensaje secreto",
"max_uses": 1,
"slug": "mi-slug" # opcional
}
)
data = response.json()
print(f"Link creado: {data['link']}")
const response = await fetch("https://www.clipsend.net/api/links", {
method: "POST",
headers: {
"X-API-Key": "YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
content: "Mi mensaje secreto",
max_uses: 1,
slug: "mi-slug" // opcional
})
});
const data = await response.json();
console.log(`Link creado: ${data.link}`);
<?php
$ch = curl_init();
$payload = json_encode([
"content" => "Mi mensaje secreto",
"max_uses" => 1,
"slug" => "mi-slug" // opcional
]);
curl_setopt_array($ch, [
CURLOPT_URL => "https://www.clipsend.net/api/links",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => [
"X-API-Key: YOUR_API_KEY",
"Content-Type: application/json"
]
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
echo "Link creado: " . $data['link'];
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
payload, _ := json.Marshal(map[string]interface{}{
"content": "Mi mensaje secreto",
"max_uses": 1,
"slug": "mi-slug",
})
req, _ := http.NewRequest("POST", "https://www.clipsend.net/api/links",
bytes.NewBuffer(payload))
req.Header.Set("X-API-Key", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
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://www.clipsend.net/api/links")
request = Net::HTTP::Post.new(uri)
request["X-API-Key"] = "YOUR_API_KEY"
request["Content-Type"] = "application/json"
request.body = {
content: "Mi mensaje secreto",
max_uses: 1,
slug: "mi-slug"
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)
puts "Link creado: #{data['link']}"
{
"success": true,
"link": "https://www.clipsend.net/mi-slug",
"slug": "mi-slug",
"max_uses": 1
}
Retrieves all active links and reserved slugs for the user.
curl "https://www.clipsend.net/api/links" \
-H "X-API-Key: YOUR_API_KEY"
import requests
response = requests.get(
"https://www.clipsend.net/api/links",
headers={"X-API-Key": "YOUR_API_KEY"}
)
print(response.json())
const response = await fetch("https://www.clipsend.net/api/links", {
headers: {
"X-API-Key": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(data);
{
"success": true,
"links": {
"mi-slug": {
"type": "link",
"slug": "mi-slug",
"content": "Mi mensaje secreto",
"current_uses": 0,
"remaining_uses": 1,
"created_at": "2025-12-13 14:59:43",
"max_uses": 1,
"url": "https://www.clipsend.net/mi-slug"
},
"mi-marca": {
"type": "reserved",
"slug": "mi-marca",
"url": "https://www.clipsend.net/mi-marca",
"is_paid": true,
"created_at": "2025-12-10 09:30:00"
}
}
}
Retrieves the content of a link. β οΈ This action consumes one use of the link (burn after reading).
| ParΓ‘metro | Tipo | DescripciΓ³n |
|---|---|---|
| slug required | string | The unique identifier of the link |
curl "https://www.clipsend.net/api/links?slug=mi-slug" \
-H "X-API-Key: YOUR_API_KEY"
import requests
response = requests.get(
"https://www.clipsend.net/api/links",
params={"slug": "mi-slug"},
headers={"X-API-Key": "YOUR_API_KEY"}
)
data = response.json()
print(f"Contenido: {data['content']}")
const response = await fetch(
"https://www.clipsend.net/api/links?slug=mi-slug",
{
headers: {
"X-API-Key": "YOUR_API_KEY"
}
}
);
const data = await response.json();
console.log(`Contenido: ${data.content}`);
<?php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://www.clipsend.net/api/links?slug=mi-slug",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"X-API-Key: YOUR_API_KEY"
]
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
echo "Contenido: " . $data['content'];
{
"success": true,
"content": "Mi mensaje secreto",
"remaining_uses": 0,
"slug": "mi-slug"
}
Check your current API key usage for this month.
curl https://www.clipsend.net/api/usage \
-H "X-API-Key: YOUR_API_KEY"
import requests
response = requests.get(
"https://www.clipsend.net/api/usage",
headers={"X-API-Key": "YOUR_API_KEY"}
)
data = response.json()
print(f"Llamadas este mes: {data['calls_this_month']}/{data['limit']}")
const response = await fetch("https://www.clipsend.net/api/usage", {
headers: {
"X-API-Key": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(`Llamadas este mes: ${data.calls_this_month}/${data.limit}`);
{
"success": true,
"calls_this_month": 42,
"limit": 1000,
"remaining": 958
}
The API uses standard HTTP status codes to indicate the result of requests.
Invalid or missing parameters
Invalid or missing API key
You do not have access to the API (free plan)
Link does not exist
Link has expired or reached maximum uses
Monthly API limit reached