TLTLNK
日本語
한국어English日本語中文
見た広告

短縮URL API

tlnk.kr APIは、メール認証済みの会員がX-API-Key・X-API-Secretヘッダーを付けてPOST /api/v1/shortenを呼ぶと、自動コードの短縮URLをJSONで返す機能です。記事公開、ニュースレター、自動化ワークフローでチャネル別のキャンペーンリンクを手作業なしで作るときに使います。

APIキーを取得

無料会員登録とメール認証の後、マイページ › API でキーを発行できます。

エンドポイント

POSThttps://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 の値意味
400url_requiredurl の値が必要です。
400bad_jsonJSON本文の形式が正しくありません。
401authAPIキーまたはSecretが正しくありません。
403key_blockedこのAPIキーはブロックされています。
403member_blockedこのアカウントのAPI利用はブロックされています。
405methodPOSTリクエストのみ受け付けます。
422check_failed安全チェックに通りませんでした(check に理由コード)。
429rate_limitedリクエストが多すぎます。しばらくしてから再度お試しください。
429daily_limit24時間の作成上限に達しました。
429too_many_failures安全チェックで拒否されたURLが多すぎます。しばらくしてから再度お試しください。
500error一時的なエラーです。しばらくしてから再度お試しください。

上限:アカウントごとに1分60件、24時間1,000件。

どんなワークフローにつなげられますか?

リンクが必要になるタイミングが決まっている作業なら、どこにでも組み込めます。ブログやCMSで記事が公開されたとき、ニュースレターツールでキャンペーンを準備するとき、ZapierやMakeのようなノーコードツールやGoogle Apps Scriptがキャンペーンシートの新しい行を処理するとき、HTTPリクエスト1回で短いアドレスを受け取り、次のステップに渡せば完了です。

同じ元URLでもutm_source=instagram、utm_source=newsletterのようにチャネルごとにUTM値を変えて別々に短縮すれば、マイページでリンクごとのクリックと参照元を並べ、どのチャネルが効果的だったか比べられます。UTMのルールはUTMパラメータの付け方にまとめています。

  • CMS・ブログの公開時にシェア用短縮URLを生成
  • ニュースレター・プッシュ配信のリンクを送信前に用意
  • Zapier・Make・Google Apps ScriptシナリオのHTTPステップ
  • チャネル別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、公開リポジトリ、共有テンプレートには残さないでください。

APIのリンクもウェブと同じ検査を受けますか?

はい、入口が違うだけで基準は同じです。ドメイン登録から1か月(30日)以上経っているか、実際に接続できるか、KCSCの遮断リストやURLhaus・OpenPhishに載っていないか、違法コンテンツのキーワードがないかを確認し、引き渡し先のアドレスを経由するたびに見直し、内部ネットワークのアドレスは拒否します。作成後も3時間ごと、そしてアクセスのたびに再検査し、3人が別々に通報すると自動で遮断されます。

まとめて大量に作るときの上限は?

アカウントごとに1分単位と24時間単位の作成数、同時に処理するリクエスト数に上限があります。検査で拒否されるアドレスを短時間に多く送ると、しばらくリクエストが断られます。上限に達するとレスポンスのRetry-After値が待ち時間を知らせるので、自動化シナリオがその分休んでから再試行するよう設定してください。

短時間にリンクを大量に作るアカウントは運営者が確認し、スパムやスミッシングなどの不正利用と判断した場合は、そのキーまたはアカウントのAPI利用を止めることがあります。運営方針はtlnk.krについてにあります。

よくある質問

APIは無料ですか?

会員なら無料です。その代わり、1分・24時間の作成上限の範囲内で使う必要があります。

APIのリンクにブランドのサブドメインを付けられますか?

いいえ。APIは自動コードのリンクだけを作ります。brand.tlnk.krのような名前(英小文字・数字・ハイフン4〜32文字)はウェブ画面で作れば、証明書まで自動で発行されます。

Secretを誤って公開リポジトリに上げてしまいました。

すぐにマイページ › APIでそのキーを失効させ、新しいキーを発行してワークフローの設定を差し替えてください。失効したキーで届くリクエストは直ちに拒否されます。

APIで作ったリンクのチャネル別成果はどこで見られますか?

ウェブで作ったリンクと一緒にマイページの短縮URL一覧に表示され、クリック・参照元・国・機器の統計確認、転送先の修正、一時停止を同じようにできます。

終わったキャンペーンのAPIリンクも自動で整理されますか?

はい。ほかのリンクと同様に3か月(90日)の間クリックがなければ削除され、消えたアドレスは1年間再利用されません。

違法・有害リンクの通報

違法・有害・詐欺(フィッシング)リンクを見つけましたか?短縮アドレスを教えていただければ、確認のうえブロックします。複数の利用者から通報があると自動的にブロックされます。

お問い合わせ

サービスについてのご質問やご提案をお寄せください。入力したメールアドレスに返信します。

入力したメールアドレスは、このお問い合わせへの返信にのみ使用します。