# Content Analysis – 평점 분포 API

**API:** Data API

**Endpoint:** `POST /v1/beta/dataforseo/content_analysis/rating_distribution/live`

**Tags:** DataForSEO

키워드의 인용을 평점 구간으로 나누고 각 구간의 전체 지표를 보고합니다. 구간마다 `min`, `max`와 `total_count`, `rank`, `top_domains`(`domain`, `count` 각각), `sentiment_connotations`(anger, happiness, love, sadness, share, fun), `connotation_types`(positive, negative, neutral), `text_categories`, `page_categories`, `page_types`, `countries`, `languages`를 담은 `metrics` 객체가 있는 항목을 하나씩 반환합니다. `rank_scale`이 구간화 방식을 선택합니다. 구간화하지 않은 같은 지표는 `post_dataforseo_content_summary_live`, 감정만 필요하면 `post_dataforseo_content_sentiment_analysis_live`를 사용하세요.

### 가격 참고

- 과금 기준: 응답에 보고된 비용.
- 참고 요청 추정치: USD 0.0276.
- 참고 고객 배수: 1.0. 이미 정산된 고객 금액에는 다시 적용하지 마세요.

참고용 메타데이터일 뿐이며, 계정 견적이나 보장된 가격, 지출 한도가 아닙니다. 리소스 크레딧은 Felo 크레딧이 아닙니다. 최종 청구는 Felo 청구 기록을 따릅니다.

## Base URL

- `https://openapi.felo.ai`

## Authentication

- `FeloBearerAuth` (http bearer, bearer format Felo API Key)
- `FeloApiKey` (apiKey in header `X-API-Key`)

## Request body

Required: **no**

### application/json

Schema:

```json
{
  "type": "array",
  "items": {
    "type": [
      "object",
      "null"
    ],
    "oneOf": [
      {
        "type": "object",
        "properties": {
          "keyword": {
            "type": "string",
            "description": "<em>대상 키워드</em><br><strong>필수 필드</strong><br>UTF-8 인코딩<br>키워드는 소문자로 변환됩니다.<br><strong>참고</strong>: 단일 키워드 대신 정확한 구문을 일치시키려면 큰따옴표와 백슬래시를 사용하세요. <br>예시: <br><code>\"keyword\": \"\\\"tesla palo alto\\\"\"</code><p>DataForSEO API의 <code>keyword</code> 및 <code>keywords</code> 필드 규칙과 제한은 이 <a href=\"https://dataforseo.com/help-center/rules-and-limitations-of-keyword-and-keywords-fields-in-dataforseo-apis\" rel=\"noopener noreferrer\" target=\"_blank\">도움말 센터 문서</a>에서 자세히 알아보세요."
          },
          "keyword_fields": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": [
                "string",
                "null"
              ]
            },
            "description": "<em>대상 키워드 필드 및 대상 키워드</em><br>선택 필드<br>이 매개변수로 특정 필드에 포함되어야 하는 키워드를 기준으로 데이터세트를 필터링합니다.<br>지정할 수 있는 필드: <code>title</code>, <code>main_title</code>, <code>previous_title</code>, <code>snippet</code><br>여러 필드를 지정할 수 있습니다.<br><strong>참고</strong>: 단일 키워드 대신 정확한 구문을 일치시키려면 큰따옴표와 백슬래시를 사용하세요. <br>예시:<br>`\"keyword_fields\": {<br>\"snippet\": \"\\\"logitech mouse\\\"\",<br>\"main_title\": \"sale\"<br>}`"
          },
          "page_type": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "description": "<em>대상 페이지 유형</em><br>선택 필드<br>이 매개변수로 페이지 유형별로 데이터세트를 필터링합니다<br>가능한 값: <br><code>\"ecommerce\"</code>, <code>\"news\"</code>, <code>\"blogs\"</code>, <code>\"message-boards\"</code>, <code>\"organization\"</code>"
          },
          "internal_list_limit": {
            "type": [
              "integer",
              "null"
            ],
            "description": "<em>내부 배열의 최대 요소 수</em><br>선택 필드<br>이 필드로 다음 배열의 요소 수를 제한할 수 있습니다:<br><code>top_domains</code><br><code>text_categories</code><br><code>page_categories</code><br><code>countries</code><br><code>languages</code><br>기본값: <code>1</code><br>최댓값: <code>20</code>"
          },
          "search_mode": {
            "type": [
              "string",
              "null"
            ],
            "description": "<em>결과 그룹화 유형</em><br>선택 필드<br>가능한 그룹화 유형:<br><code>as_is</code> - 대상 <code>keyword</code>의 모든 인용을 반환합니다<br><code>one_per_domain</code> - 도메인당 <code>keyword</code> 인용 하나를 반환합니다<br>기본값: <code>as_is</code>"
          },
          "positive_connotation_threshold": {
            "type": [
              "number",
              "null"
            ],
            "description": "<em>긍정적 함의 임계값</em><br>선택 필드<br>인용 내용과 관련된 긍정적 감정의 확률 지수 임계값으로 지정됩니다<br>이 필드를 지정하면 응답의 <code>connotation_types</code> 객체에는 <code>positive</code> 감정 확률이 지정된 값 이상인 인용 데이터만 포함됩니다<br>가능한 값: <code>0</code> ~ <code>1</code><br>기본값: <code>0.4</code>"
          },
          "sentiments_connotation_threshold": {
            "type": [
              "number",
              "null"
            ],
            "description": "<em>감정 함의 임계값</em><br>선택 필드<br>인용 내용과 관련된 감정 함의의 확률 지수 임계값으로 지정됩니다<br>이 필드를 지정하면 응답의 <code>sentiment_connotations</code> 객체에는 각 감정별 확률이 지정된 값 이상인 인용 데이터만 포함됩니다<br>가능한 값: <code>0</code> ~ <code>1</code><br>기본값: <code>0.4</code>"
          },
          "initial_dataset_filters": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": [
                "object",
                "null"
              ]
            },
            "description": "<em>초기 데이터세트 필터링 매개변수</em><br>선택 필드<br><a href=\"/v3/content_analysis/search/live/?bash\" target=\"_blank\">Search 엔드포인트</a>의 필드에 적용되는 초기 필터링 매개변수입니다<br><strong>필터를 한 번에 여러 개 추가할 수 있습니다(최대 8개)</strong><br>조건 사이에 논리 연산자 <code>and</code>, <code>or</code>를 설정해야 합니다<br>지원되는 연산자는 다음과 같습니다:<br><code>regex</code>, <code>not_regex</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>, <code>&gt;=</code>, <code>=</code>, <code>&lt;&gt;</code>, <code>in</code>, <code>not_in</code>, <code>like</code>,<code>not_like</code>, <code>has</code>, <code>has_not</code>, <code>match</code>, <code>not_match</code><br><code>like</code> 및 <code>not_like</code>와 함께 <code>%</code> 연산자를 사용하여 0개 이상의 문자로 된 문자열을 일치시킬 수 있습니다<br>예시:<br><code>[\"domain\",\"&lt;&gt;\", \"logitech.com\"]</code><p><code>[[\"domain\",\"&lt;&gt;\",\"logitech.com\"],\"and\",[\"content_info.connotation_types.negative\",\"&gt;\",1000]]</code><p><code>[[\"domain\",\"&lt;&gt\",\"logitech.com\"]],<br>\"and\",<br>[[\"content_info.connotation_types.negative\",\"&gt;\",1000],<br>\"or\",<p>[\"content_info.text_category\",\"has\",10994]]]</code><br>필터에 대한 자세한 내용은 <a href=\"/v3/content_analysis/filters\" target=\"_blank\" rel=\"noopener noreferrer\">Content Analysis API - Filters</a>를 참조하세요<br>초기 데이터세트 필터에 대한 자세한 내용은 <a href=\"https://dataforseo.com/help-center/what-are-the-initial-dataset-filters-and-how-do-they-work\" rel=\"noopener noreferrer\" target=\"_blank\">이 도움말 센터 문서</a>에서 확인하세요."
          },
          "rank_scale": {
            "type": [
              "string",
              "null"
            ],
            "description": "<em><code>rank</code> 값을 계산하고 표시하는 데 사용되는 척도를 정의합니다</em><br>선택 필드<p>이 매개변수로 순위 값을 0–100 또는 0–1000 척도로 표시할지 선택할 수 있습니다<p>가능한 값:<br><code>one_hundred</code> — 순위 값이 0–100 척도로 표시됩니다<br><code>one_thousand</code> — 순위 값이 0–1000 척도로 표시됩니다<p>기본값: <code>one_thousand</code><p>이 매개변수의 작동 방식은 <a href=\"https://dataforseo.com/help-center/using-the-rank_scale-parameter-in-content-analysis-api\">이 도움말 센터 문서</a>에서 자세히 알아보세요"
          },
          "tag": {
            "type": [
              "string",
              "null"
            ],
            "description": "<em>사용자 정의 작업 식별자</em><br>선택 필드<br><em>최대 255자</em><br>이 매개변수를 사용해 작업을 식별하고 결과와 매칭할 수 있습니다<br><code>tag</code>에 지정한 값은 응답의 <code>data</code> 객체에서 확인할 수 있습니다"
          }
        },
        "example": [
          {
            "keyword": "logitech",
            "search_mode": "as_is",
            "internal_list_limit": 10
          }
        ]
      }
    ]
  },
  "example": [
    {
      "keyword": "logitech",
      "search_mode": "as_is",
      "internal_list_limit": 10
    }
  ]
}
```

## Responses

### 200 — 작업 성공

Headers:
- `X-Request-Id` (string) — Felo 지원팀에 문의할 때 포함할 요청 식별자입니다.

**application/json**

Schema: object | null

```json
{
  "type": [
    "object",
    "null"
  ],
  "oneOf": [
    {
      "$ref": "#/components/schemas/Response36Afe1097B20_ContentAnalysisRatingDistributionLiveResponseInfo"
    }
  ]
}
```

### 400 — 요청을 처리할 수 없습니다. 요청 매개변수를 확인하세요.

### 401 — 유효한 Felo API 키가 필요합니다.

### 402 — 청구 요건이 충족되지 않아 요청을 진행할 수 없습니다.

### 403 — 이 계정에는 이 작업을 수행할 권한이 없습니다.

### 429 — 요청 또는 지출 한도에 도달했습니다.

### 502 — 서비스가 요청을 완료할 수 없습니다.

### 503 — API 또는 청구 서비스를 일시적으로 사용할 수 없습니다.

### 504 — 요청을 처리하는 동안 서비스 시간이 초과되었습니다.

### default — 오류 응답. 업스트림 패스스루 응답은 공급자 형식을 사용할 수 있습니다.

**application/json**

Schema:

```json
{}
```

## Schema definitions

### Response36Afe1097B20_BaseResponseInfo

`#/components/schemas/Response36Afe1097B20_BaseResponseInfo`

```json
{
  "properties": {
    "version": {
      "type": [
        "string",
        "null"
      ],
      "description": "API의 현재 버전"
    },
    "status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "일반 상태 코드입니다.\n응답 코드 전체 목록은 여기에서 확인할 수 있습니다."
    },
    "status_message": {
      "type": [
        "string",
        "null"
      ],
      "description": "일반 정보 메시지입니다.\n일반 정보 메시지 전체 목록은 여기에서 확인할 수 있습니다."
    },
    "time": {
      "type": [
        "string",
        "null"
      ],
      "description": "총 실행 시간(초)"
    },
    "cost": {
      "type": [
        "number",
        "null"
      ],
      "description": "전체 작업 비용, USD",
      "format": "double"
    },
    "tasks_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "tasks 배열의 작업 수",
      "format": "int64"
    },
    "tasks_error": {
      "type": [
        "integer",
        "null"
      ],
      "description": "오류와 함께 반환된 tasks 배열의 작업 수",
      "format": "int64"
    }
  }
}
```

### Response36Afe1097B20_BaseResponseTaskInfo

`#/components/schemas/Response36Afe1097B20_BaseResponseTaskInfo`

```json
{
  "properties": {
    "id": {
      "type": [
        "string",
        "null"
      ],
      "description": "작업 식별자\n시스템 내 고유 작업 식별자(UUID 형식)"
    },
    "status_code": {
      "type": [
        "integer",
        "null"
      ],
      "description": "작업의 상태 코드\nDataForSEO가 생성하며 10000-60000 범위일 수 있습니다.\n응답 코드 전체 목록은 여기에서 확인할 수 있습니다."
    },
    "status_message": {
      "type": [
        "string",
        "null"
      ],
      "description": "작업의 정보 메시지\n일반 정보 메시지 전체 목록은 여기에서 확인할 수 있습니다."
    },
    "time": {
      "type": [
        "string",
        "null"
      ],
      "description": "실행 시간, 초"
    },
    "cost": {
      "type": [
        "number",
        "null"
      ],
      "description": "전체 작업 비용, USD",
      "format": "double"
    },
    "result_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "result 배열의 요소 수",
      "format": "int64"
    },
    "path": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "string",
          "null"
        ]
      },
      "description": "URL 경로"
    },
    "data": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "object",
          "null"
        ]
      },
      "description": "POST 요청에 지정한 것과 동일한 매개변수를 포함합니다"
    }
  }
}
```

### Response36Afe1097B20_ContentAnalysisCategoriesInfo

`#/components/schemas/Response36Afe1097B20_ContentAnalysisCategoriesInfo`

```json
{
  "properties": {
    "category": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "integer",
          "null"
        ]
      }
    },
    "count": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64"
    }
  }
}
```

### Response36Afe1097B20_ContentAnalysisRatingDistributionLiveResponseInfo

`#/components/schemas/Response36Afe1097B20_ContentAnalysisRatingDistributionLiveResponseInfo`

```json
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response36Afe1097B20_BaseResponseInfo"
    },
    {
      "type": "object",
      "properties": {
        "tasks": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": [
              "object",
              "null"
            ],
            "oneOf": [
              {
                "$ref": "#/components/schemas/Response36Afe1097B20_ContentAnalysisRatingDistributionLiveTaskInfo"
              }
            ]
          },
          "description": "<em>작업 배열</em>"
        }
      }
    }
  ]
}
```

### Response36Afe1097B20_ContentAnalysisRatingDistributionLiveResultInfo

`#/components/schemas/Response36Afe1097B20_ContentAnalysisRatingDistributionLiveResultInfo`

```json
{
  "type": "object",
  "properties": {
    "type": {
      "type": [
        "string",
        "null"
      ],
      "description": "요소 유형"
    },
    "min": {
      "type": [
        "number",
        "null"
      ],
      "description": "<em>분포 척도의 최소 평점</strong></em>"
    },
    "max": {
      "type": [
        "number",
        "null"
      ],
      "description": "<em>분포 척도의 최대 평점</strong></em>"
    },
    "metrics": {
      "type": [
        "object",
        "null"
      ],
      "oneOf": [
        {
          "$ref": "#/components/schemas/Response36Afe1097B20_ContentAnalysisSummaryInfo"
        }
      ],
      "description": "<em>평점 분포 지표를 포함합니다</strong></em>"
    }
  }
}
```

### Response36Afe1097B20_ContentAnalysisRatingDistributionLiveTaskInfo

`#/components/schemas/Response36Afe1097B20_ContentAnalysisRatingDistributionLiveTaskInfo`

```json
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/Response36Afe1097B20_BaseResponseTaskInfo"
    },
    {
      "type": "object",
      "properties": {
        "result": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": [
              "object",
              "null"
            ],
            "oneOf": [
              {
                "$ref": "#/components/schemas/Response36Afe1097B20_ContentAnalysisRatingDistributionLiveResultInfo"
              }
            ]
          },
          "description": "<em>결과 배열</em>"
        }
      }
    }
  ]
}
```

### Response36Afe1097B20_ContentAnalysisSummaryInfo

`#/components/schemas/Response36Afe1097B20_ContentAnalysisSummaryInfo`

```json
{
  "type": "object",
  "properties": {
    "type": {
      "type": [
        "string",
        "null"
      ],
      "description": "요소 유형"
    },
    "total_count": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em>요청과 관련해 데이터베이스에 있는 총 결과량</em>",
      "format": "int64"
    },
    "rank": {
      "type": [
        "integer",
        "null"
      ],
      "description": "<em><code>keyword</code>를 인용하는 모든 URL의 순위</em><br>대상 <code>keyword</code>를 인용하는 모든 URL 순위의 정규화된 합계입니다"
    },
    "top_domains": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "object",
          "null"
        ],
        "oneOf": [
          {
            "$ref": "#/components/schemas/Response36Afe1097B20_TopDomainInfo"
          }
        ]
      },
      "description": "<em>대상 키워드를 인용하는 상위 도메인</em><br>대상 키워드를 인용하는 상위 도메인과 각 도메인별 인용 수를 담은 객체를 포함합니다"
    },
    "sentiment_connotations": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "integer",
          "null"
        ],
        "format": "int64"
      },
      "description": "<em>감정 함의</em><br>대상 키워드 인용과 관련된 감정(정서적 반응) 및 각 감정별 인용 수를 포함합니다<br>가능한 감정 함의: <code>anger</code>, <code>happiness</code>, <code>love</code>, <code>sadness</code>, <code>share</code>, <code>fun</code>"
    },
    "connotation_types": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "integer",
          "null"
        ],
        "format": "int64"
      },
      "description": "<em>함의 유형</em><br>키워드 인용과 관련된 감정 유형(감정 극성) 및 각 감정 유형별 인용 수를 포함합니다<br>가능한 감정 함의 유형: <code>positive</code>, <code>negative</code>, <code>neutral</code>"
    },
    "text_categories": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "object",
          "null"
        ],
        "oneOf": [
          {
            "$ref": "#/components/schemas/Response36Afe1097B20_ContentAnalysisCategoriesInfo"
          }
        ]
      },
      "description": "<em>텍스트 카테고리</em><br>텍스트 카테고리와 각 텍스트 카테고리의 인용 수를 담은 객체를 포함합니다<br>사용 가능한 카테고리 전체 목록은 <a href=\"/v3/content_analysis/categories/\" rel=\"noopener noreferrer\" target=\"_blank\">Categories</a> 엔드포인트를 참고하세요"
    },
    "page_categories": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": [
          "object",
          "null"
        ],
        "oneOf": [
          {
            "$ref": "#/components/schemas/Response36Afe1097B20_ContentAnalysisCategoriesInfo"
          }
        ]
      },
      "description": "<em>페이지 카테고리</em><br>페이지 카테고리와 각 페이지 카테고리의 인용 수를 담은 객체를 포함합니다<br>사용 가능한 카테고리 전체 목록은 <a href=\"/v3/content_analysis/categories/\" rel=\"noopener noreferrer\" target=\"_blank\">Categories</a> 엔드포인트를 참고하세요"
    },
    "page_types": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "integer",
          "null"
        ],
        "format": "int64"
      },
      "description": "<em>페이지 유형</em><br>페이지 유형과 각 페이지 유형별 인용 수를 포함합니다"
    },
    "countries": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "integer",
          "null"
        ],
        "format": "int64"
      },
      "description": "<em>국가</em><br>국가와 각 국가의 인용 수를 포함합니다<br>사용 가능한 국가 전체 목록은 <a href=\"/v3/content_analysis/locations/\" rel=\"noopener noreferrer\" target=\"_blank\">Locations</a> 엔드포인트를 참고하세요"
    },
    "languages": {
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": {
        "type": [
          "integer",
          "null"
        ],
        "format": "int64"
      },
      "description": "<em>언어</em><br>언어와 각 언어의 인용 수를 포함합니다<br>사용 가능한 언어 전체 목록은 <a href=\"/v3/content_analysis/languages/\" rel=\"noopener noreferrer\" target=\"_blank\">Languages</a> 엔드포인트를 참고하세요"
    }
  }
}
```

### Response36Afe1097B20_TopDomainInfo

`#/components/schemas/Response36Afe1097B20_TopDomainInfo`

```json
{
  "properties": {
    "domain": {
      "type": [
        "string",
        "null"
      ]
    },
    "count": {
      "type": [
        "integer",
        "null"
      ],
      "format": "int64"
    }
  }
}
```
