rdurl API
단축 링크를 코드로 생성하고 관리하세요
일반 API 정보
- 모든 요청에 API 토큰이 필요합니다. 인증 섹션을 참고하세요.
- 베이스 엔드포인트는: https://rdurl.link/api
- HTTPS만 지원합니다.
- 모든 엔드포인트는 JSON 객체를 반환합니다.
- 요청은 JSON으로 전송됩니다 (Content-Type: application/json).
- 모든 시간 및 타임스탬프 관련 필드는 밀리초 단위입니다.
- 모든 문자 인코딩은 UTF-8입니다.
인증
API는 토큰으로 요청이 어느 계정의 것인지 구분합니다. 토큰은 계정 비밀번호와 동급입니다 — 토큰을 가진 사람은 그 계정의 링크를 생성하고 삭제할 수 있습니다.
1단계. 토큰 발급
대시보드에 로그인한 뒤 'API 연동 토큰' 메뉴에서 토큰을 발급하세요. 발급할 때마다 새로운 토큰이 생성되며, 발급 직후 한 번만 확인할 수 있습니다.
2단계. 요청에 토큰 첨부
아래 두 가지 방식 중 아무거나 선택할 수 있습니다.
1. Authorization: Bearer (권장)
대부분의 공개 API가 사용하는 표준 인증 방식입니다.
curl https://rdurl.link/api/link/create -H "Authorization: Bearer rd_YOUR_TOKEN" -H "Content-Type: application/json" -d '{ "url": "https://example.com/very/long/url" }' 2. x-api-key 헤더
Authorization 헤더를 다루기 어려운 도구에는 이 방식이 편합니다.
curl https://rdurl.link/api/link/create -H "x-api-key: rd_YOUR_TOKEN" -H "Content-Type: application/json" -d '{ "url": "https://example.com/very/long/url" }' 3단계. 토큰 확인
아래 명령을 실행해보세요. 링크 목록이 반환되면 토큰이 정상 작동합니다.
curl https://rdurl.link/api/link/list \ -H "Authorization: Bearer rd_YOUR_TOKEN"
토큰 관리
토큰은 rd_ 뒤에 16진수 32자로 이루어집니다. 발급 직후 한 번만 확인할 수 있으니 안전하게 보관하세요. 유출이 의심되면 대시보드에서 즉시 폐기하세요 — 폐기된 토큰은 즉시 더 이상 작동하지 않습니다.
엔드포인트
/api/link/create 단축 링크를 생성합니다. URL을 보내면 슬러그와 단축 링크가 반환됩니다.
파라미터
url단축할 대상 URL (필수)title링크 제목 (선택, 100자 이내)folder링크 그룹 (선택, 100자 이내 — 그룹별 목록 필터 가능)domain커스텀 도메인 (선택, 예: example.com)
요청
{ "url": "https://example.com/very/long/url" } 응답
{
"success": true,
"message": {
"slug": "abc123",
"short": "https://rdurl.link/abc123",
"domain_no": 0,
"domain": ""
}
} /api/link/list 나의 링크 목록을 페이지별로 조회합니다. 페이지당 20개입니다. 검색과 도메인 필터를 지원합니다.
파라미터
page페이지 번호 (기본값 1)domain커스텀 도메인 (선택, 예: example.com)search검색 키워드 (슬러그/URL 부분 일치)folder링크 그룹 (선택, 100자 이내 — 그룹별 목록 필터 가능)
요청
GET /api/link/list?page=1&domain=example.com&search=keyword
응답
{
"success": true,
"message": {
"total": 42,
"page": 1,
"list": [
{
"slug": "abc123",
"url": "https://example.com/very/long/url",
"short": "https://rdurl.link/abc123",
"clicks": 128,
"tm": 1789379625000
}
]
}
} /api/link/info 단일 링크의 상세 정보와 클릭 수를 조회합니다.
파라미터
slug슬러그 (필수)domain커스텀 도메인 (선택, 예: example.com)
요청
GET /api/link/info?slug=abc123
응답
{
"success": true,
"message": {
"slug": "abc123",
"url": "https://example.com/very/long/url",
"short": "https://rdurl.link/abc123",
"clicks": 128,
"tm": 1789379625000
}
} /api/link/stats 링크별 클릭 통계 — 누적, 오늘, 국가별 TOP 10을 조회합니다.
파라미터
slug슬러그 (필수)domain커스텀 도메인 (선택, 예: example.com)
요청
GET /api/link/stats?slug=abc123
응답
{
"success": true,
"message": {
"clicks": 128,
"clicksToday": 5,
"countries": [
{ "country": "KR", "clicks": 80 },
{ "country": "US", "clicks": 30 }
]
}
} /api/link 링크를 삭제합니다. 전역 링크는 30일간 복원 가능하고, 커스텀 도메인 링크는 즉시 완전히 삭제됩니다.
파라미터
slug슬러그 (필수)domain커스텀 도메인 (선택, 예: example.com)
요청
DELETE /api/link
{ "slug": "abc123" } 응답
{ "success": true } 레이트 리밋
IP당 분 10회, 계정당 하루 1,000개까지 요청할 수 있습니다. 초과 시 429가 반환됩니다.
에러 코드
실패 시 success: false와 함께 에러 코드가 반환됩니다.
{ "success": false, "message": "api_invalid_token" } | code | status | 의미 |
|---|---|---|
api_invalid_token | 401 | 토큰이 없거나 유효하지 않습니다 |
link_invalid_url | 400 | URL이 올바르지 않습니다 (http/https만 가능) |
link_invalid_slug | 400 | 슬러그 형식이 올바르지 않습니다 |
link_not_found | 400 | 링크가 존재하지 않습니다 |
domain_not_found | 400 | 커스텀 도메인이 존재하지 않습니다 |
link_own_domain | 400 | 자신의 도메인을 단축할 수 없습니다 |
link_create_failed | 400 | 링크 생성에 실패했습니다 |
link_rate_limit | 429 | 요청 한도를 초과했습니다 |