SaaS API
인플루언서 SaaS API
인플루언서 계정 전용 API
인플루언서 SaaS API
인플루언서 계정에서 사용하는 API입니다.
Base URL: /ai/influence
인증 정보
| 항목 | 값 |
|---|---|
| 인증 필요 | 예 |
| 인증 방식 | JWT Bearer Token |
엔드포인트 목록
캠페인 신청
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
GET | /ai/influence/campaign/{collabId}/application/info | 캠페인 신청 페이지 정보 조회 | 필요 |
POST | /ai/influence/campaign/application | 캠페인 신청 | 필요 |
GET | /ai/influence/campaigns/applications | 신청 목록 조회 | 필요 |
PATCH | /ai/influence/campaigns/applications/{id}/contract-read | 계약서 읽음 처리 | 필요 |
POST | /ai/influence/campaigns/applications/{applicationId}/content | 캠페인 콘텐츠 업로드 | 필요 |
마이페이지
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
GET | /ai/influence/mypage | 마이페이지 데이터 조회 | 필요 |
POST | /ai/influence/mypage | 마이페이지 데이터 저장 | 필요 |
PATCH | /ai/influence/mypage | 마이페이지 데이터 수정 | 필요 |
배송지 관리
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
POST | /ai/influence/delivery-address | 배송지 추가 | 필요 |
PUT | /ai/influence/delivery-address/{id} | 배송지 수정 | 필요 |
DELETE | /ai/influence/delivery-address/{id} | 배송지 삭제 | 필요 |
가격 협상
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
PATCH | /ai/influence/price-negotiations/{negotiationId}/respond | 가격 협상 응답 | 필요 |
API 상세
캠페인 신청 페이지 정보 조회
캠페인 신청 페이지 접속 시 필요한 정보를 조회합니다.
HTTP 요청
GET /ai/influence/campaign/{collabId}/application/info
Authorization: Bearer {access_token}Path Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
collabId | long | 예 | 캠페인 ID |
응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "성공",
"data": {
"applicantName": "홍길동",
"email": "user@example.com",
"snsAccount": {
"platform": "INSTAGRAM",
"username": "@influencer",
"followers": 50000
},
"deliveryAddress": {
"recipientName": "홍길동",
"phone": "010-1234-5678",
"address": "서울시 강남구..."
}
}
}캠페인 신청
캠페인에 신청합니다.
HTTP 요청
POST /ai/influence/campaign/application
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"collabId": 123,
"snsAccountId": 456,
"deliveryAddressId": 789,
"message": "안녕하세요, 관심있어서 신청합니다!",
"proposedPrice": 500000
}Response
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "신청 완료",
"data": null
}캠페인 신청 목록 조회
인플루언서가 신청한 캠페인 목록을 조회합니다. 선정 대기, 선정, 미선정 7일 이내 건을 포함합니다.
HTTP 요청
GET /ai/influence/campaigns/applications
Authorization: Bearer {access_token}응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "성공",
"data": {
"totalSettlement": 2500000,
"applications": [
{
"applicationId": 1,
"campaign": {
"collabId": 123,
"title": "여름 뷰티 캠페인",
"thumbnail": "https://...",
"platform": "INSTAGRAM",
"contentType": "REEL"
},
"status": "SELECTED",
"hasContract": true,
"contractRead": false,
"appliedAt": "2024-01-15T10:00:00"
}
]
}
}계약서 읽음 처리
캠페인 신청 건의 계약서를 읽음 상태로 변경합니다.
HTTP 요청
PATCH /ai/influence/campaigns/applications/{id}/contract-read
Authorization: Bearer {access_token}Path Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | long | 예 | 신청 ID |
마이페이지 데이터 조회
프로필 이미지, 이름, 전화번호, 이메일, 배송지 목록을 조회합니다.
HTTP 요청
GET /ai/influence/mypage
Authorization: Bearer {access_token}응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "성공",
"data": {
"profileImage": "https://...",
"name": "홍길동",
"phone": "010-1234-5678",
"email": "user@example.com",
"deliveryAddresses": [
{
"id": 1,
"addressName": "집",
"recipientName": "홍길동",
"phone": "010-1234-5678",
"address": "서울시 강남구...",
"isDefault": true
}
]
}
}마이페이지 데이터 저장/수정
프로필 이미지, 이름, 전화번호, 이메일을 저장하거나 수정합니다.
HTTP 요청
POST /ai/influence/mypage
Authorization: Bearer {access_token}
Content-Type: multipart/form-dataRequest Parts
| 파트 | 타입 | 필수 | 설명 |
|---|---|---|---|
file | file | 아니오 | 프로필 이미지 |
data | MyPageUpdateRequestDto | 예 | 수정할 데이터 JSON |
data JSON 예시
{
"name": "홍길동",
"phone": "010-1234-5678",
"email": "user@example.com"
}배송지 추가
새 배송지를 추가합니다.
HTTP 요청
POST /ai/influence/delivery-address
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"addressName": "집",
"recipientName": "홍길동",
"phone": "010-1234-5678",
"zipCode": "12345",
"address": "서울시 강남구 테헤란로 123",
"addressDetail": "1층 101호",
"isDefault": true
}Request Body 스키마
| 필드명 | 타입 | 필수 | 설명 |
|---|---|---|---|
addressName | string | 예 | 배송지 이름 |
recipientName | string | 예 | 받는 사람 |
phone | string | 예 | 연락처 |
zipCode | string | 예 | 우편번호 |
address | string | 예 | 기본 주소 |
addressDetail | string | 아니오 | 상세 주소 |
isDefault | boolean | 아니오 | 기본 배송지 여부 |
배송지 수정
기존 배송지를 수정합니다.
HTTP 요청
PUT /ai/influence/delivery-address/{id}
Authorization: Bearer {access_token}
Content-Type: application/json배송지 삭제
배송지를 삭제합니다.
HTTP 요청
DELETE /ai/influence/delivery-address/{id}
Authorization: Bearer {access_token}캠페인 콘텐츠 업로드
캠페인 관련 이미지 또는 압축 파일을 업로드합니다.
HTTP 요청
POST /ai/influence/campaigns/applications/{applicationId}/content
Authorization: Bearer {access_token}
Content-Type: multipart/form-data지원 포맷
| 종류 | 지원 포맷 |
|---|---|
| 이미지 | jpg, png, gif, webp, heic, bmp, tiff, svg, avif, RAW |
| 압축파일 | zip, tar, tar.gz, rar, 7z |
여러 장의 이미지는 압축 파일(zip 등)로 업로드해주세요.
가격 협상 응답
관리자가 제안한 가격 협상에 대해 수락 또는 거절 응답합니다.
HTTP 요청
PATCH /ai/influence/price-negotiations/{negotiationId}/respond?action={action}
Authorization: Bearer {access_token}Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
action | string | 예 | accept (수락) 또는 reject (거절) |
사용 예시
캠페인 신청
curl -X POST https://api.glowb.io/ai/influence/campaign/application \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"collabId": 123,
"snsAccountId": 456,
"deliveryAddressId": 789,
"message": "신청합니다!",
"proposedPrice": 500000
}'배송지 추가
curl -X POST https://api.glowb.io/ai/influence/delivery-address \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"addressName": "집",
"recipientName": "홍길동",
"phone": "010-1234-5678",
"zipCode": "12345",
"address": "서울시 강남구 테헤란로 123",
"addressDetail": "1층 101호",
"isDefault": true
}'콘텐츠 업로드
curl -X POST https://api.glowb.io/ai/influence/campaigns/applications/123/content \
-H "Authorization: Bearer {token}" \
-F "file=@content.zip"