---
title: "Export content-opportunity signals for Synchronex"
method: GET
path: "/synchronex/content-opportunity/signals"
---

# Export content-opportunity signals for Synchronex

`GET /synchronex/content-opportunity/signals`

## Request

- Base URL: `https://sendinel.ai/api/v1`
- URL: `https://sendinel.ai/api/v1/synchronex/content-opportunity/signals`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://sendinel.ai/oauth/authorize`, token URL `https://sendinel.ai/oauth/token`)

Read-only pull surface for Synchronex workers to consume Sendinel's content-opportunity signal classes and proposal-backed recommendations. The catalog includes all planned classes; current live producer output is lifecycle plus cadence-gap from create_content_recommendation proposals.

## Query parameters

- `since` string, date-time
- `limit` integer
- `status` string
- `signal_class` 'engagement' | 'lifecycle' | 'revenue' | 'cadence_gap' | 'deliverability' | 'segment_shift' | 'content_inventory' | 'cross_channel' | 'portfolio_gap'

## Response `200`

Content-opportunity signal export page

- object
  - `synchronex_account_id` string, nullable, required
  - `signal_classes` object[], required
    - `id` string, required
    - `label` string, required
    - `description` string, required
    - `source_tables` string[], required
    - `status` 'live' | 'planned', required
    - `producer` string, nullable, required
  - `signals` object[], required
    - `id` string, required
    - `event` 'sendinel.content.recommendation', required
    - `proposal_id` string, uuid, required
    - `project_id` string, uuid, required
    - `org_id` string, uuid, required
    - `signal_classes` string[], required
    - `target` object, required
    - `recommendation` object, required
    - `metrics` object, required
    - `confidence` integer, nullable
    - `status` string, required
    - `generated_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `source` object, required
  - `next_cursor` string, nullable, required

## Other responses

- `500`: Could not load content-opportunity signals

---

[API](https://skmtc.dev/sendinel/apis/sendinel-api.md) · [All operations](https://skmtc.dev/sendinel/apis/sendinel-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sendinel/apis/sendinel-api/revisions/20b2c6d5616d?raw)
