App Notice
This guide explains how to use the app notice inquiry API.
Prerequisites¶
Before calling the app notice inquiry API, you must register the notices to be displayed in the app from the Hive Console.
How it works¶
The app notice inquiry API is called directly from the app via server-to-server communication and supports the following two interfaces depending on the query method.
- Get all notices: Retrieves all notices for a specific app (
game_index) at once. - Get paginated notices: Retrieves notices for a specific app (
game_index) in pages (pagination).
Note
The app notice inquiry API uses JWT authentication.
When calling the API, the X-Access-Token request header must include an authentication token (JWT Access Token; see OAuth Token issuance). The response includes basic notice information, language-specific details, app server ID list, and country code list.
Notices can be retrieved only when the following conditions are met.
status = 1: active statestart_time <= current time: The current time is after the display start time.end_time >= current time: The current time is before the display end time.
Note
All times are based on KST (UTC+9).
Common response specification¶
Provides examples of success and failure response data returned when calling the app notice inquiry API, along with status codes.
Success response example¶
{
"result_code": 0,
"result_msg": "Success",
"token_validation": {
"result_code": 0,
"result_msg": "Success"
},
"data": { ... }
}
Error response example¶
JWT validation failure example¶
{
"result_code": 1203,
"result_msg": "Unauthorized",
"token_validation": {
"result_code": 2408,
"result_msg": "JWT token expired"
}
}
Status codes¶
| HTTP status code | Code | Message | Description |
|---|---|---|---|
| 200 | 0 | Success | Processed successfully |
| 500 | 1100 | Unknown error | Unknown error |
| 500 | 1101 | Internal server error | Internal server error |
| 400 | 1201 | Detail message (e.g., Missing required parameter: game_index) | Request format error |
| 400 | 1202 | Detail message (e.g., `game_index` must be a positive integer) | Parameter value error |
| 401 | 1203 | Unauthorized | JWT validation failed (see token_validation for details) |
| 405 | 1204 | Method not allowed | HTTP request method error |
Note
If JWT validation fails, you can check detailed error information in the token_validation field. For more information, see JWT validation error codes.
Get all notices¶
Returns the complete list of notices for a specific app (game_index).
Request information¶
| Item | Details |
|---|---|
| Production URL | https://social-api.qpyou.cn/v2/games/{game_index}/notices |
| Sandbox URL | https://sandbox-social-api.qpyou.cn/v2/games/{game_index}/notices |
| HTTP Method | GET |
| Response Format | JSON |
Request data¶
Describes the data sent when calling 'Get all notices'.
Request headers¶
| Field | Type | Required | Description | Notes |
|---|---|---|---|---|
| X-Access-Token | string | Y | JWT Access Token | See OAuth Token issuance for issuance instructions |
Request header example¶
Path parameters¶
| Field | Type | Required | Description |
|---|---|---|---|
| game_index | int | Y | Game index (positive integer) |
Request body¶
None (GET request)
Request example¶
The following is an example of calling 'Get all notices'.
curl -X GET "https://sandbox-social-api.qpyou.cn/v2/games/539/notices" \
-H "X-Access-Token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InByb2plY3RfYWJjMTIzIn0..."
Response data¶
Describes the data received when calling 'Get all notices'.
Response body¶
| Field | Type | Description |
|---|---|---|
| result_code | int | Response result code |
| result_msg | string | Result message |
| token_validation | object | JWT validation result |
| ㄴ result_code | int | JWT validation result code (0 = success, see JWT validation error codes for details) |
| ㄴ result_msg | string | JWT validation result message |
| data | object | Response data (not included when JWT validation fails) |
| ㄴ list | array | Notice list (array of basic notice information objects; returns [] if no results) |
Response example¶
The following is an example response for calling 'Get all notices'.
{
"result_code": 0,
"result_msg": "Success",
"token_validation": {
"result_code": 0,
"result_msg": "Success"
},
"data": {
"list": [
{
"notice_id": 123,
"status": 1,
"type": "N",
"view_count": 500,
"registrant": "admin",
"top_placed": 1,
"start_time": "2026-03-01 00:00:00",
"end_time": "2026-03-31 23:59:59",
"company_index": 4,
"game_index": 539,
"country_expose_type": "W",
"details": {
"ko": {
"game_name": "테스트 게임",
"title": "공지사항 제목",
"content": "공지사항 내용",
"crop_image": "https://example.com/img/123_kor.png"
},
"en": {
"game_name": "TestGame",
"title": "Notice Title",
"content": "Notice Content",
"crop_image": "https://example.com/img/123_eng.png"
}
},
"game_servers": ["server1", "server2"],
"country_codes": ["KR", "US"]
}
]
}
}
Get paginated notices¶
Returns the notice list for a specific app (game_index) in pages.
The Get all notices endpoint switches to paginated mode when either page or per_page is included as a query parameter.
Request information¶
| Item | Details |
|---|---|
| Production URL | https://social-api.qpyou.cn/v2/games/{game_index}/notices?page={page}&per_page={per_page} |
| Sandbox URL | https://sandbox-social-api.qpyou.cn/v2/games/{game_index}/notices?page={page}&per_page={per_page} |
| HTTP Method | GET |
| Response Format | JSON |
Request data¶
Describes the data sent when calling 'Get paginated notices'.
Request headers¶
| Field | Type | Required | Description | Notes |
|---|---|---|---|---|
| X-Access-Token | string | Y | JWT Access Token | See OAuth Token issuance for issuance instructions |
Request header example¶
Path parameters¶
| Field | Type | Required | Description |
|---|---|---|---|
| game_index | int | Y | Game index (positive integer) |
Query parameters¶
Note
If the page or per_page value is not a positive integer, it is replaced by the default value.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| page | int | N | 1 | Page number (starting from 1) |
| per_page | int | N | 20 | Number of items per page |
Request body¶
None (GET request)
Request example¶
The following is an example of calling 'Get paginated notices'.
curl -X GET "https://sandbox-social-api.qpyou.cn/v2/games/539/notices?page=1&per_page=20" \
-H "X-Access-Token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InByb2plY3RfYWJjMTIzIn0..."
Response data¶
Describes the data received when calling 'Get paginated notices'.
Response body¶
| Field | Type | Description |
|---|---|---|
| result_code | int | Response result code |
| result_msg | string | Result message |
| token_validation | object | JWT validation result |
| ㄴ result_code | int | JWT validation result code (0 = success, see JWT validation error codes for details) |
| ㄴ result_msg | string | JWT validation result message |
| data | object | Response data (not included when JWT validation fails) |
| ㄴ pagination | object | Pagination metadata |
| ㄴ page | int | Current page number |
| ㄴ per_page | int | Number of items per page |
| ㄴ total_count | int | Total number of records |
| ㄴ total_pages | int | Total number of pages (ceil(total_count / per_page); 0 if total_count = 0) |
| ㄴ list | array | Notice list (array of basic notice information objects; returns [] if no results) |
Response example¶
The following is an example response for calling 'Get paginated notices'.
{
"result_code": 0,
"result_msg": "Success",
"token_validation": {
"result_code": 0,
"result_msg": "Success"
},
"data": {
"pagination": {
"page": 1,
"per_page": 20,
"total_count": 50,
"total_pages": 3
},
"list": [
{
"notice_id": 123,
"status": 1,
"type": "N",
"view_count": 500,
"registrant": "admin",
"top_placed": 1,
"start_time": "2026-03-01 00:00:00",
"end_time": "2026-03-31 23:59:59",
"company_index": 4,
"game_index": 539,
"country_expose_type": "W",
"details": {
"ko": {
"game_name": "테스트 게임",
"title": "공지사항 제목",
"content": "공지사항 내용",
"crop_image": "https://example.com/img/123_kor.png"
},
"en": {
"game_name": "TestGame",
"title": "Notice Title",
"content": "Notice Content",
"crop_image": "https://example.com/img/123_eng.png"
}
},
"game_servers": ["server1", "server2"],
"country_codes": ["KR", "US"]
}
]
}
}
Response data details¶
Describes the details of all response data supported by the app notice inquiry API.
Basic notice information¶
| Field | Type | Description |
|---|---|---|
| notice_id | int | Unique notice ID |
| status | int | Status (1: active; only active notices are returned) |
| type | string | Notice type (see type codes) |
| view_count | int | View count |
| registrant | string | Registrant |
| top_placed | int|null | Pinned to top (1 or higher: pinned, null: not pinned) |
| start_time | string | Display start time (yyyy-MM-dd HH:mm:ss, KST) |
| end_time | string | Display end time (yyyy-MM-dd HH:mm:ss, KST) |
| company_index | int | Company index |
| game_index | int | Game index |
| country_expose_type | string|null | Country exposure type (see country_expose_type codes; default: null) |
| details | object | Language-specific details (see details) |
| game_servers | array | App server ID list (see game_servers) |
| country_codes | array | Country code list (see country_codes) |
type codes¶
| Code | Description |
|---|---|
I | Info |
C | Maintenance |
U | Update |
N | Notices |
A | Announcement |
E | Event |
D | Error |
country_expose_type codes¶
| Code | Description |
|---|---|
null | No restriction (displayed in all countries) |
W | Whitelist (displayed only in countries included in country_codes) |
B | Blacklist (blocked for countries included in country_codes) |
details¶
details is an object keyed by language code. Only languages registered for the notice are included; returns an empty object ({}) if no details exist.
| Field | Type | Description |
|---|---|---|
| game_name | string | Game name |
| title | string | Notice title |
| content | string | Notice content |
| crop_image | string | Cropped image URL |
Supported language codes¶
| Code | Language |
|---|---|
ko | Korean |
en | English |
ja | Japanese |
zh-hans | Chinese (Simplified) |
zh-hant | Chinese (Traditional) |
de | German |
fr | French |
ru | Russian |
es | Spanish |
pt | Portuguese |
id | Indonesian |
th | Thai |
vi | Vietnamese |
it | Italian |
tr | Turkish |
ar | Arabic |
game_servers¶
- List of app server IDs. Returns an empty array (
[]) if no data is available. - Example:
["server1", "server2", "server3"]
country_codes¶
- List of country codes. Returns an empty array (
[]) if no data is available. - Example:
["KR", "US", "JP"] - Reference: ISO 3166 standard