## content_analysis/search

`GET /v1/content_analysis/search`

Web citations of a keyword from news, Hacker News and Reddit with deterministic per-mention sentiment (in-adapter lexicon, no AI), Monocrawl category labels and per-source provenance. Fans out to 3 upstreams; coverage is partial and every response names what it could not consult.

*Keyword mention search*

| Parameter | Required | Description |
| --- | --- | --- |
| `keyword` | yes | Phrase to find mentions of — e.g. `kubernetes` |
| `page_type` | no | all, news, forum, social or discussion — maps onto our source roster; review/blog/ecommerce classes are rejected with an explanation rather than silently served from the wrong sources — e.g. `all` |
| `search_mode` | no | as_is (default) or one_per_domain (keep the first mention per publisher) — e.g. `as_is` |
| `limit` | no | Mentions per page after merging (max 100) — e.g. `25` |
| `cursor` | no | Offset into the merged result set, from a previous response — e.g. `25` |
| `order_by` | no | published_at:desc\|asc, sentiment:desc\|asc, source or relevance — e.g. `published_at:desc` |
| `depth` | no | Items fetched PER SOURCE before merging (max 100) — e.g. `25` |
| `positive_connotation_threshold` | no | Score in (0,1] at or above which a mention is labelled positive — e.g. `0.25` |
| `sentiments_connotation_threshold` | no | Score magnitude at or below which a mention is labelled negative — e.g. `0.25` |
| `filters` | no | field:op:value segments joined by ; — see /v1/content_analysis/filters — e.g. `source:in:hackernews,reddit;sentiment:eq:negative` |
| `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:** 3 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/search?keyword=kubernetes" \
  -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"
  ],
  "count": 0,
  "cursor": null,
  "dropped": 0,
  "duplicates_removed": 0,
  "filters_applied": [],
  "gathered": 0,
  "items": [
    {
      "author": "example",
      "categories": [
        "example"
      ],
      "engagement": {
        "comments": 0,
        "score": 0
      },
      "matched_terms": [
        {}
      ],
      "primary_category": "example",
      "published_at": "2026-09-01T12:00:00Z",
      "publisher": "example",
      "raw_sentiment_score": 0,
      "sentiment": {
        "label": "example",
        "score": 0
      },
      "source": "example",
      "text_source": "example",
      "title": "example",
      "url": "https://example.com/example"
    }
  ],
  "keyword": "example",
  "order_by": "example",
  "search_mode": "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"
    }
  ],
  "total_matched": 0
}
```

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