> ## Documentation Index
> Fetch the complete documentation index at: https://help.airbridge.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 리포트 가져오기

###### 비동기 요청 상태

비동기 요청 상태는 API 요청 결과의 `task.status`로 확인할 수 있습니다.

<div style={{ overflowX: 'auto' }}>
  <table style={{ display: 'table' }}>
    <tbody>
      <tr>
        <td style={{"minWidth":"130px"}}>
          `PENDING`
        </td>

        <td>
          데이터 집계를 위한 준비를 하고 있습니다
        </td>
      </tr>

      <tr>
        <td>
          `RUNNING`
        </td>

        <td>
          데이터를 집계중입니다
        </td>
      </tr>

      <tr>
        <td>
          `SUCCESS`
        </td>

        <td>
          집계가 완료되어 결과값을 반환합니다
        </td>
      </tr>

      <tr>
        <td>
          `FAILURE`
        </td>

        <td>
          알 수 없는 이유로 요청이 실패하였습니다
        </td>
      </tr>

      <tr>
        <td>
          `CANCELED`
        </td>

        <td>
          요청이 취소되었습니다
        </td>
      </tr>
    </tbody>
  </table>
</div>

###### 안내 메세지(Notification)

집계 과정에서 일부 데이터를 제거한 경우, 결과 반환 시 `notification[0].code`에 해당 사유를 담아 반환합니다.

| `SAN_PERIOD_LIMIT` | 페이스북 등 Self-Attributed Network에 기여된 데이터 중 175일 이전의 데이터를 제거하였습니다. |
| ------------------ | ---------------------------------------------------------------- |

<Card title="Try API Request" icon="rectangle-api" horizontal href="https://www.postman.com/airbridge-engineering/workspace/airbridge-api/request/22395869-c3ef286a-9a5a-4b1b-941e-e42722fd3d3b" />

```text GET theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
https://api.airbridge.io/reports/api/v3/apps/{app_name}/revenue/query/{task_id}
```

<h2 id="리포트-가져오기-request">
  Request
</h2>

***

<h3 id="리포트-가져오기-headers">
  Headers
</h3>

<ParamField header="Accept-Language" type="string">
  API 요청 및 결과 반환에 사용할 언어를 지정할 수 있습니다. ISO-639-1 포맷을 따릅니다.
</ParamField>

<ParamField header="Content-Type" type="string">
  리소스의 미디어 타입을 나타냅니다. 기본값으로 `application/json`을 사용합니다.
</ParamField>

<ParamField header="Authorization" type="string">
  API 요청에 사용하는 키값입니다. [키값 생성 및 조회 방법](/ko/references/introduction)을 확인하여 획득할 수 있습니다.
</ParamField>

<h3 id="리포트-가져오기-path-params">
  Path Params
</h3>

<ParamField path="app_name" type="string" required>
  에어브릿지 앱 이름(App Name)
</ParamField>

<ParamField path="task_id" type="string" required>
  '리포트 생성하기' API의 결과값에서 반환한 `task_id`입니다.
</ParamField>

<h3 id="리포트-가져오기-query-params">
  Query Params
</h3>

<ParamField query="skip" type="number">
  결과값에서 건너뛸 Row의 수.

  결과값에서 처음 N개의 Row를 제외하고 가져옵니다.

  기본값은 0 입니다.
</ParamField>

<ParamField query="size" type="number">
  반환할 Row 수.

  skip으로 건너뛴 결과의 다음부터 N개의 Row를 가져옵니다.

  기본값은 50입니다.

  예시) `?skip=200&size=100`

  이면 처음 200개를 건너뛰고 201번쨰부터 300번째 까지의 Row를 가져옵니다.
</ParamField>

<RequestExample>
  ```shellscript Request theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
  curl -X GET 'https://api.airbridge.io/reports/api/v3/apps/{app_name}/revenue/query/{task_id}?skip=0&size=50' \
    -H 'Accept-Language: ko' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'
  ```
</RequestExample>

<h2 id="리포트-가져오기-response">
  Response
</h2>

***

### 200

### 404

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-dark-dimmed","dark":"github-dark-dimmed"}}
  {
    "data": {
      "stats": {
        "rows": [
          {
            "rows": [
              {
                "date": "2021-11-01",
                "total": {
                  "totalCost": {
                    "value": 0
                  },
                  "totalRevenue": {
                    "value": 10
                  },
                  "totalUniqueUsers": {
                    "value": 1,
                    "isMasked": true
                  }
                },
                "values": [
                  {
                    "value": 1,
                    "isMasked": false
                  },
                  {
                    "value": 2,
                    "isMasked": false
                  },
                  {
                    "value": 3,
                    "isMasked": false
                  },
                  {
                    "value": 4,
                    "isMasked": false
                  }
                ]
              }
            ],
            "total": {
              "rows": [
                {
                  "value": 1,
                  "isMasked": false
                },
                {
                  "value": 2,
                  "isMasked": false
                },
                {
                  "value": 3,
                  "isMasked": false
                },
                {
                  "value": 4,
                  "isMasked": false
                }
              ],
              "totalCost": {
                "value": 0
              },
              "totalRevenue": {
                "value": 10.45
              },
              "totalUniqueUsers": {
                "value": 1,
                "isMasked": false
              }
            },
            "metadata": [
              "<groupBy>"
            ]
          }
        ]
      },
      "status": "SUCCESS",
      "taskId": "5e286bd4-b4b1-4c04-8f6a-670dc7ce637d",
      "endedAt": "2022-01-17T19:10:00.286939+09:00",
      "hasNext": false,
      "metadata": {
        "totalCount": 48
      }
    },
    "notification": [
      {
        "code": "AGG_DATA_MASKING_BY_FACEBOOK",
        "type": "info",
        "message": "some data is masked by facebook privacy policy."
      }
    ]
  }
  ```
</ResponseExample>
