Skip to content

Coverage

Coverage records represent published results -- articles, interviews, awards, segments, and other media appearances. Coverage can be linked to outlets, contacts, channels, and opportunities via the coverage_outlet junction table.

create_coverage

Record a piece of coverage.

Parameters

ParameterTypeRequiredDescription
titlestringYesHeadline or title
descriptionstringNoSummary
urlstringNoLink to original
published_datestringNoPublished date (YYYY-MM-DD)
coverage_typestringNoarticle, interview, review, opinion, listicle, roundup, segment, appearance, award_win, other
depthstringNomention, quote, feature, dedicated, cover_story
sentimentstringNopositive, neutral, negative, mixed
share_of_voicestringNosole_focus, shared, competitor_included
spokesperson_quotedbooleanNoWhether a spokesperson was quoted
initiated_bystringNopitched or organic
full_textstringNoFull text of the article/transcript
notesstringNoFree-form notes

Example

json
{
  "name": "create_coverage",
  "arguments": {
    "title": "How Catena Labs is Reinventing PR with AI Agents",
    "url": "https://techcrunch.com/2026/05/01/catena-labs-pr-ai",
    "published_date": "2026-05-01",
    "coverage_type": "feature",
    "depth": "dedicated",
    "sentiment": "positive",
    "initiated_by": "pitched"
  }
}

get_coverage

Get a coverage item by ID with linked outlets, contacts, opportunities, and media.

Parameters

ParameterTypeRequiredDescription
idstring (UUID)YesCoverage ID

Example

json
{
  "name": "get_coverage",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

list_coverage

List coverage with optional filters.

Parameters

ParameterTypeRequiredDescription
coverage_typestringNoFilter by coverage type
sentimentstringNoFilter by sentiment: positive, neutral, negative, mixed
initiated_bystringNoFilter by origin: pitched or organic
include_archivedbooleanNoInclude archived coverage (default: false)
limitnumberNoMax results (default: 50)
offsetnumberNoOffset for pagination (default: 0)

Example

json
{
  "name": "list_coverage",
  "arguments": {
    "sentiment": "positive",
    "initiated_by": "pitched",
    "limit": 10
  }
}

update_coverage

Update coverage fields.

Parameters

ParameterTypeRequiredDescription
idstring (UUID)YesCoverage ID
titlestringNoHeadline or title
descriptionstringNoSummary
urlstringNoLink to original
published_datestringNoPublished date (YYYY-MM-DD)
coverage_typestringNoCoverage type
depthstringNoDepth of coverage
sentimentstringNopositive, neutral, negative, mixed
share_of_voicestringNosole_focus, shared, competitor_included
spokesperson_quotedbooleanNoWhether a spokesperson was quoted
initiated_bystringNopitched or organic
full_textstringNoFull text
notesstringNoFree-form notes

Example

json
{
  "name": "update_coverage",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "sentiment": "positive",
    "depth": "dedicated"
  }
}

archive_coverage

Soft-delete coverage.

Parameters

ParameterTypeRequiredDescription
idstring (UUID)YesCoverage ID

Example

json
{
  "name": "archive_coverage",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

restore_coverage

Restore archived coverage.

Parameters

ParameterTypeRequiredDescription
idstring (UUID)YesCoverage ID

Example

json
{
  "name": "restore_coverage",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Link coverage to an outlet, contact, channel, and/or opportunity. At least one entity ID should be provided.

Parameters

ParameterTypeRequiredDescription
coverage_idstring (UUID)YesCoverage ID
outlet_idstring (UUID)NoOutlet to link
contact_idstring (UUID)NoContact to link (e.g. the journalist who wrote it)
channel_idstring (UUID)NoChannel to link
opportunity_idstring (UUID)NoOpportunity to link

Example

json
{
  "name": "link_coverage",
  "arguments": {
    "coverage_id": "550e8400-e29b-41d4-a716-446655440000",
    "outlet_id": "660e8400-e29b-41d4-a716-446655440000",
    "contact_id": "770e8400-e29b-41d4-a716-446655440000",
    "opportunity_id": "880e8400-e29b-41d4-a716-446655440000"
  }
}

Remove a coverage link.

Parameters

ParameterTypeRequiredDescription
idstring (UUID)Yescoverage_outlet record ID

Example

json
{
  "name": "unlink_coverage",
  "arguments": {
    "id": "990e8400-e29b-41d4-a716-446655440000"
  }
}

recent_coverage

Get coverage from the last N days. Includes linked outlet and contact names.

Parameters

ParameterTypeRequiredDescription
daysnumberNoNumber of days to look back (default: 30)
sentimentstringNoFilter by sentiment: positive, neutral, negative, mixed

Example

json
{
  "name": "recent_coverage",
  "arguments": {
    "days": 7,
    "sentiment": "positive"
  }
}