İçeriğe atla

Geliştiriciler

Linkchime API referansı

Çalışma alanı API anahtarıyla kısa link oluşturun, toplu içe aktarın ve kampanya analitiği okuyun. Uygulamanın kullandığı API, tek çalışma alanına bağlı.

Genel bakış

Linkchime API, /api/v1 altındaki bir JSON REST API’sidir. Çalışma alanı ayarları → Developer API’den anahtar oluşturun ve her isteğe ekleyin. Anahtarlar tek çalışma alanına bağlıdır; workspace başlığı göndermeniz gerekmez.

Açılış sayfaları, dönüşüm hedefleri, zamanlanmış raporlar ve çalışma alanı ayarları aynı API’de vardır. Cursor veya Claude bağlamak için aynı API anahtarıyla /mcp kullanın. API anahtarları başka anahtarları, çalışma alanlarını, faturalandırmayı veya uygulama içi AI asistanı yönetemez.

Base URL

https://api.linkchime.com

Tarayıcı uzantısı

Chrome uzantısı, çalışma alanı API anahtarıyla geçerli sekmeyi veya sağ tıklanan bir URL’yi kısaltır ve kısa linki kopyalar. Chrome Web Store’dan kurun (bağlantı yayınlanınca burada yer alacaktır), ardından Options’ta anahtarınızı yapıştırın. İstekler https://api.linkchime.com adresine gider.

Kimlik doğrulama

Sırrı Bearer token veya X-Api-Key olarak gönderin. Üretim anahtarları lc_live_ ile başlar. Sır, anahtar oluşturulurken yalnızca bir kez gösterilir.

İstek başlıkları

Authorizationzorunlu

Bearer lc_live_…

API anahtarı Bearer token olarak.

X-Api-Key

lc_live_…

Authorization alternatifi. Aynı sır.

Content-Type

application/json

POST ve PATCH gövdelerinde zorunlu.

İlk linkinizi oluşturun

Anahtarınız olduktan sonra markalı kısa link oluşturan en küçük istek budur.

curl -X POST 'https://api.linkchime.com/api/v1/links' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"destination_url":"https://example.com/summer-sale","slug":"summer","title":"Summer sale","metadata":{"utm":{"source":"newsletter","medium":"email","campaign":"summer-sale"}}}'

Yapay zeka aracıları için MCP

Cursor, Claude veya herhangi bir MCP istemcisini streamable HTTP ile /mcp üzerinden bir çalışma alanına bağlayın. REST API ile aynı API anahtarını kullanın; oturum açmış olmak yetmez. Yazmalar hemen çalışır. MCP, platform yapay zeka sağlayıcısını çağırmaz ve uygulama içi yapay zeka mesaj limitine sayılmaz. Claude Code ve Desktop type alanını atlayabilir. ChatGPT yalnızca istemci Bearer HTTP MCP destekliyorsa çalışır; OAuth bağlayıcısı sunmuyoruz.

json

{
  "mcpServers": {
    "Linkchime": {
      "type": "http",
      "url": "https://api.linkchime.com/mcp",
      "headers": {
        "Authorization": "Bearer lc_live_…"
      }
    }
  }
}

Hatalar

Başarısız istekler bir error nesnesi içeren JSON döner. Hız sınırı aşıldığında Retry-After başlığı da eklenir (saniye). Turnstile açıksa giriş ve kayıt CF-Turnstile-Response ister; 403 yanıtları turnstile_required kodunu kullanır. Genel kötüye kullanım raporları da Turnstile açıkken aynı doğrulama başlığını kullanır. Engellenen hedefler 422 destination_blocked döner. Askıya alınan hesaplar 403 account_suspended döner. Oturum 429 yanıtları details.challenge: "turnstile" içerebilir; doğruladıktan sonra CF-Turnstile-Response göndererek devam edin. API anahtarları doğrulanmaz.

400 · validation_error

json

{
  "error": {
    "code": "validation_error",
    "message": "destination_url is required"
  }
}

401 · unauthorized

json

{
  "error": {
    "code": "unauthorized",
    "message": "invalid api key"
  }
}

403 · forbidden

json

{
  "error": {
    "code": "forbidden",
    "message": "api access is not available on your plan"
  }
}

404 · not_found

json

{
  "error": {
    "code": "not_found",
    "message": "link not found"
  }
}

409 · slug_conflict

json

{
  "error": {
    "code": "slug_conflict",
    "message": "slug already exists"
  }
}

429 · rate_limited

json

{
  "error": {
    "code": "rate_limited",
    "message": "too many api requests",
    "details": {
      "challenge": "turnstile",
      "site_key": "0x4AAAAAAA..."
    }
  }
}

Sayfalama

Liste uç noktaları başka satır varsa next_cursor döner. Sonraki istekte cursor olarak gönderin. Linkler ve içe aktarma işleri için varsayılan sayfa boyutu 20’dir.

Plan sınırları

Hız sınırı ve içe aktarma boyutu çalışma alanı planınıza bağlıdır. Barındırılan Ücretsiz, Pro ve Business varsayılanları:

SınırÜcretsizProBusiness
API hız sınırı5 req/s20 req/s100 req/s
İçe aktarma işi başına link501,00020,000
Eşzamanlı içe aktarma işi1320
API anahtarı11050

Linkler

Toplu içe aktarma

POST/api/v1/import-jobs

İçe aktarma işi oluştur

Asenkron toplu oluşturma başlatır. İşi yoklayın, sonra satır satır kısa URL alın.

API anahtarı gerekir · 202

İstek gövdesi

linkszorunlu

CreateLinkRequest[]

One or more link payloads. Max size is your plan’s max_import_job_size.

  • Returns immediately. Poll GET /api/v1/import-jobs/{jobId} until status is completed, failed, or cancelled.
  • Requires the api_access plan feature.

İstek

curl -X POST 'https://api.linkchime.com/api/v1/import-jobs' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"links":[{"destination_url":"https://example.com/a","metadata":{"utm":{"campaign":"summer-sale"}}},{"destination_url":"https://example.com/b"}]}'

Yanıt

json

{
  "data": {
    "id": "c2a91f07-6d44-4b18-9e3a-7f1c0b5d2e88",
    "workspace_id": "e7d2b4a1-9c80-4f3e-b6a2-0d15c8e4a973",
    "status": "pending",
    "total_count": 2,
    "succeeded_count": 0,
    "failed_count": 0,
    "skipped_count": 0,
    "created_at": "2026-08-12T16:05:00Z"
  }
}
GET/api/v1/import-jobs

İçe aktarma işlerini listele

Çalışma alanındaki son içe aktarma işlerini döner.

API anahtarı gerekir · 200

Sorgu parametreleri

limit

integer

Page size. Default 20.

cursor

string

Opaque cursor from next_cursor.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/import-jobs' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "jobs": [
      {
        "id": "c2a91f07-6d44-4b18-9e3a-7f1c0b5d2e88",
        "status": "completed",
        "total_count": 2,
        "succeeded_count": 2,
        "failed_count": 0,
        "skipped_count": 0,
        "created_at": "2026-08-12T16:05:00Z",
        "completed_at": "2026-08-12T16:05:02Z"
      }
    ],
    "next_cursor": "eyJvIjoibmV3ZXN0In0"
  }
}
GET/api/v1/import-jobs/{jobId}

İçe aktarma işini getir

Durum ve ilerleme sayılarını döner. completed, failed veya cancelled olana kadar yoklayın.

API anahtarı gerekir · 200

Yol parametreleri

jobIdzorunlu

uuid

Import job ID.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/import-jobs/c2a91f07-6d44-4b18-9e3a-7f1c0b5d2e88' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "id": "c2a91f07-6d44-4b18-9e3a-7f1c0b5d2e88",
    "workspace_id": "e7d2b4a1-9c80-4f3e-b6a2-0d15c8e4a973",
    "status": "completed",
    "total_count": 2,
    "succeeded_count": 2,
    "failed_count": 0,
    "skipped_count": 0,
    "created_at": "2026-08-12T16:05:00Z",
    "started_at": "2026-08-12T16:05:00Z",
    "completed_at": "2026-08-12T16:05:02Z"
  }
}
DELETE/api/v1/import-jobs/{jobId}

İçe aktarma işini iptal et

Bekleyen bir içe aktarma işini iptal eder.

API anahtarı gerekir · 204

Yol parametreleri

jobIdzorunlu

uuid

Import job ID.

  • Only pending jobs can be cancelled.
  • Returns 409 when the job is not pending.

İstek

curl -X DELETE 'https://api.linkchime.com/api/v1/import-jobs/c2a91f07-6d44-4b18-9e3a-7f1c0b5d2e88' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

Boş gövde
GET/api/v1/import-jobs/{jobId}/results

İçe aktarma sonuçları

Satır satır sonuçlar; başarılı satırlarda short_url bulunur.

API anahtarı gerekir · 200

Yol parametreleri

jobIdzorunlu

uuid

Import job ID.

Sorgu parametreleri

limit

integer

Page size. Default 50.

cursor

string

Opaque cursor from next_cursor.

  • short_url is present on succeeded rows after the job completes.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/import-jobs/c2a91f07-6d44-4b18-9e3a-7f1c0b5d2e88/results' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "items": [
      {
        "row_index": 0,
        "status": "succeeded",
        "link_id": "8f3c1a2e-4b7d-4e91-9c2a-1d6b8e0f4a21",
        "short_url": "https://go.example.com/summer"
      }
    ]
  }
}

Alan adları

GET/api/v1/domains

Alan adlarını listele

Çalışma alanındaki özel alan adlarını DNS talimatlarıyla listeler.

API anahtarı gerekir · 200

İstek

curl -X GET 'https://api.linkchime.com/api/v1/domains' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "items": [
      {
        "id": "b14e9c70-2a55-4f08-8d31-9c6a4e2b1f05",
        "workspace_id": "e7d2b4a1-9c80-4f3e-b6a2-0d15c8e4a973",
        "hostname": "go.example.com",
        "status": "verified",
        "verification_token": "lc_verify_9f2a",
        "dns": {
          "txt_record_name": "_go.example.com",
          "txt_record_value": "linkchime-verify=lc_verify_9f2a",
          "cname_target": "cname.linkchime.com"
        }
      }
    ]
  }
}
GET/api/v1/domains/{domainId}

Alan adı getir

Kimliğe göre özel alan adı döner.

API anahtarı gerekir · 200

Yol parametreleri

domainIdzorunlu

uuid

Domain ID.

  • Includes dns instructions for TXT and CNAME records.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/domains/b14e9c70-2a55-4f08-8d31-9c6a4e2b1f05' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "id": "b14e9c70-2a55-4f08-8d31-9c6a4e2b1f05",
    "hostname": "go.example.com",
    "status": "verified",
    "workspace_id": "e7d2b4a1-9c80-4f3e-b6a2-0d15c8e4a973",
    "verification_token": "lc_verify_9f2a",
    "dns": {
      "txt_record_name": "_go.example.com",
      "txt_record_value": "linkchime-verify=lc_verify_9f2a",
      "cname_target": "cname.linkchime.com"
    }
  }
}

Analitik

GET/api/v1/analytics

Çalışma alanı analitiği

Çalışma alanı için toplanmış tıklama, kitle ve kampanya kırılımları.

API anahtarı gerekir · 200

Sorgu parametreleri

from

date

Inclusive start date (YYYY-MM-DD).

to

date

Inclusive end date (YYYY-MM-DD).

granularity

day | hour

Bucket size for clicks_by_period.

top

integer

How many breakdown rows to return.

tz

string

IANA timezone for period bucketing. Default: UTC.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/analytics' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "total_clicks": 12840,
    "clicks_in_period": 932,
    "previous_clicks_in_period": 801,
    "unique_visitors": 744,
    "clicks_by_period": [
      {
        "period": "2026-08-11",
        "clicks": 410
      }
    ],
    "channels": [
      {
        "label": "email",
        "clicks": 220
      }
    ],
    "countries": [
      {
        "label": "US",
        "clicks": 510
      }
    ]
  }
}
GET/api/v1/links/{linkId}/analytics

Link analitiği

Tek bir link için analitik raporu.

API anahtarı gerekir · 200

Yol parametreleri

linkIdzorunlu

uuid

Link ID.

Sorgu parametreleri

from

date

Inclusive start date (YYYY-MM-DD).

to

date

Inclusive end date (YYYY-MM-DD).

granularity

day | hour

Bucket size for clicks_by_period.

tz

string

IANA timezone for period bucketing. Default: UTC.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/links/8f3c1a2e-4b7d-4e91-9c2a-1d6b8e0f4a21/analytics' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "total_clicks": 412,
    "clicks_in_period": 88,
    "unique_visitors": 71,
    "clicks_by_period": [
      {
        "period": "2026-08-11",
        "clicks": 40
      }
    ]
  }
}
GET/api/v1/analytics/export

Tıklamaları dışa aktar

Çalışma alanı tıklama olaylarını CSV olarak indirir.

API anahtarı gerekir · 200

Sorgu parametreleri

from

date

Inclusive start date.

to

date

Inclusive end date.

tz

string

IANA timezone for period bucketing. Default: UTC.

  • Returns text/csv. Requires analytics_export on your plan.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/analytics/export' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

csv

clicked_at,slug,country,device,channel
2026-08-11T09:14:02Z,summer,US,mobile,email

Kampanyalar

GET/api/v1/campaigns

Kampanyaları listele

Link ve tıklama sayılarıyla UTM kampanyalarını listeler.

API anahtarı gerekir · 200

  • Campaigns are grouped from metadata.utm.campaign on your links.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/campaigns' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "items": [
      {
        "name": "summer-sale",
        "link_count": 12,
        "total_clicks": 1840
      }
    ]
  }
}
GET/api/v1/campaigns/{campaign}/analytics

Kampanya analitiği

Bu kampanyayla etiketlenmiş tüm linkler için toplanmış analitik.

API anahtarı gerekir · 200

Yol parametreleri

campaignzorunlu

string

UTM campaign name.

Sorgu parametreleri

from

date

Inclusive start date.

to

date

Inclusive end date.

granularity

day | hour

Bucket size for clicks_by_period.

tz

string

IANA timezone for period bucketing. Default: UTC.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/campaigns/summer-sale/analytics' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "total_clicks": 1840,
    "clicks_in_period": 220,
    "unique_visitors": 190
  }
}

Hesap

GET/api/v1/me

Geçerli aktör

Bu API anahtarı için aktör, bağlı çalışma alanı, plan ve yetkileri döner.

API anahtarı gerekir · 200

  • API keys are bound to one workspace. workspaces contains only that workspace.

İstek

curl -X GET 'https://api.linkchime.com/api/v1/me' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Yanıt

json

{
  "data": {
    "actor": {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "email": "[email protected]"
    },
    "workspace": {
      "id": "e7d2b4a1-9c80-4f3e-b6a2-0d15c8e4a973",
      "name": "Acme"
    },
    "workspaces": [
      {
        "id": "e7d2b4a1-9c80-4f3e-b6a2-0d15c8e4a973",
        "name": "Acme"
      }
    ],
    "workspace_access": {
      "is_owner": true
    },
    "entitlements": {
      "api_access": true,
      "api_rate_limit_rps": 5
    }
  }
}

İzleme

GET/c/{slug}/pixel.gif

Dönüşüm pikseli

Kısa linkteki bir hedef için dönüşüm kaydeder. Genel GIF uç noktası.

Kimlik doğrulama yok · 200

Yol parametreleri

slugzorunlu

string

Link slug.

Sorgu parametreleri

goalzorunlu

string

Conversion goal slug.

  • Public tracking pixel. Embed on a thank-you page. No API key required.

İstek

curl -X GET 'https://api.linkchime.com/c/summer/pixel.gif'

Yanıt

csv

(1×1 GIF)

Tarayıcı uzantısı var mı?

Evet. Yayınlandığında Chrome Web Store’dan kurun. Çalışma alanı API anahtarı kullanır ve istekleri https://api.linkchime.com adresine gönderir.

API anahtarını nerede oluştururum?

Giriş yapın, Çalışma alanı ayarlarını açın ve Developer API kartını kullanın. Çalışma alanı sahibi olmalısınız ve planınızda API erişimi bulunmalıdır. Sır yalnızca bir kez gösterilir.

Workspace başlığı gerekir mi?

Hayır. Her anahtar tek çalışma alanına bağlıdır. Oturum token’ları X-Workspace-Id gönderebilir; API anahtarları bunu yok sayar ve her zaman bağlı çalışma alanını kullanır.

API anahtarları ne yapamaz?

Başka anahtar oluşturup iptal edemez, çalışma alanı veya üyeleri yönetemez, faturalandırmaya erişemez, uygulama içi AI asistanı kullanamaz. Aynı anahtar Cursor ve Claude için /mcp sunucusunu doğrular. Bu referanstaki diğer her şey anahtarla çalışır.

Claude veya Cursor’ı nasıl bağlarım?

Cursor için https://YOUR_HOST/mcp adresine type http, url ve Authorization: Bearer YOUR_API_KEY ekleyin. Claude Code ve Desktop aynı url ve headers ile type olmadan çalışır. OAuth gerektiren ChatGPT özel bağlayıcıları desteklenmez. Yazmalar REST ile aynı şekilde hemen çalışır. MCP, uygulama içi yapay zeka mesaj kotasını kullanmaz.

Sonraki kampanyanız size benzemeli.

Birkaç dakikada markalı kısa link, QR veya sayfa oluşturun. Kredi kartı gerekmez. Neyin işe yaradığını anlatmanız gerektiğinde analitik hazır.