공통 응답 구조

모든 API는 아래 구조로 응답한다.

{
  "result": "SUCCESS | ERROR",
  "data": { ... },
  "error": null | { "code": "...", "message": "..." }
}

공통 요청 헤더 (인증 필요 엔드포인트)

헤더 설명

Authorization

Bearer {accessToken}

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 고유 ID


인증 (Auth)

게스트 회원가입

POST /api/v1/auth/guest/signup

요청 헤더

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/auth/guest-signup/request-headers.adoc[]

Table 1. 요청 바디
Path Type Description

deviceOs

String

디바이스 OS (ios / android)

deviceId

String

디바이스 고유 ID

deviceToken

String

푸시 알림용 디바이스 토큰

nickname

String

사용자 닉네임

termAgreements

Object

약관 동의 목록 (약관 ID → 동의 여부)

HTTP 요청 예시
POST /api/v1/auth/guests HTTP/1.1
Content-Type: application/json
Host: barlow.com
Content-Length: 205

{
  "deviceToken" : "device_token_new",
  "termAgreements" : {
    "1" : true,
    "2" : true,
    "3" : false
  },
  "deviceId" : "device_id_new",
  "deviceOs" : "ios",
  "nickname" : "nniicckknnaammee"
}
HTTP 응답 예시
HTTP/1.1 201 Created
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 537

{
  "result" : "SUCCESS",
  "data" : {
    "accessToken" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjMsInJvbGUiOiJHVUVTVCJ9.Dnjb5M3-_bjEfvkTjjcEuRYPTuKfQj5tV-XjAwbO5qNCYfWoUIY59zCBWzu7XvtOtrkHxBUS4o3OaF6Sd0FRqLBTP6uQY574Oe9qN9eMUUprzLCxe_Zk6fziC2LCDfbtgAUV2ofUfJ-TDXR_-c9s274vxQq0DdOJasgmgEKJmko4PiHHD5bfkpoUTQyWABvlNqE7tm0BD8O4KB-0Gfyj6rP3RtsFzH4HXcvzmd6Pm28i1f_US2sX8OOEOSk3n9jlMXIaM8Y7exe5PrVqNo6zgqmB2HOSoXBLCZ_SUN67rbJF4j05tJXh7LAnXL1HPV9M4kH2iqlmPxds4gsD9eameg"
  },
  "error" : null
}
Table 2. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.accessToken

String

발급된 액세스 토큰


게스트 로그인

POST /api/v1/auth/guest/login

Table 3. 요청 바디
Path Type Description

deviceOs

String

디바이스 OS (ios / android)

deviceId

String

디바이스 고유 ID

deviceToken

String

푸시 알림용 디바이스 토큰

HTTP 요청 예시
POST /api/v1/auth/guest/sessions HTTP/1.1
Content-Type: application/json
Host: barlow.com
Content-Length: 90

{
  "deviceOs" : "ios",
  "deviceId" : "device_id_1",
  "deviceToken" : "device_token_1"
}
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 537

{
  "result" : "SUCCESS",
  "data" : {
    "accessToken" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg"
  },
  "error" : null
}
Table 4. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.accessToken

String

발급된 액세스 토큰


OIDC 회원가입

POST /api/v1/auth/oidc/signup

Table 5. 요청 바디
Path Type Description

oidcPayload

Object

OIDC 인증 정보 (authProvider, idToken)

termAgreements

Object

약관 동의 목록 (약관 ID → 동의 여부)

signupPayload

Object

회원가입 기기 정보 (deviceOs, deviceId, deviceToken, nickname)

HTTP 요청 예시
POST /api/v1/auth/oidc/accounts HTTP/1.1
Content-Type: application/json
Host: barlow.com
Content-Length: 321

{
  "oidcPayload" : {
    "authProvider" : "KAKAO",
    "idToken" : "mock_id_token"
  },
  "termAgreements" : {
    "1" : true,
    "2" : true,
    "3" : false
  },
  "signupPayload" : {
    "deviceId" : "oidc_device_id",
    "deviceOs" : "ios",
    "deviceToken" : "oidc_device_token",
    "nickname" : "oidc_user"
  }
}
HTTP 응답 예시
HTTP/1.1 201 Created
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 539

{
  "result" : "SUCCESS",
  "data" : {
    "accessToken" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjMsInJvbGUiOiJNRU1CRVIifQ.QuBpGs76cxZ515-Vj6MJXxaMfwrceT6siAriU-sFcwHF8xgZ3nZ2eu62YwJGEVJHtt5RvZzUh9O_d-f2snM54PxwGaf2YdXPIoWr9RPMVn_N6mgIrjOtKmTbVfPpbGniR7oUln8oFxY0B17zFmOgEHzXpFQMrdRQQjj9t0bneDkhSbFhruQ-DGVtnBrRhOMpgOMtl7WT4zW49xsGXo5O6jL0AWRTINUZp52MRGHdp5Dxe4wFCNAwCFHtuOOS4VqBL96yO32vpOOU0Yqc_VDEF1oXrYY4237laI1IhYgHGDtCW_VPRzxY6P63N9MvRY6xXOKkvTvUT2_Xyf4nUIa4ig"
  },
  "error" : null
}
Table 6. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.accessToken

String

발급된 액세스 토큰


OIDC 역할 전환 (게스트 → 멤버)

POST /api/v1/auth/oidc/promote

Table 7. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰 (GUEST 역할)

Table 8. 요청 바디
Path Type Description

oidcPayload

Object

OIDC 인증 정보 (authProvider, idToken)

HTTP 요청 예시
PATCH /api/v1/auth/oidc/role HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
Content-Length: 89

{
  "oidcPayload" : {
    "authProvider" : "KAKAO",
    "idToken" : "mock_id_token"
  }
}
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 537

{
  "result" : "SUCCESS",
  "data" : {
    "accessToken" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg"
  },
  "error" : null
}
Table 9. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.accessToken

String

MEMBER 역할로 재발급된 액세스 토큰


OIDC 로그인

POST /api/v1/auth/oidc/login

Table 10. 요청 바디
Path Type Description

deviceOs

String

디바이스 OS (ios / android)

deviceId

String

디바이스 고유 ID

deviceToken

String

푸시 알림용 디바이스 토큰

oidcPayload

Object

OIDC 인증 정보 (authProvider, idToken)

HTTP 요청 예시
POST /api/v1/auth/oidc/sessions HTTP/1.1
Content-Type: application/json
Host: barlow.com
Content-Length: 181

{
  "deviceId" : "device_id_3",
  "deviceOs" : "android",
  "deviceToken" : "device_token_3",
  "oidcPayload" : {
    "authProvider" : "KAKAO",
    "idToken" : "mock_id_token"
  }
}
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 539

{
  "result" : "SUCCESS",
  "data" : {
    "accessToken" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjIsInJvbGUiOiJNRU1CRVIifQ.j5Ml5mEmCpvmXOjVcH6gINy2HqEcaLtEp2CQVMLIwlQoWX6Q3Nn3u2ArMo3YibBoHp6HyK6TwL42-n0dbibEza9vXdLbQN5j6GwaZ7j0Oll7VL5P4Ywzzn5CLPqUluoslAi9XIbA7xxATXktVcxbkw7O4vYFlk-AXVc5vfPUC0WhnSkXXmJD_uJIEtJRSC7IPHMOKlMktXLjucJyJQqSNHZKhD7kRAQivYesK1KdSWENSjd-LKdFLLzXSexHFaNwDkSx1RfsbJ2vAIDontLF1updSm_X0d6X1SqlzTGr3Kh9yILitpk1dJ7xsJeMrUGjQzCL8KW_bhVPSI1snqcgaA"
  },
  "error" : null
}
Table 11. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.accessToken

String

발급된 액세스 토큰


계정 (Account)

내 계정 조회

GET /api/v1/account/my

Table 12. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

HTTP 요청 예시
GET /api/v1/accounts/me HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjIsInJvbGUiOiJNRU1CRVIifQ.j5Ml5mEmCpvmXOjVcH6gINy2HqEcaLtEp2CQVMLIwlQoWX6Q3Nn3u2ArMo3YibBoHp6HyK6TwL42-n0dbibEza9vXdLbQN5j6GwaZ7j0Oll7VL5P4Ywzzn5CLPqUluoslAi9XIbA7xxATXktVcxbkw7O4vYFlk-AXVc5vfPUC0WhnSkXXmJD_uJIEtJRSC7IPHMOKlMktXLjucJyJQqSNHZKhD7kRAQivYesK1KdSWENSjd-LKdFLLzXSexHFaNwDkSx1RfsbJ2vAIDontLF1updSm_X0d6X1SqlzTGr3Kh9yILitpk1dJ7xsJeMrUGjQzCL8KW_bhVPSI1snqcgaA
X-Client-OS: android
X-Client-OS-Version: device_os_version
X-Device-ID: device_id_3
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:27 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 477

{
  "result" : "SUCCESS",
  "data" : {
    "user" : {
      "userNo" : 2,
      "nickname" : "existing_member",
      "role" : "MEMBER"
    },
    "authProviders" : [ {
      "provider" : "KAKAO",
      "sub" : "existing_sub_123"
    } ],
    "devices" : [ {
      "deviceId" : "device_id_3",
      "deviceOs" : "ANDROID",
      "status" : "ACTIVE"
    }, {
      "deviceId" : "device_id_5",
      "deviceOs" : "IOS",
      "status" : "INACTIVE"
    } ]
  },
  "error" : null
}
Table 13. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.user

Object

사용자 정보

data.user.userNo

Number

사용자 번호

data.user.nickname

String

닉네임

data.user.role

String

사용자 역할 (GUEST / MEMBER)

data.authProviders

Array

연결된 소셜 로그인 제공자 목록

data.devices

Array

연결된 기기 목록


회원 탈퇴

POST /api/v1/account/withdraw

Table 14. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

HTTP 요청 예시
DELETE /api/v1/accounts/me HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS: ios
X-Client-OS-Version: device_os_version
X-Device-ID: device_id_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:27 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 61

{
  "result" : "SUCCESS",
  "data" : null,
  "error" : null
}
Table 15. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data

Null

응답 데이터 (null)


약관 (Term)

활성화된 약관 목록 조회

GET /api/v1/term/active

HTTP 요청 예시
GET /api/v1/terms HTTP/1.1
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 827

{
  "result" : "SUCCESS",
  "data" : {
    "activeTerms" : [ {
      "id" : 1,
      "title" : "서비스 이용약관",
      "linkUrl" : "https://example.com/terms/service",
      "type" : "SERVICE",
      "version" : "1.0",
      "required" : true,
      "effectiveAt" : "2024-01-01T00:00:00"
    }, {
      "id" : 2,
      "title" : "개인정보 처리방침",
      "linkUrl" : "https://example.com/terms/privacy",
      "type" : "PRIVACY",
      "version" : "1.0",
      "required" : true,
      "effectiveAt" : "2024-01-01T00:00:00"
    }, {
      "id" : 3,
      "title" : "마케팅 정보 수신 동의",
      "linkUrl" : "https://example.com/terms/marketing",
      "type" : "MARKETING",
      "version" : "1.0",
      "required" : false,
      "effectiveAt" : "2024-01-01T00:00:00"
    } ]
  },
  "error" : null
}
Table 16. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.activeTerms

Array

활성화된 약관 목록

data.activeTerms[].id

Number

약관 ID

data.activeTerms[].title

String

약관 제목

data.activeTerms[].linkUrl

String

약관 상세 링크 URL

data.activeTerms[].type

String

약관 유형 (SERVICE / PRIVACY / MARKETING)

data.activeTerms[].version

String

약관 버전

data.activeTerms[].required

Boolean

필수 동의 여부

data.activeTerms[].effectiveAt

String

약관 발효일시


클라이언트 버전 (Client Version)

버전 확인

GET /api/v1/client-version/check

Table 17. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 고유 ID

X-App-Version

클라이언트 앱 버전 (예: 1.5.0)

X-Device-Os

디바이스 OS (ANDROID / IOS)

HTTP 요청 예시
GET /api/v1/client-versions HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
X-App-Version: 1.5.0
X-Device-Os: ANDROID
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 122

{
  "result" : "SUCCESS",
  "data" : {
    "needForceUpdate" : false,
    "updateAvailable" : true
  },
  "error" : null
}
Table 18. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.needForceUpdate

Boolean

강제 업데이트 필요 여부

data.updateAvailable

Boolean

업데이트 가능 여부


메인 홈 (Home)

홈 조회

GET /api/v1/home

Table 19. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

HTTP 요청 예시
GET /api/v1/home HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 476

{
  "result" : "SUCCESS",
  "data" : {
    "isNotificationArrived" : false,
    "subscribeSection" : {
      "display" : null,
      "subscribeLegislationBodies" : [ {
        "no" : 1,
        "bodyType" : "국회운영위원회",
        "iconImageUrl" : "nulldefault/icon-image-url"
      } ]
    },
    "todayBillPostSection" : {
      "display" : "오늘 접수된 법안들이 아직 등록되지 않았어요",
      "postThumbnails" : [ ]
    }
  },
  "error" : null
}
Table 20. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.subscribeSection

Object

구독한 상임위원회 섹션

data.isNotificationArrived

Boolean

오늘 수신된 알림 존재 여부

data.todayBillPostSection

Object

오늘의 법안 섹션


알림센터 조회

GET /api/v1/home/notification-center

Table 21. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

HTTP 요청 예시
GET /api/v1/home/notification-center HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 605

{
  "result" : "SUCCESS",
  "data" : {
    "items" : [ {
      "topic" : "국회운영위원회",
      "title" : "국회운영위원회",
      "body" : "정부조직법 일부개정법률안",
      "iconUrl" : "nulldefault/icon-image-url",
      "billId" : "PRC_1",
      "createdAt" : "2025-02-01T00:00:00"
    }, {
      "topic" : "법제사법위원회",
      "title" : "법제사법위원회",
      "body" : "방위사업법 일부개정법률안",
      "iconUrl" : "nulldefault/icon-image-url",
      "billId" : "PRC_2",
      "createdAt" : "2025-01-01T00:00:00"
    } ]
  },
  "error" : null
}
Table 22. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.items

Array

최근 알림 목록


최근 법안 (Recent Bill)

최근법안 목록 조회

GET /api/v1/recent-bill/thumbnail

요청 헤더

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/recent-bill/thumbnail/request-headers.adoc[]

쿼리 파라미터

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/recent-bill/thumbnail/query-parameters.adoc[]

HTTP 요청 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/recent-bill/thumbnail/http-request.adoc[]

HTTP 응답 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/recent-bill/thumbnail/http-response.adoc[]

응답 필드

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/recent-bill/thumbnail/response-fields.adoc[]


최근법안 상세 조회

GET /api/v1/recent-bill/detail/{recentBillId}

Table 23. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 24. /api/v1/recent-bills/{recentBillId}
Parameter Description

recentBillId

조회할 법안 ID

HTTP 요청 예시
GET /api/v1/recent-bills/PRC_1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 2114

{
  "result" : "SUCCESS",
  "data" : {
    "title" : "정부조직법 일부개정법률안",
    "proposerSummary" : "홍길동의원 등 10인",
    "proposerType" : "의원",
    "legislativeBody" : "소관위미접수상태",
    "createdAt" : "2025-02-01",
    "detail" : "제안이유 및 주요내용",
    "summarySection" : {
      "summaryTitle" : "AI가 요약했어요",
      "summaryDetail" : null
    },
    "proposerSection" : {
      "proposerPartyRate" : {
        "무소속" : 1,
        "더불어민주당" : 8,
        "국민의힘" : 1
      },
      "proposerResponses" : [ {
        "name" : "홍길동",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동1",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동2",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동3",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "무소속"
      }, {
        "name" : "홍길동4",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동5",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동6",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동7",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "name" : "홍길동8",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동9",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      } ]
    }
  },
  "error" : null
}
Table 25. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.title

String

법안 제목

data.proposerSummary

String

발의자 요약

data.proposerType

String

발의 유형 (의원발의 / 정부발의 등)

data.legislativeBody

String

입법 기관 유형

data.summarySection

Object

AI 요약 정보

data.proposerSection

Object

발의자 상세 정보


입법예고 (Pre-Announcement Bill)

입법예고 목록 조회

GET /api/v1/pre-announcement-bills

Table 26. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 27. 쿼리 파라미터
Parameter Description

legislationType

상임위원회 유형 필터 (선택)

partyName

정당명 필터 (선택)

HTTP 요청 예시
GET /api/v1/pre-announcement-bills HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 289

{
  "result" : "SUCCESS",
  "data" : {
    "display" : "위원회에 회부된 법률안을 심사하기 전에 법률안의 입법 취지와 주요 내용 등을 국민들에게 미리 알리는 절차를 말해요",
    "thumbnails" : [ ],
    "isLastPage" : true
  },
  "error" : null
}
Table 28. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data

Object

입법예고 게시글 목록


입법예고 상세 조회

GET /api/v1/pre-announcement-bills/{billId}

Table 29. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 30. /api/v1/pre-announcement-bills/{billId}
Parameter Description

billId

조회할 법안 ID

HTTP 요청 예시
GET /api/v1/pre-announcement-bills/PRC_3 HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 2344

{
  "result" : "SUCCESS",
  "data" : {
    "title" : "방위사업법 일부개정법률안",
    "proposerSummary" : "허준의원 등 10인",
    "legislativeBody" : "국회운영위원회",
    "detail" : "제안이유 및 주요내용",
    "preAnnouncementSection" : {
      "deadline" : "2025-03-20",
      "linkUrl" : "https://pa.assembly.go.kr/~",
      "dDay" : -377
    },
    "summarySection" : {
      "summaryTitle" : "AI가 요약했어요",
      "summaryDetail" : null
    },
    "proposerSection" : {
      "proposerPartyRate" : {
        "무소속" : 1,
        "더불어민주당" : 1,
        "국민의힘" : 8
      },
      "proposerResponses" : [ {
        "code" : "C",
        "name" : "허준",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "code" : "C1",
        "name" : "허준1",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "code" : "C2",
        "name" : "허준2",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "code" : "C3",
        "name" : "허준3",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "code" : "C4",
        "name" : "허준4",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "code" : "C5",
        "name" : "허준5",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "code" : "C6",
        "name" : "허준6",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "code" : "C7",
        "name" : "허준7",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "code" : "C8",
        "name" : "허준8",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "무소속"
      }, {
        "code" : "C9",
        "name" : "허준9",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      } ]
    }
  },
  "error" : null
}
Table 31. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.title

String

법안 제목

data.proposerSummary

String

발의자 요약

data.preAnnouncementSection

Object

입법예고 관련 정보 (기간, 링크 등)

data.summarySection

Object

AI 요약 정보

data.proposerSection

Object

발의자 상세 정보


상임위원회 (Legislation Account)

상임위원회 프로필 조회

GET /api/v1/legislation-accounts/{legislationType}/profile

Table 32. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 33. /api/v1/legislation-accounts/{legislationType}/profile
Parameter Description

legislationType

상임위원회 유형 (예: HOUSE_STEERING)

HTTP 요청 예시
GET /api/v1/legislation-accounts/HOUSE_STEERING/profile HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 320

{
  "result" : "SUCCESS",
  "data" : {
    "accountName" : "국회운영위원회",
    "iconUrl" : "nulldefault/icon-image-url",
    "description" : "국회운영위원회에 대한 설명",
    "postCount" : 100,
    "subscriberCount" : 300,
    "isSubscribe" : true,
    "isNotifiable" : false
  },
  "error" : null
}
Table 34. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.accountName

String

상임위원회 이름

data.iconUrl

String

아이콘 이미지 URL

data.description

String

상임위원회 설명

data.postCount

Number

게시글 수

data.subscriberCount

Number

구독자 수

data.isSubscribe

Boolean

현재 사용자 구독 여부

data.isNotifiable

Boolean

현재 사용자 알림 활성화 여부


전체 상임위원회 목록 조회

GET /api/v1/legislation-accounts/committees/info

Table 35. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

HTTP 요청 예시
GET /api/v1/legislation-accounts/committees/info HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 833

{
  "result" : "SUCCESS",
  "data" : {
    "title" : "소관위원회 더 알아보기",
    "subtitle" : "소관위원회란?",
    "description" : "대한민국 소관위원회는 국회 내에서 입법 및 행정에 대한 심의·조사를 담당하는 전문 기구예요.\n총 17개 위원회가 있으며, 국회의원들이 소속되어 법률안 심사, 예산안 검토, 국정감사 등을 수행해요.\n",
    "accounts" : [ {
      "accountNo" : 1,
      "accountName" : "국회운영위원회",
      "iconUrl" : "nulldefault/icon-image-url",
      "isSubscribed" : true,
      "isNotifiable" : false
    }, {
      "accountNo" : 2,
      "accountName" : "법제사법위원회",
      "iconUrl" : "nulldefault/icon-image-url",
      "isSubscribed" : false,
      "isNotifiable" : true
    } ]
  },
  "error" : null
}
Table 36. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.title

String

페이지 제목

data.subtitle

String

페이지 부제목

data.description

String

페이지 설명

data.accounts

Array

상임위원회 목록 (accountNo, accountName, iconUrl, isSubscribed, isNotifiable)


상임위원회 게시글 목록 조회

GET /api/v1/legislation-accounts/{legislationType}/bill-posts

Table 37. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 38. /api/v1/legislation-accounts/{legislationType}/bill-posts
Parameter Description

legislationType

상임위원회 유형 (예: HOUSE_STEERING)

Table 39. 쿼리 파라미터
Parameter Description

page

페이지 번호 (0부터 시작)

size

페이지 크기

HTTP 요청 예시
GET /api/v1/legislation-accounts/HOUSE_STEERING/bill-posts?page=0&size=10 HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 698

{
  "result" : "SUCCESS",
  "data" : {
    "today" : [ ],
    "recent" : [ {
      "billId" : "PRC_2",
      "billName" : "방위사업법 일부개정법률안",
      "proposers" : "임꺽정의원 등 10인",
      "legislationProcess" : "소관위접수"
    }, {
      "billId" : "PRC_3",
      "billName" : "방위사업법 일부개정법률안",
      "proposers" : "허준의원 등 10인",
      "legislationProcess" : "소관위접수"
    }, {
      "billId" : "PRC_4",
      "billName" : "방위사업법 일부개정법률안(대안)",
      "proposers" : "국회운영위원장",
      "legislationProcess" : "소관위접수"
    } ],
    "isLastPage" : true
  },
  "error" : null
}
Table 40. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data

Object

게시글 목록 및 페이지 정보


상임위원회 게시글 상세 조회

GET /api/v1/legislation-accounts/bill-posts/{billId}

Table 41. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 42. /api/v1/legislation-accounts/bill-posts/{billId}
Parameter Description

billId

조회할 법안 ID

HTTP 요청 예시
GET /api/v1/legislation-accounts/bill-posts/PRC_1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:30 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 2114

{
  "result" : "SUCCESS",
  "data" : {
    "title" : "정부조직법 일부개정법률안",
    "proposerSummary" : "홍길동의원 등 10인",
    "proposerType" : "의원",
    "legislativeBody" : "소관위미접수상태",
    "createdAt" : "2025-02-01",
    "detail" : "제안이유 및 주요내용",
    "summarySection" : {
      "summaryTitle" : "AI가 요약했어요",
      "summaryDetail" : null
    },
    "proposerSection" : {
      "proposerPartyRate" : {
        "무소속" : 1,
        "더불어민주당" : 8,
        "국민의힘" : 1
      },
      "proposerResponses" : [ {
        "name" : "홍길동",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동1",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동2",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동3",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "무소속"
      }, {
        "name" : "홍길동4",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동5",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동6",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동7",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "국민의힘"
      }, {
        "name" : "홍길동8",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      }, {
        "name" : "홍길동9",
        "profileImage" : "null/lawmaker/profile-image-path.jpg",
        "partyName" : "더불어민주당"
      } ]
    }
  },
  "error" : null
}
Table 43. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.title

String

법안 제목

data.proposerSummary

String

발의자 요약

data.summarySection

Object

AI 요약 정보

data.proposerSection

Object

발의자 상세 정보


상임위원회 구독 활성화

POST /api/v1/legislation-accounts/{legislationType}/subscribe/activate

요청 헤더

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/activate/request-headers.adoc[]

경로 파라미터

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/activate/path-parameters.adoc[]

HTTP 요청 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/activate/http-request.adoc[]

HTTP 응답 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/activate/http-response.adoc[]

응답 필드

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/activate/response-fields.adoc[]


상임위원회 구독 비활성화

POST /api/v1/legislation-accounts/{legislationType}/subscribe/deactivate

요청 헤더

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/deactivate/request-headers.adoc[]

경로 파라미터

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/deactivate/path-parameters.adoc[]

HTTP 요청 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/deactivate/http-request.adoc[]

HTTP 응답 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/deactivate/http-response.adoc[]

응답 필드

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/subscribe/deactivate/response-fields.adoc[]


상임위원회 알림설정 활성화

POST /api/v1/legislation-accounts/{legislationType}/notification-setting/activate

요청 헤더

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/activate/request-headers.adoc[]

경로 파라미터

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/activate/path-parameters.adoc[]

HTTP 요청 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/activate/http-request.adoc[]

HTTP 응답 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/activate/http-response.adoc[]

응답 필드

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/activate/response-fields.adoc[]


상임위원회 알림설정 비활성화

POST /api/v1/legislation-accounts/{legislationType}/notification-setting/deactivate

요청 헤더

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/deactivate/request-headers.adoc[]

경로 파라미터

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/deactivate/path-parameters.adoc[]

HTTP 요청 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/deactivate/http-request.adoc[]

HTTP 응답 예시

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/deactivate/http-response.adoc[]

응답 필드

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/legislation-accounts/notification-setting/deactivate/response-fields.adoc[]


리액션 (Reaction)

리액션 조회

GET /api/v1/reactions/{targetId}?targetType=BILL_POST

Table 44. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 45. /api/v1/reactions/{targetId}
Parameter Description

targetId

리액션 대상 ID (법안 ID 등)

Table 46. 쿼리 파라미터
Parameter Description

targetType

리액션 대상 유형 (예: BILL_POST)

HTTP 요청 예시
GET /api/v1/reactions/PRC_1?targetType=BILL_POST HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 224

{
  "result" : "SUCCESS",
  "data" : {
    "reactions" : {
      "DISLIKE" : 1,
      "LIKE" : 2,
      "HMM" : 1
    },
    "status" : {
      "reactionType" : "LIKE",
      "hasReacted" : true
    }
  },
  "error" : null
}
Table 47. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data.reactions

Object

리액션 종류별 개수 (LIKE, DISLIKE 등)

data.status

Object

현재 사용자의 리액션 상태 (reactionType, hasReacted)


리액션 등록

POST /api/v1/reactions/{targetId}?targetType=BILL_POST&reactionType=LIKE

Table 48. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 49. /api/v1/reactions/{targetId}
Parameter Description

targetId

리액션 대상 ID

쿼리 파라미터

Unresolved directive in api-docs.adoc - include::/home/runner/work/barlow/barlow/app/api/build/generated-snippets/reactions/react/query-parameters.adoc[]

HTTP 요청 예시
POST /api/v1/reactions/PRC_4 HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
Content-Length: 62

{
  "reactionType" : "DISLIKE",
  "targetType" : "BILL_POST"
}
HTTP 응답 예시
HTTP/1.1 201 Created
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 61

{
  "result" : "SUCCESS",
  "data" : null,
  "error" : null
}
Table 50. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data

Null

응답 데이터 (null)


리액션 해제

POST /api/v1/reactions/{targetId}/remove?targetType=BILL_POST&reactionType=LIKE

Table 51. 요청 헤더
Name Description

Authorization

Bearer 액세스 토큰

X-Client-OS

클라이언트 OS (ios / android)

X-Client-OS-Version

클라이언트 OS 버전

X-Device-ID

디바이스 ID

Table 52. /api/v1/reactions/{targetId}
Parameter Description

targetId

리액션 해제 대상 ID

Table 53. 쿼리 파라미터
Parameter Description

targetType

리액션 대상 유형 (예: BILL_POST)

reactionType

해제할 리액션 종류 (LIKE / DISLIKE / HMM)

HTTP 요청 예시
DELETE /api/v1/reactions/PRC_1?targetType=BILL_POST&reactionType=LIKE HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJiYXJsb3ctY29yZS1hdXRoIiwibWVtYmVyTm8iOjEsInJvbGUiOiJHVUVTVCJ9.IU3HW86cEmNzGazlsxzh9bOVfXq8VZzGufaL9jKpara1xlqIzSe4C59plPu9TyEWdHUSWhNKqbqBA-NqjYJHD-JRylIz-rGBsKDKAsC2PTSEUbGRfRfMdRNZLF9oVBrGVM4dBL3IBXddH9goccHis1jaQnDoOkkEuGDyjgEx3Vxu_-EJaXF1Jf_njCYvlMy4ljayYi5hVWvsMLGhyaXfv4grBiJNm9DXk7DdTmsY4ch6Nh8BiodLRb4yDZ5JsqlVcOmQS-NfFgzQlRDtty5duqdB6pdHhHoFIGUVGPxFme_5UD-_p2AkRDDwMiETeBStxkPamF3vuXLt0cfQu0c_Gg
X-Client-OS-Version: device_os_version
X-Client-OS: ios
X-Device-ID: device_id_value_1
Content-Type: application/json
Host: barlow.com
HTTP 응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 01 Apr 2026 07:49:31 GMT
Keep-Alive: timeout=60
Connection: keep-alive
Content-Length: 61

{
  "result" : "SUCCESS",
  "data" : null,
  "error" : null
}
Table 54. 응답 필드
Path Type Description

result

String

결과 상태 (SUCCESS)

data

Null

응답 데이터 (null)