API రిఫరెన్స్

REST API
మీ లింక్‌లపై నిర్మించండి.

API టోకెన్‌తో ఆథెంటికేట్ చేయండి, లింక్‌లను జాబితా చేసి సృష్టించండి, సందర్శనలను చదవండి మరియు వెబ్‌హుక్‌లకు సబ్‌స్క్రైబ్ చేయండి.

బేస్ URL https://letl.ink/api/v1 HTTPS మాత్రమే

ప్లాన్‌లు Growth Ultimate
ఈ పేజీలో

ప్రారంభించడం

REST API Growth మరియు Ultimate ప్లాన్‌లలో అందుబాటులో ఉంది. అభ్యర్థనలు HTTPS ద్వారా https://letl.ink/api/v1కు వెళ్తాయి. Free లేదా Solo ప్లాన్‌లోని వర్క్‌స్పేస్‌కు /api/v1 నుండి 403 plan_required వస్తుంది; MCP ఎండ్‌పాయింట్ విడిగా Ultimate ప్లాన్‌కు పరిమితం చేయబడింది.

  1. ఇంటిగ్రేషన్‌లు → REST API తెరవండి (వర్క్‌స్పేస్ యజమానులు మరియు అడ్మిన్‌లకు మాత్రమే).
  2. టోకెన్ రూపొందించండి. దీనికి గడువు ఉండదు.
  3. దీన్ని పాస్‌వర్డ్‌లా భద్రపరచండి. ఒకే టోకెన్ REST API, MCP సర్వర్ మరియు ఈ వర్క్‌స్పేస్‌కు కనెక్ట్ చేసిన ప్రతి ఆటోమేషన్ ప్లాట్‌ఫామ్‌కు పనిచేస్తుంది, కాబట్టి దాన్ని మళ్లీ రూపొందిస్తే అవన్నీ ఒకేసారి చెల్లకుండా పోతాయి.

టోకెన్ ఇప్పటికే రూపొందించబడి ఉంటే సభ్యులు దాన్ని కాపీ చేయవచ్చు; ఓనర్‌లు మరియు అడ్మిన్‌లు మాత్రమే దాన్ని మార్చగలరు.

ఆథెంటికేషన్

టోకెన్‌ను X-API-KEYగా లేదా Authorization: Bearerగా పంపండి. /api/v1 మరియు /mcp రెండింటిలోనూ రెండూ అంగీకరించబడతాయి. టోకెన్ అసలు లేని రిక్వెస్ట్ 401 unauthenticatedను తిరిగి ఇస్తుంది.

GET నేను ఎవరు?
curl -H "X-API-KEY: YOUR_TOKEN" \
  https://letl.ink/api/v1/auth/me

సమానమైన హెడర్: Authorization: Bearer YOUR_TOKEN

సంప్రదాయాలు

ఇవి కింది అన్ని ఎండ్‌పాయింట్‌లకు వర్తిస్తాయి.

రెస్పాన్స్ ఎన్వలప్

ప్రతి విజయవంతమైన రెస్పాన్స్ data కీతో కూడిన JSON ఆబ్జెక్ట్, మరియు ఫలితం గురించి చెప్పడానికి ఏదైనా ఉంటే meta కీ — పేజినేషన్, నిర్ణయించిన తేదీ వ్యవధి, భౌగోళికం చేర్చబడిందా. ప్రతి వైఫల్యం స్థిరమైన code, మనుషులు చదవగల message, మరియు కొన్నిసార్లు details కలిగిన error కీతో కూడిన ఆబ్జెక్ట్. code ఆధారంగా నిర్ణయించండి, మెసేజ్ టెక్స్ట్ ఆధారంగా ఎప్పుడూ కాదు.

ఆకారాలు
// success
{ "data": { … }, "meta": { … } }

// failure
{ "error": { "code": "invalid_parameter",
             "message": "sort must be one of: created_at, clicks.",
             "details": { "parameter": "sort" } } }

పేజినేషన్

జాబితా ఎండ్‌పాయింట్‌లు limit (1–200, డిఫాల్ట్ 50) మరియు offset అంగీకరిస్తాయి. meta బ్లాక్ total, has_more మరియు next_offset నివేదిస్తుంది, కాబట్టి లెక్కలు లేకుండానే పేజీలు మార్చవచ్చు: has_more false అయ్యేవరకు offset = meta.next_offsetతో కాల్ చేస్తూ ఉండండి.

ప్రతి లింక్‌ను పేజీల వారీగా చూడటం
offset=0
while [ "$offset" != "null" ]; do
  page=$(curl -s -H "X-API-KEY: $TOKEN" \
    "https://letl.ink/api/v1/links?limit=200&offset=$offset")
  echo "$page" | jq -c '.data[]'
  offset=$(echo "$page" | jq -r '.meta.next_offset')
done

సార్టింగ్, ఫిల్టరింగ్ మరియు శోధన

GET /links ఇవి అంగీకరిస్తుంది: sort (created_at, clicks, short_code, title, updated_at), direction (asc/desc), search (షార్ట్ కోడ్, టైటిల్ మరియు గమ్యస్థానంలో వెతుకుతుంది), type, archived, favorite మరియు domain. తెలియని విలువలను నిశ్శబ్దంగా విస్మరించకుండా, invalid_parameter మరియు అనుమతించిన విలువల జాబితాతో తిరస్కరిస్తుంది.

తేదీ వ్యవధులు

start_date మరియు end_date YYYY-MM-DD ఫార్మాట్‌ను ఉపయోగిస్తాయి, రెండు రోజులూ కలుపుకొని. వ్యవధి మీ ప్లాన్ డేటా నిలుపుదల పరిమితికి సరిపెట్టబడుతుంది — 30 రోజుల నిలుపుదల ప్లాన్‌ను ఒక సంవత్సరం చరిత్ర అడిగితే అందులో ఉన్న 30 రోజులే వస్తాయి, మరియు meta.date_range వాస్తవంగా ఉపయోగించిన వ్యవధిని చెబుతుంది.

రేట్ పరిమితులు

ప్రతి ఖాతాకు నిమిషానికి 600 రిక్వెస్ట్‌లు, స్లైడింగ్ విండో ఆధారంగా. ప్రతి రెస్పాన్స్‌లో X-RateLimit-Limit, X-RateLimit-Remaining మరియు X-RateLimit-Reset (Unix టైమ్‌స్టాంప్) ఉంటాయి. పరిమితి దాటితే సెకన్లలో Retry-After హెడర్‌తో 429 rate_limited వస్తుంది. వెంటనే మళ్లీ ప్రయత్నించకుండా Retry-After ప్రకారం వేచి ఉండండి.

ప్రతి రెస్పాన్స్‌లోని హెడర్‌లు
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 586
X-RateLimit-Reset: 1789000816

వెర్షనింగ్

పాత్‌లోనే వెర్షన్ ఉంటుంది. రెస్పాన్స్‌కు ఒక ఫీల్డ్‌ను లేదా కొత్త ఐచ్ఛిక పారామీటర్‌ను జోడించడం బ్రేకింగ్ మార్పు కాదు, అది ఎప్పుడైనా జరగవచ్చు, కాబట్టి జాగ్రత్తగా పార్స్ చేసి మీకు తెలియని కీలను విస్మరించండి. ఇప్పటికే ఉన్న ఫీల్డ్‌ను మార్చే లేదా తీసివేసే ఏదైనా కొత్త వెర్షన్ ప్రిఫిక్స్ కింద విడుదలవుతుంది.

ఎండ్‌పాయింట్‌లు

ఖాతా

GET /me కనెక్షన్ టెస్ట్

గుర్తింపు, వర్క్‌స్పేస్, ప్లాన్ మరియు ఆ ప్లాన్‌లోని ప్రతి హక్కు. టోకెన్‌ను ధృవీకరించడానికి మరియు ప్రయత్నించే ముందే ఖాతా ఏమి చేయగలదో తెలుసుకోవడానికి అత్యంత చౌకైన మార్గం.

GET cURL
curl -H "X-API-KEY: YOUR_TOKEN" \
  https://letl.ink/api/v1/me
రెస్పాన్స్ 200
{
  "data": {
    "user": { "id": 1, "email": "[email protected]", "name": "You" },
    "workspace": { "id": 12, "name": "My Workspace", "block_bots": true },
    "plan": {
      "id": "growth",
      "name": "Growth",
      "limits": {
        "links": 200,
        "monthly_clicks": 100000,
        "custom_domains": 3,
        "qr_codes": 30,
        "retention_days": 365
      },
      "features": {
        "api": true,
        "webhooks": true,
        "integrations": true,
        "ai_access": false,
        "geo_analytics": false,
        "smart_link_types": true
      }
    },
    "base_domain": "letl.ink"
  }
}
GET /usage

ఈ బిల్లింగ్ నెలలో ప్రతి కేటాయింపులో ఎంత వినియోగించబడింది. ట్రాక్ చేసే క్లిక్ పరిమితిని చేరే ముందు కస్టమర్‌ను హెచ్చరించడానికి దీన్ని ఉపయోగించండి — అది దాటిన తర్వాత రీడైరెక్ట్ పనిచేస్తుంది, కానీ క్లిక్‌లు నమోదు కావడం ఆగిపోతుంది.

రెస్పాన్స్ 200
{
  "data": {
    "links": { "used": 42, "limit": 200, "remaining": 158, "percent_used": 21.0 },
    "clicks_this_month": { "used": 8140, "limit": 100000, "remaining": 91860, "percent_used": 8.1 },
    "custom_domains": { "used": 1, "limit": 3, "remaining": 2, "percent_used": 33.3 },
    "qr_codes": { "used": 4, "limit": 30, "remaining": 26, "percent_used": 13.3 }
  },
  "meta": { "plan": "growth", "period": "2026-09" }
}
GET /domains

వర్క్‌స్పేస్‌లోని కస్టమ్ డొమైన్‌లు మరియు ప్రతి ఒక్కటి DNS ధృవీకరణ పూర్తి చేసిందో లేదో. లింక్ సృష్టించేటప్పుడు domain ఫీల్డ్‌గా ధృవీకరించిన డొమైన్‌లను మాత్రమే ఉపయోగించవచ్చు.

GET /integrations

ప్రొడక్ట్ అందించే ప్రతి ఇంటిగ్రేషన్, మీ ప్లాన్‌లో ఉందో లేదో, ఈ వర్క్‌స్పేస్ దాన్ని కనెక్ట్ చేసిందో లేదో, మరియు డెలివరీ ఎలా జరుగుతోంది — చివరి స్థితి, చివరి లోపం మరియు వరుస వైఫల్యాల సంఖ్య. అనేక వర్క్‌స్పేస్‌లను మానిటర్ చేయడానికి ఉపయోగపడుతుంది.

లింక్‌లు

అనలిటిక్స్

GET /analytics/summary

మొత్తం వర్క్‌స్పేస్ ముఖ్య సంఖ్యలు: మొత్తం కాలం మరియు వ్యవధిలోని క్లిక్‌లు, ప్రత్యేక సందర్శకులు, QR స్కాన్‌లు, గరిష్ఠ రోజు, మరియు రోజులోని గంట, వారంలోని రోజు వారీ పంపిణీలు. daysను అంగీకరిస్తుంది (డిఫాల్ట్ 30, మీ నిల్వ వ్యవధికి పరిమితం).

రెస్పాన్స్ 200 (సంక్షిప్తం)
{
  "data": {
    "window_days": 30,
    "clicks": {
      "total": 24592, "window": 8140, "last_7_days": 2103,
      "daily_average": 271,
      "peak_day": { "date": "Sep 02", "clicks": 612 }
    },
    "visitors": { "unique_total": 18204, "unique_window": 6021 },
    "qr": { "scans_total": 940, "scans_window": 310 },
    "timing": {
      "by_hour": [12, 4, 2, …],
      "by_weekday": [1420, 1610, 1585, 1490, 1310, 480, 245],
      "peak_hour": { "peakHour": 14, "peakValue": 812, "label": "14:00–14:59" },
      "peak_weekday": { "peakDay": 1, "peakValue": 1610, "label": "Tuesday" }
    },
    "links": { "active": 42, "limit": 200 }
  },
  "meta": { "plan": "growth", "geo_included": true, "retention_days": 365 }
}
GET /analytics/timeseries

చార్ట్ చేయడానికి సిద్ధంగా ఉన్న రోజువారీ క్లిక్ లెక్కలు. ఒక లింక్‌కు పరిమితం చేయడానికి link_id, వ్యవధిని సెట్ చేయడానికి days పంపండి. ట్రాఫిక్ లేని రోజులు వదిలేయబడకుండా సున్నాగా అందించబడతాయి, కాబట్టి సిరీస్ ఎల్లప్పుడూ నిరంతరంగా ఉంటుంది.

రెస్పాన్స్ 200
{
  "data": [
    { "date": "Sep 04", "clicks": 22 },
    { "date": "Sep 05", "clicks": 11 }
  ],
  "meta": { "window_days": 7, "total": 33, "link_id": null }
}
GET /analytics/breakdown

ఒక కొలమానం ఆధారంగా సమూహపరచిన క్లిక్‌లు, ప్రతి వరుసకు మొత్తంలో దాని వాటాతో.

క్వెరీ పారామీటర్‌లు

  • dimension string

    channel, referrer, device, browser, os, brand, variation లేదా country. browser, os, brand మరియు variationకు link_id అవసరం.

    తప్పనిసరి
  • link_id integer

    ఒక లింక్‌కు పరిమితం చేయండి. మొత్తం వర్క్‌స్పేస్ కోసం వదిలేయండి.

    ఐచ్ఛికం
  • limit integer

    1–100. డిఫాల్ట్ 10.

    ఐచ్ఛికం
రెస్పాన్స్ 200
{
  "data": [
    { "label": "Search", "value": 215, "share": 33.1 },
    { "label": "Social", "value": 201, "share": 30.9 },
    { "label": "Direct / none", "value": 142, "share": 21.8 }
  ],
  "meta": { "dimension": "channel", "link_id": 49, "total": 650 }
}
GET /events పేజీలుగా విభజించబడింది

వర్క్‌స్పేస్‌లోని అన్ని లింక్‌ల ముడి సందర్శనల ఫీడ్, కొత్తవి ముందు. ఇది GET /visitsకు ఆధునిక ప్రత్యామ్నాయం: అదే డేటా, స్టాండర్డ్ ఎన్వలప్, limit మరియు offset సపోర్ట్.

రెస్పాన్స్ 200
{
  "data": [
    {
      "id": 2691,
      "link_id": 49,
      "short_code": "spring",
      "occurred_at": "2026-09-10T22:45:33+00:00",
      "ip_address": "203.0.113.7",
      "referrer": "https://twitter.com/",
      "browser": "Chrome",
      "os": "iOS",
      "device_type": "mobile",
      "device_brand": "Apple",
      "country": "US",
      "variation": "control"
    }
  ],
  "meta": { "limit": 50, "returned": 50, "geo_included": true }
}

వెబ్‌హుక్‌లు

GET /hooks

ఈ ఖాతాలో నమోదు చేసిన వెబ్‌హుక్ ఎండ్‌పాయింట్‌లు.

POST /hooks

నమోదైన ప్రతి క్లిక్‌పై JSON పేలోడ్‌ను అందుకోవడానికి HTTPS ఎండ్‌పాయింట్‌ను నమోదు చేయండి. ఖాతాకు 25 వరకు. విఫలమైన డెలివరీలు ఆటోమేటిక్‌గా మళ్లీ ప్రయత్నించబడతాయి.

JSON బాడీ

  • target_url

    https:// అయి ఉండాలి.

    తప్పనిసరి
  • event

    డిఫాల్ట్ link_visited, ప్రస్తుతం ఇదే ఏకైక ఈవెంట్.

    ఐచ్ఛికం
POST cURL
curl -X POST https://letl.ink/api/v1/hooks \
  -H "X-API-KEY: YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"target_url": "https://example.com/hooks/clicks"}'
DELETE /hooks/{id}

వెబ్‌హుక్ ఎండ్‌పాయింట్‌ను తొలగించండి. Zapier REST Hook ఫ్లో కోసం POST /hooks/subscribe మరియు DELETE /hooks/unsubscribe/{id} అందుబాటులోనే ఉంటాయి.

లెగసీ

GET /auth/me లెగసీ

అసలైన కనెక్షన్ టెస్ట్: మీ యూజర్ id, ఈమెయిల్ మరియు వర్క్‌స్పేస్ id/పేరును ఫ్లాట్ ఆబ్జెక్ట్‌గా తిరిగి ఇస్తుంది. GET /me అదే గుర్తింపుతో పాటు మీ ప్లాన్ పరిమితులు మరియు ఫీచర్ ఫ్లాగ్‌లను కూడా తిరిగి ఇస్తుంది, కొత్త కోడ్‌కు అదే మెరుగైన ఎంపిక.

GET cURL
curl -H "X-API-KEY: YOUR_TOKEN" \
  https://letl.ink/api/v1/auth/me
రెస్పాన్స్ 200
{
  "id": 1,
  "email": "[email protected]",
  "workspace_id": 12,
  "workspace_name": "My Workspace"
}
GET /visits లెగసీ

వర్క్‌స్పేస్ అంతటా 50 ఇటీవలి సందర్శనలు ఎన్వలప్ లేని JSON arrayగా — visit_id, visit_time, link_shortcode మరియు visitor_* ఫీల్డ్ పేర్లతో. Zapier REST Hook "perform list" స్టెప్ దీన్నే చదువుతుంది, కాబట్టి దీని ఆకారం స్థిరం చేయబడింది. కొత్త పని కోసం GET /events ఉపయోగించండి.

POST /hooks/subscribe Zapier

REST Hook సబ్‌స్క్రైబ్. target_url మరియు ఐచ్ఛిక event (డిఫాల్ట్ link_visited) తీసుకుని, సృష్టించిన సబ్‌స్క్రిప్షన్‌ను ఎన్వలప్ లేకుండా నేరుగా తిరిగి ఇస్తుంది. POST /hooks అదే ఆపరేషన్ స్టాండర్డ్ రూపంలో.

DELETE /hooks/unsubscribe/{id} Zapier

REST Hook అన్‌సబ్‌స్క్రైబ్, {"success": true}ను తిరిగి ఇస్తుంది. DELETE /hooks/{id} స్టాండర్డ్ రూపంలో దీనికి సమానం.

లోపాలు

  • 400 invalid_request

    బాడీ JSON ఆబ్జెక్ట్ కాదు, లేదా తప్పనిసరి ఫీల్డ్ లేదు.

  • 400 invalid_parameter

    క్వెరీ పారామీటర్ తప్పు ఫార్మాట్‌లో ఉంది లేదా అనుమతించిన విలువల్లో లేదు. details.parameter సమస్య ఉన్నదాని పేరు చెబుతుంది.

  • 401 unauthenticated

    టోకెన్ పంపబడలేదు. X-API-KEY లేదా Authorization: Bearer జోడించండి.

  • 401 invalid_token

    ఈ టోకెన్ ఏ ఖాతాతోనూ సరిపోలడం లేదు. దాన్ని మళ్లీ జనరేట్ చేసి ఉండవచ్చు.

  • 403 plan_required

    ఖాతా ప్లాన్‌లో ఈ ఎండ్‌పాయింట్ లేదా ఫీచర్ లేదు. details.upgrade_url బిల్లింగ్‌ను సూచిస్తుంది.

  • 403 forbidden

    ఆథెంటికేట్ అయింది, కానీ అనుమతి లేదు — ఉదాహరణకు సభ్యుడు ఓనర్‌కు మాత్రమే ఉన్న చర్యను ప్రయత్నించడం.

  • 404 not_found

    ఈ వర్క్‌స్పేస్‌లో అలాంటి రిసోర్స్ లేదు. మరో వర్క్‌స్పేస్ నుండి వచ్చిన idలు నిషేధించబడినవిగా కాకుండా కనుగొనబడలేదని నివేదించబడతాయి.

  • 409 conflict

    అభ్యర్థన ప్రస్తుత స్థితితో విరుద్ధంగా ఉంది — వెబ్‌హుక్ పరిమితి చేరుకుంది, లేదా ఖాతాకు ఇంకా వర్క్‌స్పేస్ లేదు.

  • 422

    బ్యాచ్‌లోని ప్రతి వరుస విఫలమైనప్పుడు POST /links/bulk ద్వారా తిరిగి వస్తుంది. meta.errorsను పరిశీలించండి.

  • 429 rate_limited

    గత నిమిషంలో 600 కంటే ఎక్కువ రిక్వెస్ట్‌లు. Retry-After సెకన్లు వేచి ఉండండి.

పాత GET /visits మరియు GET /links/{id}/visits ఎండ్‌పాయింట్‌లు వాటి స్వంత ఫీల్డ్ పేర్లతో ఎన్వలప్ లేని JSON arrayను తిరిగి ఇస్తాయి, వాటిపై ఇప్పటికే నిర్మించిన Zapier ఇంటిగ్రేషన్‌ల కోసం స్థిరం చేయబడ్డాయి. కొత్త కోడ్ GET /events మరియు GET /links/{id}/eventsను ఉపయోగించాలి, అవి స్టాండర్డ్ ఎన్వలప్‌ను ఉపయోగిస్తాయి మరియు పేజినేషన్‌ను సపోర్ట్ చేస్తాయి.

ఇంకా ప్రశ్నలు ఉన్నాయా?

మేము సహాయం చేయడానికి ఇక్కడ ఉన్నాము. మమ్మల్ని సంప్రదించండి, వీలైనంత త్వరగా మీకు సమాధానం ఇస్తాము.