API 레퍼런스

melom.ing REST API 전체 레퍼런스

기본 URL: https://api.melom.ing

단축 URL 생성

새로운 단축 URL을 생성합니다.

POST/api/v1/urls

요청 본문

{
  "url": "https://example.com/very/long/url/path",
  "custom_code": "mycode",  // 선택사항, 3-20 chars
  "expires_at": "2025-12-31T23:59:59Z"  // 선택사항
}

응답

{
  "success": true,
  "data": {
    "code": "abc123",
    "short_url": "https://melom.ing/abc123",
    "original_url": "https://example.com/very/long/url/path",
    "created_at": "2024-12-19T10:30:00Z",
    "expires_at": "2025-12-31T23:59:59Z"
  }
}

에러 응답

상태코드설명
400BAD_REQUEST잘못된 URL 또는 요청 형식
409CONFLICT커스텀 코드가 이미 사용 중
422UNPROCESSABLE_ENTITYURL 또는 코드에 차단된 내용 포함
429TOO_MANY_REQUESTS사용량 제한 초과

URL 정보 조회

단축 URL의 정보를 조회합니다.

GET/api/v1/urls/:code

응답

{
  "success": true,
  "data": {
    "code": "abc123",
    "short_url": "https://melom.ing/abc123",
    "original_url": "https://example.com/...",
    "created_at": "2024-12-19T10:30:00Z",
    "expires_at": null,
    "click_count": 1542,
    "is_active": true
  }
}

코드 사용 가능 여부 확인

커스텀 코드가 사용 가능한지 확인합니다.

GET/api/v1/urls/check/:code

응답

{
  "success": true,
  "data": {
    "code": "mycode",
    "available": true
  }
}

URL 통계 조회

단축 URL의 상세 통계를 조회합니다.

GET/api/v1/urls/:code/stats

쿼리 파라미터

파라미터타입설명
fromstring시작 날짜 (YYYY-MM-DD)
tostring종료 날짜 (YYYY-MM-DD)

응답

{
  "success": true,
  "data": {
    "code": "abc123",
    "total_clicks": 1542,
    "unique_visitors": 1203,
    "period": {
      "from": "2024-12-01",
      "to": "2024-12-19"
    },
    "daily_clicks": [
      {"date": "2024-12-01", "clicks": 45, "unique": 38}
    ],
    "referrers": [
      {"source": "google.com", "count": 450}
    ],
    "countries": [
      {"code": "KR", "name": "South Korea", "count": 890}
    ],
    "devices": [
      {"type": "mobile", "count": 820}
    ],
    "browsers": [
      {"name": "Chrome", "count": 780}
    ]
  }
}

서비스 통계 조회

서비스 전체 통계를 조회합니다.

GET/api/v1/stats

응답

{
  "success": true,
  "data": {
    "total_urls": 15420,
    "total_clicks": 2845920,
    "total_urls_today": 145,
    "total_clicks_today": 12450,
    "top_urls": [
      {
        "code": "abc123",
        "clicks": 45000,
        "original_url": "https://example.com/..."
      }
    ]
  }
}

리다이렉트

원본 URL로 리다이렉트하고 클릭 통계를 기록합니다.

GET/:code

응답

302 Found 원본 URL로 302 Found 리다이렉트를 반환합니다. 클릭 통계(IP, User-Agent, Referrer)는 비동기로 기록됩니다.

사용량 제한

엔드포인트제한
URL 생성시간당 5회