docsAPI DocumentationLink Locker

Link Locker

Integrate link creation directly into your applications with our powerful REST API.

Getting Started: Find your API key in Dashboard › Settings › Profile to start making requests.


Authentication

Your API key is required for all requests. Include it using one of these methods:

Method 1: Bearer Token (POST Requests)

Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Method 2: Query Parameter (GET Requests)

Include your API key as a query parameter:

?api_token=YOUR_API_KEY
⚠️

Security: Keep your API key secret. Do not share it publicly or commit it to GitHub.


Create monetized links programmatically.

Endpoint

POST/GET https://admint.club/api/link

Request Parameters

FieldTypeRequiredDescription
titlestringLink title (max 30 characters)
urlstringDestination URL (must be valid)
monetizationLevelstringlow, medium, high, or maximum
checkpointsnumberNumber of checkpoints (1-5)
allowIncognitobooleanOptionalAllow incognito users (default: true)

POST Request Example

curl -X POST https://admint.club/api/link \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My Awesome Link",
    "url": "https://example.com",
    "monetizationLevel": "medium",
    "checkpoints": 3,
    "allowIncognito": true
  }'

Success Response

{
  "type": "created",
  "request_time": 245,
  "message": {
    "title": "My Awesome Link",
    "url": "https://example.com",
    "monetizationLevel": "medium",
    "checkpoints": 3,
    "allowIncognito": true,
    "short": "abc123",
    "link_url": "https://admint.club/l/abc123"
  }
}

Error Response

{
  "type": "error",
  "request_time": 12,
  "message": "Missing mandatory field: title"
}

GET Request Example

curl "https://admint.club/api/link?api_token=YOUR_API_KEY&title=My+Link&url=https://example.com&monetizationLevel=medium&checkpoints=3"

Code Examples

Node.js (POST)

const axios = require('axios');
 
const url = 'https://admint.club/api/link';
const headers = {
  Authorization: 'Bearer YOUR_API_KEY',
  'Content-Type': 'application/json'
};
 
const data = {
  title: 'My Awesome Link',
  url: 'https://example.com',
  monetizationLevel: 'medium',
  checkpoints: 3,
  allowIncognito: true
};
 
axios.post(url, data, { headers })
  .then(response => console.log(response.data))
  .catch(error => console.error('Error:', error));

Node.js (GET)

const axios = require('axios');
 
const apiToken = 'YOUR_API_KEY';
const url = `https://admint.club/api/link?api_token=${apiToken}&title=My+Link&url=https://example.com&monetizationLevel=medium&checkpoints=3`;
 
axios.get(url)
  .then(response => console.log(response.data))
  .catch(error => console.error('Error:', error));

Python (POST)

import requests
 
url = "https://admint.club/api/link"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
 
data = {
    "title": "My Awesome Link",
    "url": "https://example.com",
    "monetizationLevel": "medium",
    "checkpoints": 3,
    "allowIncognito": True
}
 
response = requests.post(url, headers=headers, json=data)
print(response.json())

Python (GET)

import requests
 
api_token = "YOUR_API_KEY"
url = f"https://admint.club/api/link?api_token={api_token}&title=My+Link&url=https://example.com&monetizationLevel=medium&checkpoints=3"
 
response = requests.get(url)
print(response.json())

Rust (POST)

use reqwest::Client;
use serde_json::json;
 
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();
    let url = "https://admint.club/api/link";
    let api_key = "YOUR_API_KEY";
 
    let resp = client.post(url)
        .bearer_auth(api_key)
        .json(&json!({
            "title": "My Awesome Link",
            "url": "https://example.com",
            "monetizationLevel": "medium",
            "checkpoints": 3,
            "allowIncognito": true
        }))
        .send()
        .await?
        .text()
        .await?;
 
    println!("{}", resp);
    Ok(())
}

Rust (GET)

use reqwest::Client;
 
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();
    let api_key = "YOUR_API_KEY";
    let url = "https://admint.club/api/link";
    
    let params = [
        ("api_token", api_key),
        ("title", "My Awesome Link"),
        ("url", "https://example.com"),
        ("monetizationLevel", "medium"),
        ("checkpoints", "3"),
    ];
 
    let resp = client.get(url)
        .query(&params)
        .send()
        .await?
        .text()
        .await?;
 
    println!("{}", resp);
    Ok(())
}

Rate Limits

Rate limits are enforced per API key. The current limit is 60 requests per minute. If you exceed this limit, you’ll receive a 429 Too Many Requests response.

Response headers include:

  • X-RateLimit-Limit: Maximum requests per second
  • X-RateLimit-Remaining: Remaining requests in current window
  • X-RateLimit-Reset: Time when the rate limit resets (Unix timestamp)

Support

Need help? Contact us: