API 개요
이 참조 문서는 API 기본 사항, 일반 용어 및 REST API 키, 권한 및 이를 안전하게 유지하는 방법에 대한 개요를 다룹니다.
Braze REST API 컬렉션
| 컬렉션 | 목적 |
|---|---|
| 카탈로그 | Braze Campaigns에서 참조할 카탈로그 및 카탈로그 항목을 생성하고 관리합니다. |
| 클라우드 데이터 수집 | 데이터 웨어하우스 통합 및 동기화를 관리합니다. |
| 이메일 목록 및 주소 | Braze와 이메일 시스템 간의 양방향 동기화를 설정하고 관리합니다. |
| 내보내기 | Campaigns, Canvases, KPI 등의 다양한 세부 정보에 접근하고 내보냅니다. |
| 미디어 라이브러리 | Braze 내 에셋을 관리합니다. |
| 메시지 | Campaigns 및 Canvases를 예약하고, 전송하고, 관리합니다. |
| 환경설정 센터 | 환경설정 센터를 구축하고 스타일링을 업데이트합니다. |
| SCIM | 클라우드 기반 애플리케이션 및 서비스에서 사용자 ID를 관리합니다. |
| SMS | 구독 그룹에서 사용자의 전화번호를 관리합니다. |
| 구독 그룹 | Braze 대시보드에 저장된 SMS 및 이메일 구독 그룹을 조회하고 업데이트합니다. |
| 템플릿 | 이메일 메시징 및 Content Blocks용 템플릿을 생성하고 업데이트합니다. |
| 사용자 데이터 | 사용자를 식별하고, 추적하고, 관리합니다. |
API 정의
다음은 Braze REST API 설명서에서 볼 수 있는 용어에 대한 개요입니다.
엔드포인트
Braze는 대시보드 및 REST 엔드포인트를 위해 여러 인스턴스를 관리합니다. 계정이 프로비저닝되면 다음 URL 중 하나에 로그인하게 됩니다. 프로비저닝된 인스턴스에 따라 올바른 REST 엔드포인트를 사용하세요. 확실하지 않은 경우 지원 티켓을 열거나 아래 표를 사용하여 사용 중인 대시보드 URL을 올바른 REST 엔드포인트와 매칭하세요.
Braze에서 REST 엔드포인트를 찾으려면 다음을 수행합니다.
- Braze에 로그인하고 설정 > API 및 식별자 > API 키로 이동합니다.
- 기존 API 키를 선택하거나 API 키 생성을 선택하여 새 키를 만듭니다.
- 이 탭에 표시된 REST 엔드포인트를 복사하여 API 요청에 사용합니다.

| 인스턴스 | URL | REST 엔드포인트 | SDK 엔드포인트 |
|---|---|---|---|
| US-01 | https://dashboard-01.braze.com |
https://rest.iad-01.braze.com |
sdk.iad-01.braze.com |
| US-02 | https://dashboard-02.braze.com |
https://rest.iad-02.braze.com |
sdk.iad-02.braze.com |
| US-03 | https://dashboard-03.braze.com |
https://rest.iad-03.braze.com |
sdk.iad-03.braze.com |
| US-04 | https://dashboard-04.braze.com |
https://rest.iad-04.braze.com |
sdk.iad-04.braze.com |
| US-05 | https://dashboard-05.braze.com |
https://rest.iad-05.braze.com |
sdk.iad-05.braze.com |
| US-06 | https://dashboard-06.braze.com |
https://rest.iad-06.braze.com |
sdk.iad-06.braze.com |
| US-07 | https://dashboard-07.braze.com |
https://rest.iad-07.braze.com |
sdk.iad-07.braze.com |
| US-08 | https://dashboard-08.braze.com |
https://rest.iad-08.braze.com |
sdk.iad-08.braze.com |
| US-10 | https://dashboard.us-10.braze.com |
https://rest.us-10.braze.com |
sdk.us-10.braze.com |
| EU-01 | https://dashboard-01.braze.eu |
https://rest.fra-01.braze.eu |
sdk.fra-01.braze.eu |
| EU-02 | https://dashboard-02.braze.eu |
https://rest.fra-02.braze.eu |
sdk.fra-02.braze.eu |
| AU-01 | https://dashboard.au-01.braze.com |
https://rest.au-01.braze.com |
sdk.au-01.braze.com |
| ID-01 | https://dashboard.id-01.braze.com |
https://rest.id-01.braze.com |
sdk.id-01.braze.com |
| JP-01 | https://dashboard.jp-01.braze.com |
https://rest.jp-01.braze.com |
sdk.jp-01.braze.com |
| KR-01 | https://dashboard.kr-01.braze.com |
https://rest.kr-01.braze.com |
sdk.kr-01.braze.com |
API 제한
대부분의 API에서 Braze는 시간당 250,000건의 기본 사용량 제한을 적용합니다. 그러나 특정 요청 유형에는 고객 기반 전반의 대량 데이터를 더 효과적으로 처리하기 위해 자체적인 사용량 제한이 적용됩니다. 자세한 내용은 API 사용량 제한을 참조하세요.
사용자 ID
- 외부 사용자 ID:
external_id는 데이터를 제출하는 대상 사용자의 고유 식별자 역할을 합니다. 이 식별자는 동일한 사용자에 대해 여러 프로필이 생성되는 것을 방지하기 위해 Braze SDK에서 설정한 것과 동일해야 합니다. - Braze 사용자 ID:
braze_id는 Braze가 설정하는 고유 사용자 식별자 역할을 합니다. 이 식별자를 사용하여 external_ids 외에도 REST API를 통해 사용자를 삭제할 수 있습니다.
자세한 내용은 플랫폼에 따라 다음 문서를 참조하세요: iOS, Android, 웹.
REST API 키에 대하여
REST API(Application Programming Interface) 키는 API에 전달하는 고유 코드로, API 호출을 인증하고 호출하는 애플리케이션 또는 사용자를 식별합니다. 회사의 REST API 엔드포인트로 HTTPS 웹 요청을 사용하여 API에 접근합니다. REST API 키는 앱 식별자 키와 함께 작동하여 데이터를 추적, 접근, 전송, 내보내기 및 분석하여 모든 것이 원활하게 실행되도록 합니다.
워크스페이스와 API 키는 Braze에서 밀접하게 연관되어 있습니다. 워크스페이스는 여러 플랫폼에 걸쳐 동일한 애플리케이션의 버전을 보관하도록 설계되었습니다. 많은 고객이 동일한 플랫폼에서 무료 및 프리미엄 버전의 애플리케이션을 포함하기 위해 워크스페이스를 사용하기도 합니다. 이러한 워크스페이스는 REST API를 활용하며 고유한 REST API 키를 갖습니다. 이 키는 API의 특정 엔드포인트에 대한 접근을 포함하도록 개별적으로 범위를 지정할 수 있습니다. API에 대한 각 호출에는 호출되는 엔드포인트에 접근할 수 있는 키가 포함되어야 합니다.
REST API 키와 워크스페이스 API 키를 모두 api_key로 지칭합니다. api_key는 각 요청에 요청 헤더로 포함되며 REST API를 사용할 수 있게 해주는 인증 키 역할을 합니다. 이러한 REST API는 사용자를 추적하고, 메시지를 전송하고, 사용자 데이터를 내보내는 등의 용도로 사용됩니다. 새 REST API 키를 만들 때 특정 엔드포인트에 대한 접근 권한을 부여해야 합니다. API 키에 특정 권한을 할당하여 API 키가 인증할 수 있는 호출을 정확하게 제한할 수 있습니다.


REST API 키 외에도 앱, 템플릿, Canvases, Campaigns, Content Cards, Segments 같은 특정 항목을 API에서 참조하는 데 사용할 수 있는 식별자 키라는 유형의 키도 존재합니다. 자세한 내용은 API 식별자 유형을 참조하세요.
REST API 키 만들기
새 REST API 키를 만들려면 다음을 수행하세요.
- 설정 > API 및 식별자로 이동합니다.
- API 키 만들기를 선택합니다.
- 새 키에 한눈에 식별할 수 있는 이름을 지정합니다.
- 새 키에 대해 허용된 IP 주소와 서브넷을 지정합니다.
- 새 키에 연결할 권한을 선택합니다.

새 API 키를 만든 후에는 권한 범위나 허용된 IP를 편집할 수 없다는 점에 유의하세요. 이 제한은 보안상의 이유로 존재합니다. 키의 범위를 변경해야 하는 경우, 업데이트된 권한으로 새 키를 만들고 기존 키 대신 해당 키를 구현하세요. 구현을 완료한 후 이전 키를 삭제할 수 있습니다.
REST API 키 권한
API 키 권한은 사용자 또는 그룹에 할당하여 특정 API 호출에 대한 접근을 제한할 수 있는 권한입니다. API 키 권한 목록을 보려면 설정 > API 및 식별자로 이동하여 API 키를 선택합니다.
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
users.track |
/users/track |
사용자 속성, 커스텀 이벤트, 구매를 기록합니다. |
users.delete |
/users/delete |
모든 사용자를 삭제합니다. |
users.alias.new |
/users/alias/new |
기존 사용자에 대해 새 별칭을 만듭니다. |
users.identify |
/users/identify |
외부 ID로 별칭 전용 사용자를 식별합니다. |
users.export.ids |
/users/export/ids |
사용자 ID별로 고객 프로필 정보를 조회합니다. |
users.export.segment |
/users/export/segment |
Segment별로 고객 프로필 정보를 조회합니다. |
users.merge |
/users/merge |
두 기존 사용자를 서로 병합합니다. |
users.external_ids.rename |
/users/external_ids/rename |
기존 사용자의 외부 ID를 변경합니다. |
users.external_ids.remove |
/users/external_ids/remove |
기존 사용자의 외부 ID를 제거합니다. |
users.alias.update |
/users/alias/update |
기존 사용자의 별칭을 업데이트합니다. |
users.export.global_control_group |
/users/export/global_control_group |
글로벌 컨트롤 그룹의 고객 프로필 정보를 조회합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
email.unsubscribe |
/email/unsubscribes |
구독 취소된 이메일 주소를 조회합니다. |
email.status |
/email/status |
이메일 주소 상태를 변경합니다. |
email.hard_bounces |
/email/hard_bounces |
하드 바운스된 이메일 주소를 조회합니다. |
email.bounce.remove |
/email/bounce/remove |
하드 바운스 목록에서 이메일 주소를 제거합니다. |
email.spam.remove |
/email/spam/remove |
스팸 목록에서 이메일 주소를 제거합니다. |
email.blacklist |
/email/blacklist |
이메일 주소를 차단 목록에 추가합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
messages.send |
/messages/send |
특정 사용자에게 즉시 메시지를 전송합니다. |
messages.schedule.create |
/messages/schedule/create |
특정 시간에 전송될 메시지를 예약합니다. |
messages.schedule.update |
/messages/schedule/update |
예약된 메시지를 업데이트합니다. |
messages.schedule.delete |
/messages/schedule/delete |
예약된 메시지를 삭제합니다. |
messages.schedule_broadcasts |
/messages/scheduled_broadcasts |
모든 예약된 브로드캐스트 메시지를 조회합니다. |
messages.live_activity.update |
/messages/live_activity/update |
iOS 라이브 액티비티를 업데이트합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
campaigns.trigger.send |
/campaigns/trigger/send |
기존 Campaign의 전송을 트리거합니다. |
campaigns.trigger.schedule.create |
/campaigns/trigger/schedule/create |
API 트리거 전달로 Campaign 전송을 예약합니다. |
campaigns.trigger.schedule.update |
/campaigns/trigger/schedule/update |
API 트리거 전달로 예약된 Campaign을 업데이트합니다. |
campaigns.trigger.schedule.delete |
/campaigns/trigger/schedule/delete |
API 트리거 전달로 예약된 Campaign을 삭제합니다. |
campaigns.list |
/campaigns/list |
Campaigns 목록을 조회합니다. |
campaigns.data_series |
/campaigns/data_series |
특정 기간 동안의 Campaign 분석 데이터를 조회합니다. |
campaigns.details |
/campaigns/details |
특정 Campaign의 세부 정보를 조회합니다. |
sends.data_series |
/sends/data_series |
특정 기간 동안의 메시지 전송 분석 데이터를 조회합니다. |
sends.id.create |
/sends/id/create |
메시지 대량 전송 추적을 위한 전송 ID를 만듭니다. |
campaigns.url_info.details |
/campaigns/url_info/details |
Campaign 내 특정 메시지 변형의 URL 세부 정보를 조회합니다. 이 권한은 링크 별칭 지정이 활성화된 워크스페이스에서만 사용할 수 있습니다. 워크스페이스에서 이 권한을 사용할 수 없는 경우 Braze 계정 매니저에게 문의하세요. |
transactional.send |
/transactional/v1/campaigns/{campaign_id}/send |
트랜잭션 메시징 엔드포인트를 사용하여 트랜잭션 메시지를 전송할 수 있는 기능을 제공합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
canvas.trigger.send |
/canvas/trigger/send |
기존 Canvas의 전송을 트리거합니다. |
canvas.trigger.schedule.create |
/canvas/trigger/schedule/create |
API 트리거 전달로 Canvas 전송을 예약합니다. |
canvas.trigger.schedule.update |
/canvas/trigger/schedule/update |
API 트리거 전달로 예약된 Canvas를 업데이트합니다. |
canvas.trigger.schedule.delete |
/canvas/trigger/schedule/delete |
API 트리거 전달로 예약된 Canvas를 삭제합니다. |
canvas.list |
/canvas/list |
Canvases 목록을 조회합니다. |
canvas.data_series |
/canvas/data_series |
특정 기간 동안의 Canvas 분석 데이터를 조회합니다. |
canvas.details |
/canvas/details |
특정 Canvas의 세부 정보를 조회합니다. |
canvas.data_summary |
/canvas/data_summary |
특정 기간 동안의 Canvas 분석 데이터 롤업을 조회합니다. |
canvas.url_info.details |
/canvas/url_info/details |
Canvas 단계 내 특정 메시지 변형의 URL 세부 정보를 조회합니다. 이 권한은 링크 별칭 지정이 활성화된 워크스페이스에서만 사용할 수 있습니다. 워크스페이스에서 이 권한을 사용할 수 없는 경우 Braze 계정 매니저에게 문의하세요. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
segments.list |
/segments/list |
Segments 목록을 조회합니다. |
segments.data_series |
/segments/data_series |
특정 기간 동안의 Segment 분석 데이터를 조회합니다. |
segments.details |
/segments/details |
특정 Segment의 세부 정보를 조회합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
purchases.product_list |
/purchases/product_list |
앱에서 구매된 제품 목록을 조회합니다. |
purchases.revenue_series |
/purchases/revenue_series |
특정 기간 동안 앱에서 하루당 총 지출 금액을 조회합니다. |
purchases.quantity_series |
/purchases/quantity_series |
특정 기간 동안 앱에서 하루당 총 구매 수를 조회합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
events.list |
/events/list |
커스텀 이벤트 목록을 조회합니다. |
events.data_series |
/events/data_series |
특정 기간 동안 커스텀 이벤트의 발생 횟수를 조회합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
sessions.data_series |
/sessions/data_series |
특정 기간 동안의 일별 세션 수를 조회합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
kpi.dau.data_series |
/kpi/dau/data_series |
특정 기간 동안의 일별 고유 활성 사용자 수를 조회합니다. |
kpi.mau.data_series |
/kpi/mau/data_series |
특정 기간에 걸친 30일 롤링 윈도우의 총 고유 활성 사용자 수를 조회합니다. |
kpi.new_users.data_series |
/kpi/new_users/data_series |
특정 기간 동안의 일별 신규 사용자 수를 조회합니다. |
kpi.uninstalls.data_series |
/kpi/uninstalls/data_series |
특정 기간 동안의 일별 앱 삭제 수를 조회합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
templates.email.create |
/templates/email/create |
대시보드에 새 이메일 템플릿을 만듭니다. |
templates.email.info |
/templates/email/info |
특정 템플릿의 정보를 조회합니다. |
templates.email.list |
/templates/email/list |
이메일 템플릿 목록을 조회합니다. |
templates.email.update |
/templates/email/update |
대시보드에 저장된 이메일 템플릿을 업데이트합니다. |
| 권한 | 설명 |
|---|---|
sso.saml.login |
ID 공급자가 시작하는 로그인을 설정합니다. 자세한 내용은 서비스 공급자(SP) 시작 로그인을 참조하세요. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
content_blocks.info |
/content_blocks/info |
특정 템플릿의 정보를 조회합니다. |
content_blocks.list |
/content_blocks/list |
Content Blocks 목록을 조회합니다. |
content_blocks.create |
/content_blocks/create |
대시보드에 새 콘텐츠 블록을 만듭니다. |
content_blocks.update |
/content_blocks_update |
대시보드에서 기존 콘텐츠 블록을 업데이트합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
preference_center.get |
/preference_center/v1/{preferenceCenterExternalId} |
환경설정 센터를 가져옵니다. |
preference_center.list |
/preference_center/v1/list |
환경설정 센터 목록을 가져옵니다. |
preference_center.update |
/preference_center/v1/preference_center/v1/{preferenceCenterExternalID} |
환경설정 센터를 만들거나 업데이트합니다. |
preference_center.user.get |
/preference_center/v1/{preferenceCenterExternalId}/url/{userId} |
사용자에 대한 환경설정 센터 링크를 가져옵니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
subscription.status.set |
/subscription/status/set |
구독 그룹 상태를 설정합니다. |
subscription.status.get |
/subscription/status/get |
구독 그룹 상태를 가져옵니다. |
subscription.groups.get |
/subscription/user/status |
특정 사용자가 명시적으로 구독 및 구독 취소한 구독 그룹의 상태를 가져옵니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
sms.invalid_phone_numbers |
/sms/invalid_phone_numbers |
유효하지 않은 전화번호를 조회합니다. |
sms.invalid_phone_numbers.remove |
/sms/invalid_phone_numbers/remove |
사용자에게서 유효하지 않은 전화번호 플래그를 제거합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
catalogs.add_items |
/catalogs/{catalog_name}/items |
기존 카탈로그에 여러 항목을 추가합니다. |
catalogs.update_items |
/catalogs/{catalog_name}/items |
기존 카탈로그에서 여러 항목을 업데이트합니다. |
catalogs.delete_items |
/catalogs/{catalog_name}/items |
기존 카탈로그에서 여러 항목을 삭제합니다. |
catalogs.get_item |
/catalogs/{catalog_name}/items/{item_id} |
기존 카탈로그에서 단일 항목을 가져옵니다. |
catalogs.update_item |
/catalogs/{catalog_name}/items/{item_id} |
기존 카탈로그에서 단일 항목을 업데이트합니다. |
catalogs.create_item |
/catalogs/{catalog_name}/items/{item_id} |
기존 카탈로그에서 단일 항목을 만듭니다. |
catalogs.delete_item |
/catalogs/{catalog_name}/items/{item_id} |
기존 카탈로그에서 단일 항목을 삭제합니다. |
catalogs.replace_item |
/catalogs/{catalog_name}/items/{item_id} |
기존 카탈로그에서 단일 항목을 대체합니다. |
catalogs.create |
/catalogs |
카탈로그를 만듭니다. |
catalogs.get |
/catalogs |
카탈로그 목록을 가져옵니다. |
catalogs.delete |
/catalogs/{catalog_name} |
카탈로그를 삭제합니다. |
catalogs.get_items |
/catalogs/{catalog_name}/items |
기존 카탈로그에서 항목 미리보기를 가져옵니다. |
catalogs.replace_items |
/catalogs/{catalog_name}/items |
기존 카탈로그에서 항목을 대체합니다. |
| 권한 | 엔드포인트 | 설명 |
|---|---|---|
sdk_authentication.create |
/app_group/sdk_authentication/create |
앱에 대한 새 SDK 인증 키를 만듭니다. |
sdk_authentication.primary |
/app_group/sdk_authentication/primary |
SDK 인증 키를 앱의 기본 키로 지정합니다. |
sdk_authentication.delete |
/app_group/sdk_authentication/delete |
앱에 대한 SDK 인증 키를 삭제합니다. |
sdk_authentication.keys |
/app_group/sdk_authentication/keys |
앱에 대한 모든 SDK 인증 키를 가져옵니다. |
REST API 키 관리
기존 REST API 키의 세부 정보를 보거나 삭제하려면 설정 > API 및 식별자 > API 키 탭에서 확인할 수 있습니다. REST API 키는 생성 후 편집할 수 없다는 점에 유의하세요.
API 키 탭에는 각 키에 대해 다음 정보가 포함됩니다.
| 필드 | 설명 |
|---|---|
| API 키 이름 | 키 생성 시 지정한 이름입니다. |
| 식별자 | API 키입니다. |
| 생성자 | 키를 만든 사용자의 이메일 주소입니다. 2023년 6월 이전에 만들어진 키의 경우 이 필드는 “N/A”로 표시됩니다. |
| 생성 날짜 | 이 키가 생성된 날짜입니다. |
| 마지막 확인 | 이 키가 마지막으로 사용된 날짜입니다. 한 번도 사용되지 않은 키의 경우 이 필드는 “N/A”로 표시됩니다. |
API 키의 세부 정보를 보려면 키 위에 마우스를 올리고 보기를 선택합니다. 여기에는 이 키가 가진 모든 권한, 허용된 IP 목록(있는 경우), 이 키가 Braze IP 허용 목록에 옵트인되어 있는지 여부가 포함됩니다.

사용자를 삭제해도 해당 사용자가 만든 연관된 API 키는 Braze에서 삭제되지 않는다는 점에 유의하세요. 키를 삭제하려면 키 위에 마우스를 올리고 삭제를 선택합니다.

REST API 키 보안
API 키는 API 호출을 인증하는 데 사용됩니다. 새 REST API 키를 만들 때 특정 엔드포인트에 대한 접근 권한을 부여해야 합니다. API 키에 특정 권한을 할당하여 API 키가 인증할 수 있는 호출을 정확하게 제한할 수 있습니다.
REST API 키는 잠재적으로 민감한 REST API 엔드포인트에 대한 접근을 허용하므로, 이러한 키를 안전하게 보호하고 신뢰할 수 있는 파트너에게만 공유해야 합니다. 이 키는 절대로 공개적으로 노출되어서는 안 됩니다. 예를 들어, 웹사이트에서 AJAX 호출을 하거나 다른 공개적인 방식으로 이 키를 노출하는 데 사용하지 마세요.
좋은 보안 관행은 사용자에게 업무를 수행하는 데 필요한 만큼의 접근 권한만 부여하는 것입니다. 이 원칙은 각 키에 권한을 할당하여 API 키에도 적용할 수 있습니다. 이러한 권한을 통해 계정의 다양한 영역에 대해 보다 나은 보안과 제어가 가능합니다.

REST API 키는 잠재적으로 민감한 REST API 엔드포인트에 대한 접근을 허용하므로, 안전하게 저장하고 사용해야 합니다. 예를 들어, 웹사이트에서 AJAX 호출을 하거나 다른 공개적인 방식으로 이 키를 노출하는 데 사용하지 마세요.
실수로 키가 노출된 경우 개발자 콘솔에서 삭제할 수 있습니다. 이 프로세스에 대한 도움이 필요하면 지원 티켓을 여세요.
REST API 키와 SDK API 키의 보안
REST API 키와 SDK API 키는 서로 다른 보안 프로필을 가지고 있습니다.
| 속성 | REST API 키 | SDK API 키 |
|---|---|---|
| 목적 | REST API에 대한 서버 측 인증(메시지 전송, 데이터 내보내기, 사용자 관리) | Braze SDK에 대한 클라이언트 측 식별(데이터 수집, 인앱 메시지, Content Cards) |
| 가시성 | 반드시 비공개로 유지해야 합니다. 클라이언트 측 코드, 공개 리포지토리 또는 사용자 애플리케이션에 절대 노출하지 마세요. | 공개되도록 설계되었습니다. 앱 바이너리에 번들되거나 웹 브라우저 JavaScript에서 볼 수 있으며, Google Analytics 추적 ID와 유사합니다. |
| 노출 시 조치 | 즉시 키를 취소하고 설정 > API 및 식별자 > API 키에서 대체 키를 만드세요. 노출된 REST API 키는 메시지를 전송하거나, 사용자 데이터를 내보내거나, 계정 설정을 수정하는 데 사용될 수 있습니다. | 별도의 조치가 필요하지 않습니다. SDK API 키는 데이터를 수집하고 클라이언트 측 메시징(인앱 메시지 및 Content Cards 등)을 검색하는 데만 사용할 수 있습니다. 사용자 데이터를 내보내거나, 대신 메시지를 전송하거나, Campaign을 수정할 수 없습니다. |
API IP 허용 목록
추가 보안을 위해 특정 REST API 키에 대해 REST API 요청을 보낼 수 있는 IP 주소 및 서브넷 목록을 지정할 수 있습니다. 이를 허용 목록(또는 화이트리스트)이라고 합니다. 특정 IP 주소 또는 서브넷을 허용하려면 새 REST API 키를 만들 때 IP 허용 목록 섹션에 추가합니다.

아무것도 지정하지 않으면 모든 IP 주소에서 요청을 보낼 수 있습니다.

API 인증 및 보안
Bearer 토큰 인증
Braze는 Authorization 요청 헤더에 Bearer 토큰으로 전달되는 REST API 키를 사용하여 REST API 요청을 인증합니다. 요청을 보낼 때 다음 형식으로 API 키를 포함하세요.
Authorization: Bearer YOUR_REST_API_KEY
각 요청마다 Braze는 다음과 같은 서버 측 유효성 검사를 수행합니다.
- 토큰 유효성: REST API 키가 Braze에 존재하며 활성 상태인지(예: 해지되거나 비활성화되지 않았는지) 확인합니다.
- 토큰 권한: API 키가 요청한 엔드포인트에 대한 필수 권한을 보유하고 있는지 확인합니다.
인증에 실패하면 API는 HTTP 상태 코드와 함께 오류 응답을 반환합니다. 예를 들어 401 Unauthorized는 유효하지 않거나 누락된 키를 나타내고, 403 Forbidden은 해당 키가 요청한 엔드포인트에 대한 권한이 없음을 나타냅니다. 자세한 내용은 API 오류를 참조하세요.
요청 헤더 대소문자
HTTP 헤더 이름은 대소문자를 구분하지 않으므로 Authorization과 authorization은 동일합니다. Content-Type과 같은 다른 표준 요청 헤더에도 동일하게 적용됩니다. HTTP 클라이언트가 생성하는 대소문자 형식을 그대로 전송하면 됩니다.
Braze는 Bearer 스킴의 모든 대소문자 형식(Bearer, bearer, 또는 BEARER)을 허용합니다. REST API 키 자체는 발급된 그대로 정확히 전송하세요.
네트워크 수준 보안
Braze로의 REST API 요청은 전체 요청 경로에 걸쳐 TLS(전송 계층 보안) 암호화로 보호됩니다. 다음 표는 서버에서 Braze로의 API 요청에 대한 네트워크 흐름을 설명합니다.
| 단계 | 구성 요소 | 설명 |
|---|---|---|
| 1 | 사용자의 서버 | TLS 암호화를 사용하여 HTTPS 요청을 시작합니다. |
| 2 | Cloudflare | 클라이언트 TLS 연결을 종료하고 네트워크 수준 보호를 적용합니다. |
| 3 | 네트워크 로드 밸런서(NLB) | 애플리케이션 인프라로 패킷을 전달합니다. NLB는 레이어 4에서 작동하므로 레이어 7 프록시가 없습니다. 패킷은 HTTP 수준의 검사나 수정 없이 전달됩니다. |
| 4 | NGINX 인그레스 | 내부 TLS 연결을 종료하고 요청을 라우팅합니다. |
| 5 | Unicorn(애플리케이션 서버) | 인증된 요청을 처리합니다. |
TLS 암호화는 체인의 모든 구간을 커버합니다. 사용자의 서버는 TLS를 통해 Cloudflare에 연결되고, Cloudflare는 NLB를 통해 NGINX 인그레스까지 별도의 TLS 연결을 수립하므로, API 키와 요청 데이터는 전송 중에 암호화된 상태를 유지합니다.
추가 리소스
Ruby 클라이언트 라이브러리
Ruby를 사용하여 Braze를 구현하는 경우, Ruby 클라이언트 라이브러리를 사용하여 데이터 가져오기 시간을 줄일 수 있습니다. 클라이언트 라이브러리는 특정 프로그래밍 언어(이 경우 Ruby)에 특화된 코드 모음으로, API를 더 쉽게 사용할 수 있도록 도와줍니다.
Ruby 클라이언트 라이브러리는 사용자 엔드포인트를 지원합니다.
