## content_analysis/phrase-trends

`GET /v1/content_analysis/phrase-trends`

Mention volume and sentiment for a keyword bucketed by day, week or month across the sources we can reach. Bucket heights are bounded by each source's per-query cap, so the series is a shape, not a census — the response says so explicitly.

*Keyword mention trends*

| Parameter | Required | Description |
| --- | --- | --- |
| `keyword` | yes | Phrase to trend — e.g. `kubernetes` |
| `date_from` | yes | ISO-8601 start of the window — e.g. `2026-08-01` |
| `date_to` | no | ISO-8601 end of the window (default now) — e.g. `2026-08-31` |
| `date_group` | no | day (default), week or month; max 400 buckets — e.g. `day` |
| `page_type` | no | all, news, forum, social or discussion — e.g. `all` |
| `internal_list_limit` | no | Length of the embedded top-terms list (max 50) — e.g. `10` |
| `depth` | no | Items fetched PER SOURCE before bucketing (max 100) — e.g. `100` |
| `filters` | no | field:op:value segments joined by ; — see /v1/content_analysis/filters — e.g. `source:eq:hackernews` |
| `dry_run` | no | Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. — e.g. `1` |

**Cost:** 5 credits at list price per successful uncached response; variable-cost operations may quote or settle a different charge. Confirmed uncharged or refunded failures report zero. Pending reconciliation can report credits_used:null; retain request_id and the original idempotency key.

```bash
curl "https://www.monocrawl.com/v1/content_analysis/phrase-trends?keyword=kubernetes&date_from=2026-08-01" \
  -H "x-api-key: mn_your_key_here"
```

### Response data

Illustrative abbreviated data; documented core fields are optional and may be null. Additional source fields are allowed.

```json
{
  "_warnings": [
    "example"
  ],
  "bucket_count": 0,
  "buckets": [
    {
      "bucket_end": "example",
      "bucket_start": "example",
      "by_source": {
        "google_news": 0,
        "hackernews": 0,
        "reddit": 0
      },
      "mentions": 0,
      "sentiment": {
        "mean_score": 0,
        "negative": 0,
        "neutral": 0,
        "positive": 0
      }
    }
  ],
  "date_from": "2026-09-01T12:00:00Z",
  "date_group": "2026-09-01T12:00:00Z",
  "date_to": "2026-09-01T12:00:00Z",
  "excluded": {
    "out_of_window_mentions": 0,
    "undated_mentions": 0
  },
  "filters_applied": [],
  "keyword": "example",
  "sentiment_method": {
    "ai_used": false,
    "kind": "example",
    "known_limits": [
      "example"
    ],
    "lexicon": {
      "diminishers": 0,
      "intensifiers": 0,
      "negative_terms": 0,
      "negators": 0,
      "positive_terms": 0,
      "total_terms": 0
    },
    "modifiers": {
      "diminisher": "example",
      "intensifier": "example",
      "matching": "example",
      "negation": "example"
    },
    "scoring": "example",
    "thresholds": {
      "negative": 0,
      "positive": 0
    }
  },
  "sources": [
    {
      "endpoint": "example",
      "error": "example",
      "kept": 0,
      "ok": false,
      "returned": 0,
      "source": "example",
      "status": 0
    }
  ],
  "sources_unavailable": [
    {
      "reason": "example",
      "source": "example"
    }
  ],
  "top_terms": [
    {
      "mentions": 0,
      "occurrences": 0,
      "term": "example"
    }
  ],
  "totals": {
    "buckets_with_mentions": 0,
    "duplicates_removed": 0,
    "gathered_before_filters": 0,
    "mentions": 0,
    "peak_bucket": {
      "bucket_start": "example",
      "mentions": 0
    },
    "sentiment": {
      "max_score": 0,
      "mean_score": 0,
      "median_score": 0,
      "min_score": 0,
      "negative": 0,
      "neutral": 0,
      "positive": 0,
      "total": 0
    }
  }
}
```

[Field reference](https://www.monocrawl.com/docs/endpoints/content_analysis/phrase-trends#response) · [JSON Schema for response.data](https://www.monocrawl.com/schemas/content_analysis/phrase-trends.json)
