API Documentation

Build integrations with the Sendo API. Available on Pro plans and above.

🔑 Getting Started: Get your API key from Settings → API in your dashboard. Keep it secure and never share it publicly.

Base URL

https://api.sndo.app/v1

Authentication

All API requests require authentication using your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Rate Limits

Plan Rate Limit
Pro 50,000 requests/month
Business 250,000 requests/month
Enterprise Custom (unlimited available)

Endpoints

POST /links

Create a new short link.

Request Body

Parameter Type Required Description
url string Yes The original URL to shorten
customCode string No Custom short code (3-20 characters)
title string No Link title/description
domain string No Custom domain (Pro+)
expiresAt datetime No Expiration date (ISO 8601)

Example Request

curl -X POST https://api.sndo.app/v1/links \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/very-long-url",
    "customCode": "example",
    "title": "My Example Link"
  }'

Example Response

{
  "id": 123,
  "shortCode": "example",
  "shortUrl": "https://sndo.app/example",
  "originalUrl": "https://example.com/very-long-url",
  "title": "My Example Link",
  "clicks": 0,
  "createdAt": "2026-01-10T12:00:00Z"
}

GET /links

List all your short links.

Query Parameters

Parameter Type Description
page integer Page number (default: 1)
limit integer Results per page (max: 100, default: 50)
search string Search by title or URL

Example Request

curl -X GET "https://api.sndo.app/v1/links?page=1&limit=50" \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /links/:id

Get details of a specific link.

Example Request

curl -X GET https://api.sndo.app/v1/links/123 \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /links/:id/stats

Get analytics for a specific link.

Query Parameters

Parameter Type Description
from date Start date (ISO 8601)
to date End date (ISO 8601)

Example Response

{
  "totalClicks": 1250,
  "uniqueClicks": 890,
  "clicksByCountry": {
    "US": 450,
    "GB": 280,
    "DE": 190
  },
  "clicksByDevice": {
    "desktop": 620,
    "mobile": 580,
    "tablet": 50
  },
  "clicksByBrowser": {
    "Chrome": 750,
    "Safari": 320,
    "Firefox": 180
  }
}

DELETE /links/:id

Delete a short link.

Example Request

curl -X DELETE https://api.sndo.app/v1/links/123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Error Responses

The API uses standard HTTP status codes:

Status Code Description
200 Success
201 Created successfully
400 Bad request (invalid parameters)
401 Unauthorized (invalid API key)
403 Forbidden (plan limit exceeded)
404 Not found
429 Rate limit exceeded
500 Server error

Error Response Format

{
  "error": "Invalid API key",
  "code": "UNAUTHORIZED",
  "status": 401
}

Webhooks (Business+)

Configure webhooks to receive real-time notifications for events:

Configure webhooks in Settings → Webhooks in your dashboard.

SDKs and Libraries

Official SDKs coming soon for:

Support

Need help with the API? Contact us: