커스텀 도메인 API 레퍼런스

조직에 등록된 커스텀 도메인 조회 (3개 엔드포인트)

참고인증
모든 Service API 요청에는 X-API-KEY 헤더를 포함해야 합니다. API Key는 콘솔 > 개발자 > API 키 관리에서 발급받을 수 있습니다. 공통 규칙은 API 개요를 참고하세요.

GET /api/v1/service/custom-domains

조직에 등록된 커스텀 도메인 목록을 조회합니다. 검색어와 상태 필터, 페이지 분할을 지원합니다.

Query Parameters

파라미터타입필수설명
searchString도메인 이름 검색 키워드 (부분 일치)
statusString상태 필터 (PENDING / VERIFIED / ACTIVE / FAILED / REVOKED)
pageInteger페이지 번호 (0부터 시작, 기본: 0)
sizeInteger페이지 크기 (기본: 20)
sortString정렬 기준 (기본: createdAt,desc)

Response

Spring Page 응답 형식으로 반환됩니다. content[] 배열의 각 항목 필드는 아래와 같습니다.

필드타입설명
idLong도메인 ID
domainNameString도메인 이름 (예: link.example.com)
ownerUsernameString도메인 소유자 계정 ID
statusString도메인 상태 (PENDING / VERIFIED / ACTIVE / FAILED / REVOKED)
cnameRecordNameStringDNS 인증용 CNAME 레코드 이름 (외부 도메인 전용, 플랫폼 서브도메인은 null)
cnameRecordValueStringDNS 인증용 CNAME 레코드 값 (외부 도메인 전용, 플랫폼 서브도메인은 null)
createdAtString등록 일시 (yyyy-MM-dd'T'HH:mm 형식)
deletionRequestedBoolean삭제 요청 여부
deletionRequestedAtString삭제 요청 일시 (요청 전 null)

페이지 메타 필드:

필드타입설명
totalElementsLong전체 도메인 수
totalPagesInteger전체 페이지 수
sizeInteger페이지 크기
numberInteger현재 페이지 번호 (0부터 시작)
numberOfElementsInteger현재 페이지의 실제 항목 수
firstBoolean첫 번째 페이지 여부
lastBoolean마지막 페이지 여부
emptyBoolean결과가 비어있는지 여부
pageableObject페이지 상세 정보 (pageNumber, pageSize, offset, sort 등)
참고status 값 의미
PENDING: DNS 인증 대기 중  |  VERIFIED: 인증 완료 (외부 도메인은 로드밸런서 미설정)  |  ACTIVE: 완전 활성화 (외부 도메인 로드밸런서 연결 완료)  |  FAILED: 인증 실패  |  REVOKED: 인증 취소
cURL
curl "https://fplink.net/api/v1/service/custom-domains" \
  -H "X-API-KEY: your-api-key"

# 상태 필터 + 검색 + 페이지
curl "https://fplink.net/api/v1/service/custom-domains?status=ACTIVE&search=example.com&size=10" \
  -H "X-API-KEY: your-api-key"
JSON
{
  "content": [
    {
      "id": 7,
      "domainName": "link.example.com",
      "ownerUsername": "user@example.com",
      "status": "ACTIVE",
      "cnameRecordName": "_acme-challenge.link.example.com.",
      "cnameRecordValue": "abc123.authorize.certificatemanager.goog.",
      "createdAt": "2026-03-15T10:23",
      "deletionRequested": false,
      "deletionRequestedAt": null
    },
    {
      "id": 3,
      "domainName": "go.myservice.net",
      "ownerUsername": "user@example.com",
      "status": "VERIFIED",
      "cnameRecordName": null,
      "cnameRecordValue": null,
      "createdAt": "2026-01-20T09:10",
      "deletionRequested": false,
      "deletionRequestedAt": null
    }
  ],
  "pageable": {
    "pageNumber": 0,
    "pageSize": 20,
    "sort": { "sorted": true, "unsorted": false, "empty": false },
    "offset": 0,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 2,
  "totalPages": 1,
  "size": 20,
  "number": 0,
  "numberOfElements": 2,
  "first": true,
  "last": true,
  "empty": false
}

GET /api/v1/service/custom-domains/{id}

특정 커스텀 도메인의 상세 정보를 조회합니다. 다른 조직의 도메인 ID를 지정하면 404 Not Found가 반환됩니다.

Path Parameters

파라미터타입필수설명
idLong필수도메인 ID

Response

목록 조회 content[]의 단일 도메인 객체와 동일한 필드를 반환합니다.

cURL
curl "https://fplink.net/api/v1/service/custom-domains/7" \
  -H "X-API-KEY: your-api-key"
JSON
{
  "id": 7,
  "domainName": "link.example.com",
  "ownerUsername": "user@example.com",
  "status": "ACTIVE",
  "cnameRecordName": "_acme-challenge.link.example.com.",
  "cnameRecordValue": "abc123.authorize.certificatemanager.goog.",
  "createdAt": "2026-03-15T10:23",
  "deletionRequested": false,
  "deletionRequestedAt": null
}

GET /api/v1/service/custom-domains/verified

단축 URL 생성 및 캠페인에 실제로 사용 가능한 도메인만 반환합니다. VERIFIED 또는 ACTIVE 상태의 도메인 전체를 페이지 래퍼 없이 배열로 반환합니다.

Response

도메인 객체 배열을 반환합니다. 각 항목의 필드 구성은 목록 조회content[] 항목과 동일합니다.

cURL
curl "https://fplink.net/api/v1/service/custom-domains/verified" \
  -H "X-API-KEY: your-api-key"
JSON
[
  {
    "id": 3,
    "domainName": "go.myservice.net",
    "ownerUsername": "user@example.com",
    "status": "VERIFIED",
    "cnameRecordName": null,
    "cnameRecordValue": null,
    "createdAt": "2026-01-20T09:10",
    "deletionRequested": false,
    "deletionRequestedAt": null
  },
  {
    "id": 7,
    "domainName": "link.example.com",
    "ownerUsername": "user@example.com",
    "status": "ACTIVE",
    "cnameRecordName": "_acme-challenge.link.example.com.",
    "cnameRecordValue": "abc123.authorize.certificatemanager.goog.",
    "createdAt": "2026-03-15T10:23",
    "deletionRequested": false,
    "deletionRequestedAt": null
  }
]