링크 프로젝트 API 레퍼런스

이벤트 단위로 단축 URL·캠페인 링크를 묶고 합산 통계를 봅니다 (7개 엔드포인트)

참고인증·요금제
모든 Service API 요청에는 X-API-KEY 헤더를 포함해야 합니다. 프로젝트를 만들고 이름을 바꾸고 링크를 넣는 것은 PRO 이상 요금제에서 쓸 수 있습니다. 조회와 빼기는 요금제 제한이 없습니다. 공통 규칙은 API 개요를 참고하세요.
개념프로젝트와 링크
링크(단축 URL·캠페인) 하나는 프로젝트 하나에만 속합니다. 다른 프로젝트에 있던 링크를 넣으면 옮겨집니다. 프로젝트를 지워도 링크는 지워지지 않습니다(프로젝트 삭제는 콘솔에서만 할 수 있습니다). 링크를 만들면서 바로 묶으려면 URL 생성·캠페인 생성에 projectId 를 넘기세요.

GET /api/v1/service/link-projects

프로젝트 목록을 만든 순서 최근부터 조회합니다.

Query Parameters

파라미터타입필수설명
searchString이름 검색 (부분 일치)
pageInteger페이지 번호 (0부터, 기본: 0)
sizeInteger페이지 크기 (기본: 20, 최대: 50)

Response

content[] 의 각 항목은 아래와 같고, page·size·totalElements·totalPages 가 함께 옵니다.

필드타입설명
idLong프로젝트 ID
nameString이름 (조직 안에서 중복 불가, 최대 50자)
descriptionString설명 (최대 200자, 없으면 null)
createdAtString만든 시각 (조직 시간대)
urlCountLong속한 단축 URL 수 (지웠거나 삭제 요청 중인 링크 제외)
campaignCountLong속한 캠페인 수

POST /api/v1/service/link-projects

프로젝트를 만듭니다 (PRO 이상). 성공하면 201 과 프로젝트를 돌려줍니다.

Request Body

필드타입필수설명
nameStringO이름 (최대 50자, 조직 안에서 중복 불가 — 겹치면 409)
descriptionString설명 (최대 200자)

Example

JSON
{
  "name": "10월 가을 이벤트",
  "description": "인스타·카카오·문자 링크"
}

GET /api/v1/service/link-projects/{id}

프로젝트 한 건과 링크 수를 조회합니다. 속한 링크 목록은 URL·캠페인 목록 API 에 projectId 를 넘겨 조회합니다.

Response

필드타입설명
idLong프로젝트 ID
nameString이름 (조직 안에서 중복 불가, 최대 50자)
descriptionString설명 (최대 200자, 없으면 null)
createdAtString만든 시각 (조직 시간대)
urlCountLong속한 단축 URL 수 (지웠거나 삭제 요청 중인 링크 제외)
campaignCountLong속한 캠페인 수

PUT /api/v1/service/link-projects/{id}

이름·설명을 바꿉니다 (PRO 이상). 이름은 필수이고, 설명을 비우면 지워집니다.

Request Body

필드타입필수설명
nameStringO새 이름
descriptionString설명

POST /api/v1/service/link-projects/{id}/items

이미 있는 링크를 프로젝트에 넣습니다 (PRO 이상). 다른 프로젝트에 있던 링크는 이 프로젝트로 옮겨집니다. 하나라도 이 조직 링크가 아니거나 없는 ID 면 전부 거부합니다(404).

Request Body

필드타입필수설명
urlIdsLong[]단축 URL ID 목록 (최대 500개)
campaignIdsLong[]캠페인 ID 목록 (최대 500개)

Example

JSON
{
  "urlIds": [101, 102],
  "campaignIds": [55]
}

Response

필드타입설명
projectIdLong프로젝트 ID
addedUrlsInteger넣은 URL 수
addedCampaignsInteger넣은 캠페인 수

POST /api/v1/service/link-projects/{id}/items/remove

이 프로젝트에서 링크를 뺍니다. 요금제 제한이 없습니다. 다른 프로젝트에 속한 링크는 건드리지 않습니다.

Request Body

필드타입필수설명
urlIdsLong[]단축 URL ID 목록 (최대 500개)
campaignIdsLong[]캠페인 ID 목록 (최대 500개)

Response

필드타입설명
projectIdLong프로젝트 ID
removedUrlsInteger뺀 URL 수
removedCampaignsInteger뺀 캠페인 수

GET /api/v1/service/link-projects/{id}/stats

합산 통계를 조회합니다. 링크별 수의 합계이며, 여러 링크를 누른 같은 사람은 링크마다 따로 셉니다(순방문자는 제공하지 않습니다). 날짜는 조직 시간대 기준입니다.

Query Parameters

파라미터타입필수설명
startDateString시작일 yyyy-MM-dd (기본: 최근 30일)
endDateString종료일 yyyy-MM-dd (기본: 오늘, 미래는 오늘로)
linkPageInteger링크별 표 페이지 (0부터, 20개씩)

Response

필드타입설명
startDate · endDateString실제로 조회한 기간 — 요금제 조회 기간·보관 기간(180일) 안으로 조정됩니다
periodAdjustedBoolean요청한 기간이 조정됐으면 true
timezoneString날짜를 나눈 조직 시간대 (예: Asia/Seoul)
countsUrls · countsCampaignsBooleanAPI 키 계정이 볼 수 있어 센 링크 종류
totalsObjectclicks, urlClicks, campaignClicks, installs, conversions, revenue(조직 통화)
daily[]Arraydate, urlClicks, campaignClicks
links[]Array클릭 많은 순 type(URL/CAMPAIGN), id, label, sub, clicks
linkPage · linkTotalPages · linkTotalInteger링크별 표 페이지 정보