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

# Naver Blog Search

> Native Naver Blog relevance results through the existing ScrapeBadger provider. Up to 100 source rows from at most five source pages, start 1–1000, with query-bound cursor continuation. Preserves Korean, source calendar days and unknown dates; does not invent exact publish timestamps. Date sorting and AI enrichment are unsupported. Empty or fully filtered windows are free.

Searches the **native Naver Blog relevance index** using the already configured ScrapeBadger account. Naver Cloud credentials are not required for this operation. The official Naver paid-account setup remains on hold.

Each row contains a canonical `post` plus compatibility fields `title`, `link`, `description`, `bloggername`, `bloggerlink` and `postdate`. Korean text is preserved; highlight tags are stripped and entities decoded. The provider supplies calendar days or relative labels, so `post.published_at` remains null. Exact calendar days appear in `post.ext.published_date` with `published_at_precision: "day"`; relative/unknown dates remain null. Views, likes, comments and author verification are unknown, not zero.

Use `display` or `limit` (1–100; default 10), with `start` (1–1000), or return `next_cursor` alone. Matching aliases must agree. A cursor binds the query, requested size and inclusive `since`/`until` calendar-day filters for one hour. Conflicting explicit values are rejected. Date filtering excludes rows without a known date, and pagination advances over scanned source rows even when every row is filtered out.

Each source page contains up to 30 rows; a requested window uses at most five bounded parallel source reads. Within a response, duplicate post IDs are removed and counted in `dropped`. Rankings can change across requests: the two live source pages overlapped on 13 of 30 IDs. **Deduplicate by `post.id` across pages.** The source does not supply a reliable total, so `total` is null. Full source pages may lead to an empty terminal page. Traversal stops at source position 1,000; cursors are not snapshots or an exhaustive collection guarantee.

**Known production limitation:** both audited 100-row requests failed because the provider repeated an entire later page. These requests were rejected with HTTP 502 and refunded. Smaller windows and first/second-page continuation passed. Large-window and deeper-pagination reliability are not certified; do not assume that the accepted 100-row/1,000-offset bounds establish working coverage.

Only `sort=sim` and `judgments=off` are supported. Date sorting, AI relevance/fit/labeling, dry runs and synthesis are rejected with an unbilled 422. These remain feature-parity gaps.

A fresh nonempty result costs **1 credit**. Errors, empty/fully filtered windows, cache hits and successful idempotent replays cost zero. Use `X-Max-Credits: 1`. All source reads are reserved against the shared **500-credit ScrapeBadger verification ceiling** before any request starts; up to five pages use up to 25 provider credits. Missing/exhausted budget state fails closed. Requests have a 45-second shared timeout and a 2 MiB per-page bound. This approved verification allowance is not a permanent production capacity commitment; no purchase or top-up is enabled.


## OpenAPI

````yaml GET /naver/blog/search
openapi: 3.1.0
info:
  title: SocialQuery API
  version: '2026-10-09'
  description: >-
    Documented requests for public-source records. Inspect accepted inputs and
    credit amounts, then verify the selected operation before integrating
    preview coverage.
servers:
  - url: https://socialquery.dev/v1
security:
  - apiKey: []
paths:
  /naver/blog/search:
    get:
      tags:
        - Naver
      summary: Naver Blog Search
      description: >-
        Native Naver Blog relevance results through the existing ScrapeBadger
        provider. Up to 100 source rows from at most five source pages, start
        1–1000, with query-bound cursor continuation. Preserves Korean, source
        calendar days and unknown dates; does not invent exact publish
        timestamps. Date sorting and AI enrichment are unsupported. Empty or
        fully filtered windows are free.
      operationId: get_naver_blog_search
      parameters:
        - name: query
          in: query
          required: false
          example: 에어프라이어 추천
          schema:
            type: string
          description: >-
            Korean or other search text, up to 500 characters; alternatively
            supply a returned cursor.
        - name: display
          in: query
          required: false
          example: 10
          schema:
            type: integer
            minimum: 1
            maximum: 100
          description: >-
            Requested source rows, 1–100 (default 10). Both aliases must agree.
            Duplicate/date filtering can reduce returned_count.
        - name: start
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 1000
          description: >-
            One-based source offset, 1–1000. Cursors preserve remaining source
            positions.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - sim
          description: >-
            Only sim (native relevance order) is supported by this provider;
            date is rejected.
        - name: relevance
          in: query
          required: false
          schema:
            type: string
            enum:
              - score
              - filter
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: relevance_threshold
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: relevant_to
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: judgments
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'off'
          description: Only off is supported; no AI synthesis or scoring is performed.
        - name: dry_run
          in: query
          required: false
          schema:
            type: string
            enum:
              - '1'
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: fit
          in: query
          required: false
          schema:
            type: string
            enum:
              - goal
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: goal
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: fit_tokens
          in: query
          required: false
          schema:
            type: integer
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: label
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: exclude
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: brand
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: brand_description
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: offer
          in: query
          required: false
          schema:
            type: string
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: label_evidence
          in: query
          required: false
          schema:
            type: string
            enum:
              - '1'
          description: >-
            Unsupported by the current native-blog adapter; supplying this
            parameter returns an unbilled 422.
        - name: since
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Inclusive YYYY-MM-DD calendar-day filter within the scanned window.
            Rows with unknown dates are excluded when either bound is supplied.
        - name: until
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Inclusive YYYY-MM-DD calendar-day filter within the scanned window.
            Rows with unknown dates are excluded when either bound is supplied.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: >-
            Opaque one-hour next_cursor; can be used alone. Binds query,
            requested size and date filters; explicit conflicts are rejected.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
          description: >-
            Requested source rows, 1–100 (default 10). Both aliases must agree.
            Duplicate/date filtering can reduce returned_count.
        - name: Cache-Control
          in: header
          required: false
          example: no-cache
          schema:
            type: string
        - name: Idempotency-Key
          in: header
          required: false
          example: 7a5e1b4c-2d8f-4a3b-9c1e-6e8b4d2a1f3c
          schema:
            type: string
        - name: X-Max-Credits
          in: header
          required: false
          description: >-
            Optional nonnegative integer cap on the maximum request hold. A live
            request whose hold exceeds this cap returns 422
            CREDIT_BUDGET_EXCEEDED before spending. Metered holds use the
            requested limit; cache hits and successful idempotent replays cost
            zero.
          schema:
            type: integer
            minimum: 0
      responses:
        '200':
          description: >-
            Native Naver Blog relevance results through the existing
            ScrapeBadger provider. Up to 100 source rows from at most five
            source pages, start 1–1000, with query-bound cursor continuation.
            Preserves Korean, source calendar days and unknown dates; does not
            invent exact publish timestamps. Date sorting and AI enrichment are
            unsupported. Empty or fully filtered windows are free.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SocialQueryResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          items:
                            type: array
                            items:
                              type: object
                              properties:
                                post:
                                  type: object
                                  properties:
                                    id:
                                      type: string
                                    url:
                                      type: string
                                    content:
                                      type: object
                                      properties:
                                        text:
                                          type:
                                            - string
                                            - 'null'
                                        media_urls:
                                          type: array
                                          items:
                                            type: string
                                        thumbnail_url:
                                          type:
                                            - string
                                            - 'null'
                                        duration_seconds:
                                          type: 'null'
                                      required:
                                        - text
                                        - media_urls
                                        - thumbnail_url
                                        - duration_seconds
                                    author:
                                      type: object
                                      properties:
                                        username:
                                          type: string
                                        display_name:
                                          type:
                                            - string
                                            - 'null'
                                        url:
                                          type: string
                                        avatar_url:
                                          type: 'null'
                                        verified:
                                          type: 'null'
                                      required:
                                        - username
                                        - display_name
                                        - url
                                        - avatar_url
                                        - verified
                                    engagement:
                                      type: object
                                      properties:
                                        views:
                                          type: 'null'
                                        likes:
                                          type: 'null'
                                        comments:
                                          type: 'null'
                                        shares:
                                          type: 'null'
                                      required:
                                        - views
                                        - likes
                                        - comments
                                        - shares
                                    published_at:
                                      type: 'null'
                                    ext:
                                      type: object
                                      properties:
                                        title:
                                          type: string
                                        published_date:
                                          type:
                                            - string
                                            - 'null'
                                        published_label:
                                          type:
                                            - string
                                            - 'null'
                                        published_at_precision:
                                          type:
                                            - string
                                            - 'null'
                                          enum:
                                            - day
                                            - null
                                      required:
                                        - title
                                        - published_date
                                        - published_label
                                        - published_at_precision
                                  required:
                                    - id
                                    - url
                                    - content
                                    - author
                                    - engagement
                                    - published_at
                                    - ext
                                title:
                                  type: string
                                link:
                                  type: string
                                description:
                                  type:
                                    - string
                                    - 'null'
                                bloggername:
                                  type:
                                    - string
                                    - 'null'
                                bloggerlink:
                                  type: string
                                postdate:
                                  type:
                                    - string
                                    - 'null'
                              required:
                                - post
                                - title
                                - link
                                - description
                                - bloggername
                                - bloggerlink
                                - postdate
                          returned_count:
                            type: integer
                            minimum: 0
                          total:
                            type: 'null'
                          display:
                            type: integer
                            minimum: 1
                            maximum: 100
                          start:
                            type: integer
                            minimum: 1
                            maximum: 1000
                          source_rows_scanned:
                            type: integer
                            minimum: 0
                          dropped:
                            type: integer
                            minimum: 0
                          date_filtered:
                            type: integer
                            minimum: 0
                          source_pages:
                            type: array
                            items:
                              type: integer
                              minimum: 1
                              maximum: 34
                          has_more:
                            type: boolean
                          next_cursor:
                            type:
                              - string
                              - 'null'
                          source:
                            type: string
                            const: scrapebadger
                          coverage_note:
                            type: string
                        required:
                          - items
                          - returned_count
                          - total
                          - display
                          - start
                          - source_rows_scanned
                          - dropped
                          - date_filtered
                          - source_pages
                          - has_more
                          - next_cursor
                          - source
                          - coverage_note
        '400':
          $ref: '#/components/responses/Error400'
        '401':
          $ref: '#/components/responses/Error401'
        '402':
          $ref: '#/components/responses/Error402'
        '403':
          $ref: '#/components/responses/Error403'
        '404':
          $ref: '#/components/responses/Error404'
        '405':
          $ref: '#/components/responses/Error405'
        '409':
          $ref: '#/components/responses/Error409'
        '422':
          $ref: '#/components/responses/Error422'
        '429':
          $ref: '#/components/responses/Error429'
        '500':
          $ref: '#/components/responses/Error500'
        '502':
          $ref: '#/components/responses/Error502'
        '503':
          $ref: '#/components/responses/Error503'
        '504':
          $ref: '#/components/responses/Error504'
components:
  schemas:
    SocialQueryResponse:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - data
      properties:
        success:
          type: boolean
          const: true
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        data:
          type: object
          additionalProperties: true
          description: >-
            The selected operation determines the resource fields in this
            object. Source data can omit a metric or report it as null.
    SocialQueryError:
      type: object
      required:
        - success
        - platform
        - endpoint
        - credits_used
        - credits_remaining
        - request_id
        - cached
        - error
      properties:
        success:
          type: boolean
          const: false
        platform:
          type: string
        endpoint:
          type: string
        credits_used:
          type: integer
          minimum: 0
        credits_remaining:
          type:
            - integer
            - 'null'
        request_id:
          type: string
        cached:
          type: boolean
        error:
          type: object
          required:
            - code
            - type
            - message
            - status
            - doc_url
          properties:
            code:
              type: string
            type:
              type: string
            message:
              type: string
            status:
              type: integer
            doc_url:
              type: string
              format: uri
  responses:
    Error400:
      description: Upstream rejected the request.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error401:
      description: Missing, expired, invalid, or revoked API key.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error402:
      description: Insufficient SocialQuery credits.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error403:
      description: Key scope or provider policy denied access.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error404:
      description: Endpoint or upstream resource not found.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error405:
      description: HTTP method is not supported.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error409:
      description: Idempotency conflict or request in progress.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error422:
      description: Invalid parameters.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error429:
      description: Request limit reached.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error500:
      description: Request processing failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error502:
      description: Upstream service failed.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error503:
      description: Provider or required service is unavailable.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
    Error504:
      description: Upstream service timed out.
      headers:
        X-Request-Id:
          schema:
            type: string
        X-Credits-Used:
          schema:
            type: integer
        X-Credits-Remaining:
          schema:
            type: string
        X-Cache:
          schema:
            type: string
            enum:
              - HIT
              - MISS
              - BYPASS
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SocialQueryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.