メインコンテンツまでスキップ

本文の取得

フィード API (GET /v1/feed) とコンテンツ詳細 API (GET /v1/contents/{content_id}) は、記事本文(content_body)を取得するオプションを提供しています。

概要​

本文の利用可否は、コンテンツソース(メディア)ごと、およびテナントごとの許諾によって決まります。許諾が無いコンテンツをリクエストした場合、エラーにはならず content_body フィールドが省略されたレスポンスが返ります。

一方、リンク・メタデータ・サムネイル・本文冒頭の抜粋(スニペット)は許諾に関係なく常に利用できます。

許諾が必要なのは本文のみ

title / summary / thumbnail / body_excerpt などのスニペット系フィールドは、本文の許諾状況にかかわらず常に返却されます。許諾が影響するのは content_body フィールドのみです。

パラメーター​

GET /v1/feed と GET /v1/contents/{content_id} の両方で、以下のクエリパラメーターが利用できます。

パラメーター型デフォルト説明
include_bodybooleanfalsetrue の場合、本文利用が許可されているコンテンツに content_body を含めます。
body_formatmarkdown | htmlmarkdowncontent_body の形式。
curl -G "https://api.feed.storyhub.studio/v1/feed" \
--data-urlencode "scenario=YOUR_SCENARIO_NAME" \
--data-urlencode "user_id=user-12345" \
--data-urlencode "include_body=true" \
--data-urlencode "body_format=html" \
-H "Authorization: Bearer YOUR_API_KEY"

include_body=false(デフォルト)の場合、body_format を指定しても本文は返却されません。

レスポンス​

content_body が返却されるコンテンツには、あわせて body_format フィールド(実際に使われた形式)が付与されます。許諾が無いコンテンツでは、include_body=true を指定していても content_body と body_format の両方が省略されます。

例: GET /v1/feed(body_format=markdown)​

{
"data": [
{
"id": "content-uuid",
"title": "都心のオフィス空室率、3期連続で改善",
"url": "https://example.com/article?utm_source=yoursite.com&utm_medium=referral&utm_campaign=storyhub",
"canonical_url": "https://example.com/article",
"summary": "都心5区のオフィス空室率が3四半期連続で改善した。",
"content_body": "## 空室率の推移\n\n都心5区のオフィス空室率は...\n\n- 千代田区: 4.2%\n- 中央区: 3.8%\n\n詳細は[国交省の発表](https://example.com/mlit)を参照。",
"body_format": "markdown",
"body_excerpt": "都心5区のオフィス空室率は3四半期連続で改善し、企業の...",
"author": "山田太郎",
"published_at": "2026-08-20T09:00:00Z",
"source": {
"source_id": "source-uuid",
"name": "○○経済新聞",
"url": "https://example.com",
"title_rewrite_allowed": true
},
"score": 0.91,
"tracking_token": "eyJ..."
}
],
"meta": {
"next_cursor": "..."
}
}

例: GET /v1/contents/{content_id}(body_format=html)​

{
"data": {
"id": "content-uuid",
"title": "都心のオフィス空室率、3期連続で改善",
"url": "https://example.com/article?utm_source=yoursite.com&utm_medium=referral&utm_campaign=storyhub",
"canonical_url": "https://example.com/article",
"summary": "都心5区のオフィス空室率が3四半期連続で改善した。",
"content_body": "<h2>空室率の推移</h2><p>都心5区のオフィス空室率は...</p><ul><li>千代田区: 4.2%</li><li>中央区: 3.8%</li></ul><p>詳細は<a href=\"https://example.com/mlit\">国交省の発表</a>を参照。</p>",
"body_format": "html",
"body_excerpt": "都心5区のオフィス空室率は3四半期連続で改善し、企業の...",
"author": "山田太郎",
"published_at": "2026-08-20T09:00:00Z",
"source": {
"source_id": "source-uuid",
"name": "○○経済新聞",
"url": "https://example.com",
"title_rewrite_allowed": true
}
},
"meta": {
"consumed_credits": 1
}
}
content_body が含まれないケース

以下のいずれかに該当する場合、レスポンスに content_body(および body_format)は含まれません。エラーにはなりません。

  • include_body を指定していない、または false の場合
  • リクエスト対象のコンテンツソースが、このテナントに対して本文利用を許可していない場合

許諾状況の変更は概ね 1 分以内に反映されます。

許可される HTML タグ・属性​

body_format=html で返却される content_body は sanitize 済みです。以下に挙げるタグ・属性のみが現れます。

種別許可される値
タグp, br, hr, h1〜h6, ul, ol, li, blockquote, pre, code, em, strong, b, i, u, s, del, sub, sup, a, img, figure, figcaption, table, thead, tbody, tfoot, tr, th, td, dl, dt, dd
a の属性href, title
img の属性src, alt, title, width, height
th / td の属性colspan, rowspan
ol の属性start

href / src の URL スキームは http / https のみです。script / style / iframe、イベント属性(onclick 等)、id / class / style 属性は含まれません。

Markdown の記法​

body_format=markdown で返却される content_body には、以下の記法が現れる可能性があります。

記法例
見出し## 見出し
段落空行区切りのテキスト
強調*斜体*, **太字**
打ち消し線~~取り消し線~~
リンク[テキスト](url)
画像![alt](url)
番号なしリスト- 項目
番号付きリスト1. 項目
引用> 引用文
コードブロック / インラインコード```...``` / `code`
表(GFM)| A | B |
水平線---

本文中の画像 URL​

本文中に現れる画像 URL(img タグの src、または Markdown の ![alt](url))は、画像配信で使われているものと同じ画像配信サービスの署名付き URL に置き換えられています。

署名付き URL に明示的な有効期限はありませんが、鍵のローテーションにより無効になることがあります。サムネイル画像と同様に、URL を保存・キャッシュせず、表示のたびに最新のレスポンスから取得してください。

帰属表示(Attribution)​

本文を表示・利用する際は、出典を明示してください。以下のフィールドを使用します。

フィールド説明
source.nameコンテンツソース(メディア)の名称
source.urlコンテンツソースのトップページ URL
canonical_url元記事の URL
author執筆者名(存在する場合のみ)

タイトルの改変可否​

source オブジェクトには常に title_rewrite_allowed(boolean)フィールドが含まれます(GET /v1/feed、GET /v1/contents/{content_id}、プッシュ候補のいずれの source オブジェクトにも共通です)。

  • title_rewrite_allowed: false — タイトルを改変せず、title フィールドの値をそのまま表示してください。
  • title_rewrite_allowed: true — 要約・言い換えしたタイトルを使用できます。

関連ドキュメント​