Naver Post details API

POST

API health

Health data cannot be read right now, so this API's recent state is unknown. That does not mean it is down.

Open a single Naver Blog or Cafe post by its url to get the full text, author, category, tags, image links and any places mentioned in it. Only what the post page shows comes back; private content cannot be recovered.

Naver Post details reads one Naver Blog or Cafe post from its url and returns the full text, the title, the author's name and profile link, the Cafe name for Cafe posts, the category, tags, like and comment counts, the publish time, and flags for video and sponsored content. It answers what a particular Korean blog or community post says, for marketers reviewing influencer and seeding posts, researchers reading consumer opinion in Korea, and teams turning search hits into full text for analysis.

Pass the post's own link, such as https://blog.naver.com/hyemi35/224360992457, or a Cafe article link; Naver Place business pages are not accepted, and their visitor reviews come from the Naver Reviews capability. Check is_sponsored before you treat a post as independent opinion, since Naver carries many promotional posts. tags is an empty list, not null, when a post has none, and a null like or comment count means the figure was not disclosed.

Price $1.39 per 1,000 requests ($0.001389 per call). Failed calls and empty results are not charged. Synchronous. For slow jobs add "mode": "async" to the body, take the job_id and poll.

AI prompt

Paste this into your AI assistant. It already holds this endpoint's parameters, response fields and an example request, so the assistant can ask what you need and then write the scraper.

Please help me write a data collection script with the EveryInfra Naver Post details endpoint (naver/post).

Endpoint contract:
- Request: POST https://api.everyinfra.com/api/v1/social with the header Authorization: Bearer <API key>. Read the key from the EVERYINFRA_API_KEY environment variable and never hard-code it.
- In the request body, set platform to naver and action to post, and put the parameters inside params.
- Required parameters:
  - url: Specifies the target URL for Naver requests. The post and comments actions accept specific Blog or Cafe post URLs, whereas the reviews action requires Naver Place merchant links containing /restaurant/MERCHANT_ID or /pla…
- Returns one object. Main fields: source, title, url, text, author_name, author_url, cafe_name, category, like_count, comment_count, posted_at, has_video; 16 fields in total, full list at https://api.everyinfra.com/api/v1/social/catalog?platform=naver.
- Example request body:
{
  "platform": "naver",
  "action": "post",
  "params": {
    "url": "https://blog.naver.com/hyemi35/224360992457"
  }
}
- Price: $1.39 per 1,000 requests; failed and empty results are not charged.
- For dozens or hundreds of targets, add "mode": "async" to the body: you get a job_id at once and poll GET https://api.everyinfra.com/api/v1/jobs/{job_id} for the result.
- On 422, fix the request using the suggested parameter names and allowed values in the error; on 429 or 503, wait for Retry-After and try again.

Before writing code, ask me which targets I need, how many, which fields, and what output format I want; then confirm the plan and the rough cost with me.

Request parameters

NameInTypeRequiredDefaultDescription
AuthorizationheaderstringYes-Bearer followed by your API key. Create it in the console; never put it in a URL or a code repository.
platformbodystringYesnaverPlatform identifier, fixed value.
actionbodystringYespostCapability identifier, fixed value.
urlbody.paramsNot declaredYes-Specifies the target URL for Naver requests. The post and comments actions accept specific Blog or Cafe post URLs, whereas the reviews action requires Naver Place merchant links containing /restaurant/MERCHANT_ID or /place/MERCHANT_ID paths.

Code samples

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "naver",
  "action": "post",
  "params": {
    "url": "https://blog.naver.com/hyemi35/224360992457"
  }
}'

[OpenAPI definition (JSON)]Samples read the key from the EVERYINFRA_API_KEY environment variable; copied code never contains your key.

Response example

Real response

Captured September 26, 2026 at 08:56 (UTC) by calling this API with the parameters in the code sample above. results and count are that call's real response with personal information (names, handles, avatars, profile links, contact details) removed. id, billing and quota differ on every call, so only their shape is shown.

json
{
  "id": "req_…",
  "platform": "naver",
  "action": "post",
  "results": {
    "source": "blog",
    "title": "구리시민으로써 구리카페 매주리커피",
    "url": "https://blog.naver.com/hyemi35/224360992457",
    "text": "매주리커피\n\n기본정보​\n\n⏰️10:00~20:30(월~일)\n\n20:00(라스트오더)\n\n🚇8호선 동구릉역 3번출구\n\n🅿️동구릉 공영주차장(유료)\n\n📞(已隐去)\n\n📍고유가피해지원금 사용가능\n\n구리시 안에 있기는 하지만 아무래도 집에서 거리가 있는 곳이라서 이쪽까지는 거의 갈일이 없어서 어쩌다보니 처음 가본 카페인데요.\n\n지난 주말 너무 집에만 있는 것 같아서 커피라도 마시자해서 롯데백화점 가서 점심먹고 구리카페 매주리커피로 가봤어요.\n\n위치정보​\n\n8호선 동구릉역 3번출구에서 도보로는 10분정도 걸리…",
    "author_name": "(已隐去)",
    "author_url": "https://blog.naver.com/hyemi35",
    "like_count": 6,
    "comment_count": 1,
    "posted_at": "2026-07-28T22:46:00",
    "has_video": false,
    "platform": "naver",
    "image_urls": [
      "https://postfiles.pstatic.net/MjAyNjA3MjhfMjMx/MDAxNzg1MjQzOTUwOTY5.YzNXX8BcPYPXbwYuV3tvQdHTZul9yq0DToFjxw0RCFgg.QTBADsyGbUaSW8Ra5O90xoD9ghkiN82lWQhtFAuAVoAg.JPEG/900_20260726_150149.jpg",
      "https://postfiles.pstatic.net/MjAyNjA3MjhfMTA4/MDAxNzg1MjQzOTUyOTk1.h19RSw7RXri_02fjgNMgNjSVOG5vgbt9UKw3BdQBCD8g.0yez_4BPVf_Mo3cTZTRDWWMI5qmN5NVJWOzcvlBJ0Twg.JPEG/900_20260726_150137.jpg",
      "https://postfiles.pstatic.net/MjAyNjA3MjhfNDcg/MDAxNzg1MjQzOTUxNTY4.t6ryPA6Y2ScVLqv_KCvK8pKktr3V585msL6NkbRAbPMg.JI9kW_o17wX2pBWQzYncbUR_rrT9Z_FpcFPRHNbvlPcg.JPEG/900_20260726_150139.jpg"
    ],
    "mentioned_places": [
      {
        "name": "매주리커피 구리",
        "address": "경기도 구리시 동구릉로 199-1 2층 매주리커피 구리",
        "tel": "(已隐去)",
        "latitude": "37.6166873",
        "longitude": "127.1374647",
        "place_id": "(已隐去)"
      }
    ]
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Response fields

Business data is in results. The table lists the fields a record can contain; values the platform does not show are never made up.

FieldMeaning
sourceKeeps the platform's own meaning
titleTitle. null when the platform has no titles (for example text-only posts).
urlLink to the record on the platform.
textBody text with HTML removed, returned in full and never cut short (on a few platforms the list results themselves carry only an excerpt; the platform's field notes say so).
author_nameAuthor's display name.
author_urlLink to the author's profile on the platform.
cafe_nameKeeps the platform's own meaning
categoryCategory name in the platform's own taxonomy, not normalized across platforms.
like_countLikes. null means the platform or this capability does not disclose it; it is not 0.
comment_countComments. null means not disclosed, not 0.
posted_atPublish time in ISO 8601, UTC (for example 2026-08-07T12:34:56+00:00). Non-standard strings from the platform are passed through as is, so parse defensively. null means the platform does not disclose it.
has_videoKeeps the platform's own meaning
is_sponsoredKeeps the platform's own meaning
platformSource platform identifier, the same as platform in the request (for example xiaohongshu, tiktok).
tagsArray of tags. An empty array, not null, when there are none.
image_urlsArray of image links in the platform's display order; absent when there are no images.
mentioned_placesKeeps the platform's own meaning

FAQ

Which Naver links can I pass as url?

The link of one Naver Blog post or Cafe article, such as https://blog.naver.com/hyemi35/224360992457. Naver Place business links are not accepted by Naver Post details. Rows from the Naver Search capability carry Blog and Cafe post links, which you can pass straight through to read the full post.

How do I tell sponsored posts from independent ones?

Read is_sponsored, which flags promotional content. Promotional posts are common on Naver, so separate them before you measure sentiment or count organic mentions of a brand. Keep the flagged posts in their own set if you study paid campaigns, rather than discarding them.

Can I get the comments on a Naver post?

Not from Naver Post details, which returns the post itself along with its comment_count. Pass the same Blog or Cafe link to the Naver Comments capability to read the comments. A null comment_count means the count was not disclosed, so it is worth calling Comments even when the count is missing.

Errors and billing

401
Missing or invalid key. Authentication runs before parameter checks, so unauthenticated requests never see the parameter schema.
422
Wrong parameter name or value. The error lists the parameters and allowed values this capability accepts and the closest match; it happens before any charge.
402
Insufficient balance. Top up first.
429
The account's per-minute request limit was reached (all of its API keys count together; a key's own lower limit applies first). Wait for Retry-After and try again; a rate package in the console raises the limit.
503
Could not complete right now. Any charge for the call goes back to your balance automatically, and the billing receipt in the response states the actual outcome, including when it is not yet known. Do not resend blindly.
200 empty
The request completed without data and is not charged (billing.reason = empty_result_refunded).