Sources

Create a source classification rule

Changed on

Classify part of a cited domain: every citation under scope (a subdomain or a path, like business.linkedin.com or linkedin.com/help, or a URL) takes citationType; a competitor rule also names competitorId. With withinDomain, a scope outside that domain is refused with 400 host_outside_domain. Other refusals: 400 invalid_scope, invalid_citation_type, missing_competitor, unknown_competitor; 409 duplicate_scope, rule_limit. Requires the source:classify capability, and your own project role must allow managing the project (otherwise 403 forbidden). A pitch project that is not currently active refuses with 409 INACTIVE_PITCH_PROMPT_MUTATION. Numbers refresh within a few minutes: the answer carries status.applying: true, so poll GET /projects/{projectId}/sources/rules until status.applying is false. Use POST .../sources/rules/preview first to see what the rule would change. Supports Idempotency-Key replay; a reused key with a different body returns 409 idempotency_conflict.

post/api/mcp/projects/{projectId}/sources/rules

Request

  • Base URL
    https://app.searchable.com
  • Auth
    HTTP bearer

Path parameters

projectIdstring uuid required

The project id.

Headers

Idempotency-Keystring

Optional client-generated key (e.g. a UUID). Retrying with the same key within 24h replays the original stored response (X-Idempotent-Replay: true) instead of repeating the side effect. See Idempotency.

Request body

scopestring required

A subdomain or a path of a domain, like business.linkedin.com or linkedin.com/help, or a URL.

withinDomainstring

The domain the scope belongs to; a scope outside it is refused.

citationType'brand' | 'competitor' | 'editorial' | 'social' | 'forum' | 'review' | 'institutional' | 'third_party' | 'other' required

A Source Type. brand is the app's Owned.

competitorIdstring nullable

Required for a competitor rule; ignored for any other type.

Response

The rule was saved.

removedinteger required

Rules a removal deleted.

successboolean required

Always true — injected on every success response by this endpoint family's response wrapper.

Changes