短縮URL API
tlnk.kr APIは、メール認証済みの会員がX-API-Key・X-API-Secretヘッダーを付けてPOST /api/v1/shortenを呼ぶと、自動コードの短縮URLをJSONで返す機能です。記事公開、ニュースレター、自動化ワークフローでチャネル別のキャンペーンリンクを手作業なしで作るときに使います。
tlnk.kr APIは、メール認証済みの会員がX-API-Key・X-API-Secretヘッダーを付けてPOST /api/v1/shortenを呼ぶと、自動コードの短縮URLをJSONで返す機能です。記事公開、ニュースレター、自動化ワークフローでチャネル別のキャンペーンリンクを手作業なしで作るときに使います。
無料会員登録とメール認証の後、マイページ › API でキーを発行できます。
https://tlnk.kr/api/v1/shorten発行された値をX-API-KeyとX-API-Secretヘッダーに入れて送信します。Secretをアドレス(クエリ文字列)に入れないでください。
本文はJSON {"url": "…"} またはフォーム(url=…)で送信します。サブドメイン名やコードの指定はAPIでは対応していません。
curl -X POST https://tlnk.kr/api/v1/shorten \
-H "X-API-Key: ak_…" \
-H "X-API-Secret: sk_…" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/very/long/path?utm_source=newsletter"}'
import requests
r = requests.post("https://tlnk.kr/api/v1/shorten",
headers={"X-API-Key": "ak_…", "X-API-Secret": "sk_…"},
json={"url": "https://example.com/very/long/path"}, timeout=30)
print(r.status_code, r.json()["short_url"] if r.ok else r.json())
{
"ok": true,
"code": "Ab3d",
"short_url": "https://tlnk.kr/Ab3d",
"target_url": "https://example.com/very/long/path?utm_source=newsletter",
"created_at": "2026-09-25T09:00:00+09:00",
"daily_remaining": 999
}
{
"ok": false,
"error": "check_failed",
"check": "age",
"message": "…"
}
| ステータス | error の値 | 意味 |
|---|---|---|
400 | url_required | url の値が必要です。 |
400 | bad_json | JSON本文の形式が正しくありません。 |
401 | auth | APIキーまたはSecretが正しくありません。 |
403 | key_blocked | このAPIキーはブロックされています。 |
403 | member_blocked | このアカウントのAPI利用はブロックされています。 |
405 | method | POSTリクエストのみ受け付けます。 |
422 | check_failed | 安全チェックに通りませんでした(check に理由コード)。 |
429 | rate_limited | リクエストが多すぎます。しばらくしてから再度お試しください。 |
429 | daily_limit | 24時間の作成上限に達しました。 |
429 | too_many_failures | 安全チェックで拒否されたURLが多すぎます。しばらくしてから再度お試しください。 |
500 | error | 一時的なエラーです。しばらくしてから再度お試しください。 |
上限:アカウントごとに1分60件、24時間1,000件。
リンクが必要になるタイミングが決まっている作業なら、どこにでも組み込めます。ブログやCMSで記事が公開されたとき、ニュースレターツールでキャンペーンを準備するとき、ZapierやMakeのようなノーコードツールやGoogle Apps Scriptがキャンペーンシートの新しい行を処理するとき、HTTPリクエスト1回で短いアドレスを受け取り、次のステップに渡せば完了です。
同じ元URLでもutm_source=instagram、utm_source=newsletterのようにチャネルごとにUTM値を変えて別々に短縮すれば、マイページでリンクごとのクリックと参照元を並べ、どのチャネルが効果的だったか比べられます。UTMのルールはUTMパラメータの付け方にまとめています。
POST /api/v1/shortenに元のアドレスをurlの値として送ります。JSON本文({"url": "https://..."})と通常のフォーム送信のどちらも受け付け、認証はリクエストヘッダーX-API-KeyとX-API-Secretで行います。成功するとshort_url、code、target_urlを含むJSONが返ります。
APIが作るのはtlnk.kr/Ab3dのような自動コードのリンクだけなのでコードは選べず、brand.tlnk.krのようなサブドメインリンクが必要ならウェブ画面で作成します。転送先が安全チェックを通らなければリンクの代わりにcheck_failedエラーと理由コードが返るため、ワークフローでその分岐を処理しておくと安心です。
無料で会員登録してメール認証を終えると、マイページのAPIタブでキーを作成できます。公開識別子のAPI Keyはak_、秘密値のAPI Secretはsk_で始まり、同時に有効にできるキーは3つです。ブログ用、ニュースレター用、自動化ツール用のように用途別に分ければ、1つを失効させても他のワークフローは止まりません。
Secretは作成直後に一度だけ表示され、サーバーには元に戻せない形で保存されるため、後から確認する方法はありません。紛失したらそのキーを失効させて新しく発行してください。自動化ツールのシークレット変数やサーバーの環境変数に入れ、ブラウザのJavaScript、公開リポジトリ、共有テンプレートには残さないでください。
はい、入口が違うだけで基準は同じです。ドメイン登録から1か月(30日)以上経っているか、実際に接続できるか、KCSCの遮断リストやURLhaus・OpenPhishに載っていないか、違法コンテンツのキーワードがないかを確認し、引き渡し先のアドレスを経由するたびに見直し、内部ネットワークのアドレスは拒否します。作成後も3時間ごと、そしてアクセスのたびに再検査し、3人が別々に通報すると自動で遮断されます。
アカウントごとに1分単位と24時間単位の作成数、同時に処理するリクエスト数に上限があります。検査で拒否されるアドレスを短時間に多く送ると、しばらくリクエストが断られます。上限に達するとレスポンスのRetry-After値が待ち時間を知らせるので、自動化シナリオがその分休んでから再試行するよう設定してください。
短時間にリンクを大量に作るアカウントは運営者が確認し、スパムやスミッシングなどの不正利用と判断した場合は、そのキーまたはアカウントのAPI利用を止めることがあります。運営方針はtlnk.krについてにあります。
会員なら無料です。その代わり、1分・24時間の作成上限の範囲内で使う必要があります。
いいえ。APIは自動コードのリンクだけを作ります。brand.tlnk.krのような名前(英小文字・数字・ハイフン4〜32文字)はウェブ画面で作れば、証明書まで自動で発行されます。
すぐにマイページ › APIでそのキーを失効させ、新しいキーを発行してワークフローの設定を差し替えてください。失効したキーで届くリクエストは直ちに拒否されます。
ウェブで作ったリンクと一緒にマイページの短縮URL一覧に表示され、クリック・参照元・国・機器の統計確認、転送先の修正、一時停止を同じようにできます。
はい。ほかのリンクと同様に3か月(90日)の間クリックがなければ削除され、消えたアドレスは1年間再利用されません。