openapi: 3.2.0 info: title: Monocrawl X API version: 0.1.0 description: One key, one envelope, one credit meter across social, search, commerce and web data. contact: name: Monocrawl support url: https://www.monocrawl.com/contact termsOfService: https://www.monocrawl.com/legal/terms-and-conditions servers: - url: https://www.monocrawl.com security: - ApiKeyHeader: [] tags: - name: X paths: /v1/x/community: get: operationId: x_community tags: - X summary: Community description: 'One X community: name, description, member count and rules. Costs 3 credits per successful live response.' parameters: - name: url in: query required: true schema: type: string example: https://x.com/i/communities/1926186499399139650 description: Full x.com community URL. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/community.json title: x/community data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: banner: description: Optional banner supplied by this operation. Null means unknown. type: - string - 'null' created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' description: description: Source description; null or absent means not supplied. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' is_nsfw: description: Optional is nsfw supplied by this operation. Null means unknown. type: - boolean - 'null' join_policy: description: Optional join policy supplied by this operation. Null means unknown. type: - string - 'null' members: description: Optional members supplied by this operation. Null means unknown. type: - number - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' rule_details: description: Optional rule details supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: description: description: Source description; null or absent means not supplied. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true rules: description: Optional rules supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - banner properties: banner: description: Optional banner supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - created_at properties: created_at: description: Source creation time, not the API retrieval time. type: - string minLength: 1 - required: - description properties: description: description: Source description; null or absent means not supplied. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - is_nsfw properties: is_nsfw: description: Optional is nsfw supplied by this operation. Null means unknown. type: - boolean - required: - join_policy properties: join_policy: description: Optional join policy supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - members properties: members: description: Optional members supplied by this operation. Null means unknown. type: - number - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rule_details properties: rule_details: description: Optional rule details supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: description: description: Source description; null or absent means not supplied. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - rules properties: rules: description: Optional rules supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - banner: example created_at: '2026-09-01T12:00:00Z' description: example id: example is_nsfw: false join_policy: example members: 0 name: example platform: example rule_details: - description: example id: example name: example rules: - example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/community-tweets: get: operationId: x_community_tweets tags: - X summary: Community tweets description: Recent tweets inside an X community with authors and engagement counts. Costs 2 credits per successful live response. parameters: - name: url in: query required: true schema: type: string example: https://x.com/i/communities/1926186499399139650 description: Full x.com community URL. - name: cursor in: query required: false schema: type: string description: Opaque continuation cursor from the preceding response; keep the same community URL. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/community-tweets.json title: x/community-tweets data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: author: description: Public author information supplied with this record. type: - object - 'null' properties: handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' verified_blue: description: Optional verified blue supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' stats: description: Optional stats supplied by this operation. Null means unknown. type: - object - 'null' properties: bookmarks: description: Optional bookmarks supplied by this operation. Null means unknown. type: - number - 'null' likes: description: Optional likes supplied by this operation. Null means unknown. type: - number - 'null' quotes: description: Optional quotes supplied by this operation. Null means unknown. type: - number - 'null' replies: description: Optional replies supplied by this operation. Null means unknown. type: - number - 'null' retweets: description: Optional retweets supplied by this operation. Null means unknown. type: - number - 'null' views: description: Optional views supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true text: description: Source text when supplied. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - author properties: author: description: Public author information supplied with this record. type: - object properties: handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' verified_blue: description: Optional verified blue supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true - required: - created_at properties: created_at: description: Source creation time, not the API retrieval time. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - stats properties: stats: description: Optional stats supplied by this operation. Null means unknown. type: - object properties: bookmarks: description: Optional bookmarks supplied by this operation. Null means unknown. type: - number - 'null' likes: description: Optional likes supplied by this operation. Null means unknown. type: - number - 'null' quotes: description: Optional quotes supplied by this operation. Null means unknown. type: - number - 'null' replies: description: Optional replies supplied by this operation. Null means unknown. type: - number - 'null' retweets: description: Optional retweets supplied by this operation. Null means unknown. type: - number - 'null' views: description: Optional views supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - dropped: 0 items: - author: handle: example id: example name: example verified_blue: false created_at: '2026-09-01T12:00:00Z' id: example platform: example stats: bookmarks: 0 likes: 0 quotes: 0 replies: 0 retweets: 0 views: 0 text: example url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/following: get: operationId: x_following tags: - X summary: Following description: The accounts an X account follows, as profile cards — handle, name, bio, location, follower/following/post counts, join date, avatar — up to 200 a page with cursor pagination. Costs 3 credits per successful live response. parameters: - name: handle in: query required: true schema: type: string example: monzo description: X username without the @. An optional leading @ is accepted and removed before lookup. - name: limit in: query required: false schema: type: string example: '5' description: Requested rows per response, 1–1000. The source may return fewer. Remaining rows from an already purchased page use a saved cursor and cost zero to retrieve for up to one hour; further native source pages use this endpoint’s normal price. - name: cursor in: query required: false schema: type: string example: '' description: Use the returned cursor unchanged, retaining the original query, filters and limit. Saved mlo1. cursors retrieve already purchased rows at zero credits for up to one hour. A native source cursor, when supplied, starts a normally priced source page. Quote with dry_run before continuing. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/following.json title: x/following data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string - 'null' bio: description: Optional bio supplied by this operation. Null means unknown. type: - string - 'null' created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - 'null' following: description: Optional following supplied by this operation. Null means unknown. type: - number - 'null' handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' likes_count: description: Optional likes count supplied by this operation. Null means unknown. type: - number - 'null' location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' protected: description: Optional protected supplied by this operation. Null means unknown. type: - boolean - 'null' tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. type: - string - 'null' verified_legacy: description: Optional verified legacy supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true allOf: - anyOf: - required: - avatar_url properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - bio properties: bio: description: Optional bio supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - created_at properties: created_at: description: Source creation time, not the API retrieval time. type: - string minLength: 1 - required: - followers properties: followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - required: - following properties: following: description: Optional following supplied by this operation. Null means unknown. type: - number - required: - handle properties: handle: description: Optional handle supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - likes_count properties: likes_count: description: Optional likes count supplied by this operation. Null means unknown. type: - number - required: - location properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - protected properties: protected: description: Optional protected supplied by this operation. Null means unknown. type: - boolean - required: - tweets_count properties: tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 - required: - verified_legacy properties: verified_legacy: description: Optional verified legacy supplied by this operation. Null means unknown. type: - boolean page_size: description: Optional page size supplied by this operation. Null means unknown. type: - number - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 cursor: null dropped: 0 handle: example has_more: false items: - avatar_url: https://example.com/example bio: example created_at: '2026-09-01T12:00:00Z' followers: 0 following: 0 handle: example id: example likes_count: 0 location: example name: example platform: example protected: false tweets_count: 0 url: https://example.com/example verified_legacy: false page_size: 0 platform: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/mentions: get: operationId: x_mentions tags: - X summary: Mentions description: 'Public X posts that mention an account, newest first, 20 a page: each as a full post card with its author, counts, media and links, with cursor pagination and an optional date window. Costs 3 credits per successful live response.' parameters: - name: handle in: query required: true schema: type: string example: monzo description: X username without the @. An optional leading @ is accepted and removed before lookup. - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page's cursor field. - name: from_date in: query required: false schema: type: string example: '2026-08-01' description: ISO date lower bound on post time. - name: to_date in: query required: false schema: type: string example: '2026-09-01' description: ISO date upper bound on post time. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/mentions.json title: x/mentions data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. url: type: - string - 'null' description: Original source URL when supplied. platform: type: - string - 'null' description: platform title: type: - string - 'null' description: title text: type: - string - 'null' description: text caption: type: - string - 'null' description: caption created_at: type: - string - 'null' description: created at author: anyOf: - type: - object - 'null' properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. handle: type: - string - 'null' description: handle name: type: - string - 'null' description: name url: type: - string - 'null' description: url headline: type: - string - 'null' description: headline location: type: - string - 'null' description: location avatar_url: type: - string - 'null' description: avatar url followers: type: - number - 'null' description: Public follower count. verified: type: - boolean - 'null' description: Explicit verification flag when supplied. additionalProperties: true - type: - string - 'null' description: Public author handle. stats: type: - object - 'null' properties: likes: type: - number - 'null' description: likes; null is unknown. comments: type: - number - 'null' description: comments; null is unknown. replies: type: - number - 'null' description: replies; null is unknown. shares: type: - number - 'null' description: shares; null is unknown. views: type: - number - 'null' description: views; null is unknown. additionalProperties: true additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - url properties: url: type: - string description: Original source URL when supplied. minLength: 1 - required: - title properties: title: type: - string description: title minLength: 1 - required: - text properties: text: type: - string description: text minLength: 1 - required: - caption properties: caption: type: - string description: caption minLength: 1 - required: - created_at properties: created_at: type: - string description: created at minLength: 1 - required: - author properties: author: anyOf: - type: - object - 'null' properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. handle: type: - string - 'null' description: handle name: type: - string - 'null' description: name url: type: - string - 'null' description: url headline: type: - string - 'null' description: headline location: type: - string - 'null' description: location avatar_url: type: - string - 'null' description: avatar url followers: type: - number - 'null' description: Public follower count. verified: type: - boolean - 'null' description: Explicit verification flag when supplied. additionalProperties: true - type: - string - 'null' description: Public author handle. - required: - stats properties: stats: type: - object properties: likes: type: - number - 'null' description: likes; null is unknown. comments: type: - number - 'null' description: comments; null is unknown. replies: type: - number - 'null' description: replies; null is unknown. shares: type: - number - 'null' description: shares; null is unknown. views: type: - number - 'null' description: views; null is unknown. additionalProperties: true count: type: - number - 'null' description: Returned rows, not the total population. cursor: type: - string - 'null' description: Opaque continuation; pass unchanged. has_more: type: - boolean - 'null' description: Source continuation indicator. total: type: - number - 'null' description: Source-reported total; null means unknown. additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - items: [] cursor: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/profile: get: operationId: x_profile tags: - X summary: Profile description: 'An X account''s public profile: bio, follower and post counts, blue-verification. Costs 1 credit per successful live response.' parameters: - name: handle in: query required: true schema: type: string example: nasa description: X username without the @. An optional leading @ is accepted and removed before lookup. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/profile.json title: x/profile data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. bio: type: - string - 'null' description: Public biography. bio_link: type: - string - 'null' description: Original source URL when supplied. avatar_url: type: - string - 'null' description: Original source URL when supplied. followers: type: - number - 'null' description: Followers reported by the source; null or absent is unknown, not zero. following: type: - number - 'null' description: Following reported by the source; null or absent is unknown, not zero. verified: type: - boolean - 'null' description: Source verification flag; meaning depends on the platform. tweets_count: type: - number - 'null' description: Posts reported by the source; null or absent is unknown, not zero. likes_count: type: - number - 'null' description: Liked posts reported by the source; null or absent is unknown, not zero. verified_blue: type: - boolean - 'null' description: Blue-verification flag. location: type: - string - 'null' description: Account-entered location text, not verified residence. cover_url: type: - string - 'null' description: Original source URL when supplied. _warnings: type: array items: type: string description: Collection limitations or component warnings. Read before interpreting coverage. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - handle properties: handle: type: - string description: Public account username. minLength: 1 - required: - name properties: name: type: - string description: Display name. minLength: 1 - required: - url properties: url: type: - string description: Original source URL when supplied. minLength: 1 - required: - bio properties: bio: type: - string description: Public biography. minLength: 1 - required: - bio_link properties: bio_link: type: - string description: Original source URL when supplied. minLength: 1 - required: - avatar_url properties: avatar_url: type: - string description: Original source URL when supplied. minLength: 1 - required: - followers properties: followers: type: - number description: Followers reported by the source; null or absent is unknown, not zero. - required: - following properties: following: type: - number description: Following reported by the source; null or absent is unknown, not zero. - required: - verified properties: verified: type: - boolean description: Source verification flag; meaning depends on the platform. - required: - tweets_count properties: tweets_count: type: - number description: Posts reported by the source; null or absent is unknown, not zero. - required: - likes_count properties: likes_count: type: - number description: Liked posts reported by the source; null or absent is unknown, not zero. - required: - verified_blue properties: verified_blue: type: - boolean description: Blue-verification flag. - required: - location properties: location: type: - string description: Account-entered location text, not verified residence. minLength: 1 - required: - cover_url properties: cover_url: type: - string description: Original source URL when supplied. minLength: 1 x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - id: '7350000000000000001' handle: example_creator name: Example Creator followers: 12000 following: 180 bio: null verified: false tweets_count: 96 verified_blue: false default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/profile/full: get: operationId: x_profile_full tags: - X summary: X profile with posts (one page) description: 'A real public profile plus one page of posts/videos, preserving original normalized component fields and source order. HTTP 200 may be partial: inspect complete, partial and legs. Failed profile: no posts requested, zero charge. Failed posts: profile retained and only that successful component charged. Cached components use the public cache-hit price. Computed fields summarize the returned page, including available engagement averages and observed posting frequency. Missing metrics remain unknown. Costs 5 credits per successful live response.' parameters: - name: handle in: query required: true schema: type: string example: NASA description: Public profile identifier. LinkedIn accepts /company/name or /in/name URLs. An optional leading @ is accepted and removed before lookup. - name: posts in: query required: false schema: type: string example: '25' description: Desired page size, 1-100. Existing components choose their own page size; the entire single source page is preserved, even if longer or shorter, so no records are skipped between cursors. No automatic extra pages. - name: cursor in: query required: false schema: type: string description: Opaque posts_cursor from the previous response; use posts_pagination.next_params to retain all required context. Unsupported component continuation is refused before calls. - name: include in: query required: false schema: type: string example: posts,computed description: 'CSV: posts and/or computed (default both), or profile alone. Profile is always returned. Computed is arithmetic over this page only, not an AI summary.' - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/profile/full.json title: x/profile/full data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: profile: type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. bio: type: - string - 'null' description: Public biography. bio_link: type: - string - 'null' description: Original source URL when supplied. avatar_url: type: - string - 'null' description: Original source URL when supplied. followers: type: - number - 'null' description: Followers reported by the source; null or absent is unknown, not zero. following: type: - number - 'null' description: Following reported by the source; null or absent is unknown, not zero. verified: type: - boolean - 'null' description: Source verification flag; meaning depends on the platform. tweets_count: type: - number - 'null' description: Posts reported by the source; null or absent is unknown, not zero. likes_count: type: - number - 'null' description: Liked posts reported by the source; null or absent is unknown, not zero. verified_blue: type: - boolean - 'null' description: Blue-verification flag. location: type: - string - 'null' description: Account-entered location text, not verified residence. cover_url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true posts: type: - array - 'null' items: type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. url: type: - string - 'null' description: Original source URL when supplied. text: type: - string - 'null' description: Post text. created_at: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. author: type: - object - 'null' properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true in_reply_to_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. conversation_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. additionalProperties: true computed: type: - object - 'null' properties: sample_size: type: - number - 'null' description: Returned rows reported by the source; null or absent is unknown, not zero. metric_samples: type: object properties: likes: type: - number - 'null' description: Number of usable numeric observations for likes; each metric uses its own available sample. comments: type: - number - 'null' description: Number of usable numeric observations for comments; each metric uses its own available sample. shares: type: - number - 'null' description: Number of usable numeric observations for shares; each metric uses its own available sample. views: type: - number - 'null' description: Number of usable numeric observations for views; each metric uses its own available sample. additionalProperties: true averages: type: object properties: likes: type: - number - 'null' description: Arithmetic mean for likes; each metric uses its own available sample. comments: type: - number - 'null' description: Arithmetic mean for comments; each metric uses its own available sample. shares: type: - number - 'null' description: Arithmetic mean for shares; each metric uses its own available sample. views: type: - number - 'null' description: Arithmetic mean for views; each metric uses its own available sample. additionalProperties: true posting_window: type: object properties: posts_with_timestamps: type: - number - 'null' description: Rows with usable timestamps reported by the source; null or absent is unknown, not zero. start: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. end: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. days: type: - number - 'null' description: Elapsed days between earliest and latest valid timestamps; null with fewer than two dates. additionalProperties: true observed_posts_per_day: type: - number - 'null' description: (posts_with_timestamps - 1) / days; null unless days is positive. This describes the returned page only. additionalProperties: true complete: type: - boolean - 'null' description: All requested components succeeded; not a full-history guarantee. partial: type: - boolean - 'null' description: One or more requested components failed. legs: type: array items: type: object properties: component: type: - string - 'null' description: Component name. endpoint: type: - string - 'null' description: Component route. ok: type: - boolean - 'null' description: Whether usable component data was returned. status: type: - number - 'null' description: Component HTTP status. credits: type: - number - 'null' description: Confirmed component charge. error: type: - string - 'null' description: Public component failure description. additionalProperties: true posts_cursor: type: - string - 'null' description: Returned posts continuation, if available. posts_pagination: type: object properties: requested: type: - number - 'null' description: Desired rows reported by the source; null or absent is unknown, not zero. returned: type: - number - 'null' description: Returned rows reported by the source; null or absent is unknown, not zero. total: type: - number - 'null' description: Source total reported by the source; null or absent is unknown, not zero. has_more: type: - boolean - 'null' description: Source continuation indicator. next_params: type: - object - 'null' properties: handle: type: - string - 'null' description: Account handle. cursor: type: - string - 'null' description: Opaque cursor; pass every supplied next parameter together. additionalProperties: true additionalProperties: true _warnings: type: array items: type: string description: Collection limitations or component warnings. Read before interpreting coverage. additionalProperties: true allOf: - anyOf: - required: - profile properties: profile: type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. bio: type: - string - 'null' description: Public biography. bio_link: type: - string - 'null' description: Original source URL when supplied. avatar_url: type: - string - 'null' description: Original source URL when supplied. followers: type: - number - 'null' description: Followers reported by the source; null or absent is unknown, not zero. following: type: - number - 'null' description: Following reported by the source; null or absent is unknown, not zero. verified: type: - boolean - 'null' description: Source verification flag; meaning depends on the platform. tweets_count: type: - number - 'null' description: Posts reported by the source; null or absent is unknown, not zero. likes_count: type: - number - 'null' description: Liked posts reported by the source; null or absent is unknown, not zero. verified_blue: type: - boolean - 'null' description: Blue-verification flag. location: type: - string - 'null' description: Account-entered location text, not verified residence. cover_url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true - required: - posts properties: posts: type: - array items: type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. url: type: - string - 'null' description: Original source URL when supplied. text: type: - string - 'null' description: Post text. created_at: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. author: type: - object - 'null' properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true in_reply_to_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. conversation_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. additionalProperties: true - required: - computed properties: computed: type: - object properties: sample_size: type: - number - 'null' description: Returned rows reported by the source; null or absent is unknown, not zero. metric_samples: type: object properties: likes: type: - number - 'null' description: Number of usable numeric observations for likes; each metric uses its own available sample. comments: type: - number - 'null' description: Number of usable numeric observations for comments; each metric uses its own available sample. shares: type: - number - 'null' description: Number of usable numeric observations for shares; each metric uses its own available sample. views: type: - number - 'null' description: Number of usable numeric observations for views; each metric uses its own available sample. additionalProperties: true averages: type: object properties: likes: type: - number - 'null' description: Arithmetic mean for likes; each metric uses its own available sample. comments: type: - number - 'null' description: Arithmetic mean for comments; each metric uses its own available sample. shares: type: - number - 'null' description: Arithmetic mean for shares; each metric uses its own available sample. views: type: - number - 'null' description: Arithmetic mean for views; each metric uses its own available sample. additionalProperties: true posting_window: type: object properties: posts_with_timestamps: type: - number - 'null' description: Rows with usable timestamps reported by the source; null or absent is unknown, not zero. start: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. end: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. days: type: - number - 'null' description: Elapsed days between earliest and latest valid timestamps; null with fewer than two dates. additionalProperties: true observed_posts_per_day: type: - number - 'null' description: (posts_with_timestamps - 1) / days; null unless days is positive. This describes the returned page only. additionalProperties: true - required: - legs properties: legs: type: array items: type: object properties: component: type: - string - 'null' description: Component name. endpoint: type: - string - 'null' description: Component route. ok: type: - boolean - 'null' description: Whether usable component data was returned. status: type: - number - 'null' description: Component HTTP status. credits: type: - number - 'null' description: Confirmed component charge. error: type: - string - 'null' description: Public component failure description. additionalProperties: true - required: - posts_cursor properties: posts_cursor: type: - string description: Returned posts continuation, if available. minLength: 1 - required: - posts_pagination properties: posts_pagination: type: object properties: requested: type: - number - 'null' description: Desired rows reported by the source; null or absent is unknown, not zero. returned: type: - number - 'null' description: Returned rows reported by the source; null or absent is unknown, not zero. total: type: - number - 'null' description: Source total reported by the source; null or absent is unknown, not zero. has_more: type: - boolean - 'null' description: Source continuation indicator. next_params: type: - object - 'null' properties: handle: type: - string - 'null' description: Account handle. cursor: type: - string - 'null' description: Opaque cursor; pass every supplied next parameter together. additionalProperties: true additionalProperties: true x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - profile: id: '7350000000000000001' handle: example_creator name: Example Creator followers: 12000 following: 180 bio: null verified: false tweets_count: 96 verified_blue: false posts: - id: '1900000000000000001' text: Our workspace guide is ready. created_at: '2026-09-01T12:00:00.000Z' author: handle: example_creator name: Example Creator stats: likes: 42 retweets: 8 replies: 5 views: null complete: true partial: false posts_cursor: null posts_pagination: returned: 1 has_more: null next_params: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 5 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/quotes: get: operationId: x_quotes tags: - X summary: Quote posts description: 'The posts that quote a public X post, newest first, 20 a page: each as a full post card with quoted_tweet_id set, its author and counts, with cursor pagination and an optional date window. Costs 3 credits per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '1876576540177105257' description: Numeric post id. Pass url instead if you only have the link. - name: url in: query required: false schema: type: string example: https://x.com/monzo/status/1876576540177105257 description: An x.com or twitter.com status link; the id is read from it locally. - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page's cursor field. - name: from_date in: query required: false schema: type: string example: '2026-08-01' description: ISO date lower bound on quote time. - name: to_date in: query required: false schema: type: string example: '2026-09-01' description: ISO date upper bound on quote time. - name: include_replies in: query required: false schema: type: string example: 'true' description: false to leave out quotes that are themselves replies. Default true. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/quotes.json title: x/quotes data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. url: type: - string - 'null' description: Original source URL when supplied. platform: type: - string - 'null' description: platform title: type: - string - 'null' description: title text: type: - string - 'null' description: text caption: type: - string - 'null' description: caption created_at: type: - string - 'null' description: created at author: anyOf: - type: - object - 'null' properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. handle: type: - string - 'null' description: handle name: type: - string - 'null' description: name url: type: - string - 'null' description: url headline: type: - string - 'null' description: headline location: type: - string - 'null' description: location avatar_url: type: - string - 'null' description: avatar url followers: type: - number - 'null' description: Public follower count. verified: type: - boolean - 'null' description: Explicit verification flag when supplied. additionalProperties: true - type: - string - 'null' description: Public author handle. stats: type: - object - 'null' properties: likes: type: - number - 'null' description: likes; null is unknown. comments: type: - number - 'null' description: comments; null is unknown. replies: type: - number - 'null' description: replies; null is unknown. shares: type: - number - 'null' description: shares; null is unknown. views: type: - number - 'null' description: views; null is unknown. additionalProperties: true additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - url properties: url: type: - string description: Original source URL when supplied. minLength: 1 - required: - title properties: title: type: - string description: title minLength: 1 - required: - text properties: text: type: - string description: text minLength: 1 - required: - caption properties: caption: type: - string description: caption minLength: 1 - required: - created_at properties: created_at: type: - string description: created at minLength: 1 - required: - author properties: author: anyOf: - type: - object - 'null' properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. handle: type: - string - 'null' description: handle name: type: - string - 'null' description: name url: type: - string - 'null' description: url headline: type: - string - 'null' description: headline location: type: - string - 'null' description: location avatar_url: type: - string - 'null' description: avatar url followers: type: - number - 'null' description: Public follower count. verified: type: - boolean - 'null' description: Explicit verification flag when supplied. additionalProperties: true - type: - string - 'null' description: Public author handle. - required: - stats properties: stats: type: - object properties: likes: type: - number - 'null' description: likes; null is unknown. comments: type: - number - 'null' description: comments; null is unknown. replies: type: - number - 'null' description: replies; null is unknown. shares: type: - number - 'null' description: shares; null is unknown. views: type: - number - 'null' description: views; null is unknown. additionalProperties: true count: type: - number - 'null' description: Returned rows, not the total population. cursor: type: - string - 'null' description: Opaque continuation; pass unchanged. has_more: type: - boolean - 'null' description: Source continuation indicator. total: type: - number - 'null' description: Source-reported total; null means unknown. additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - items: [] cursor: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/retweeters: get: operationId: x_retweeters tags: - X summary: Retweeters description: The accounts that reposted a public X post, as profile cards with follower counts and join dates, with cursor pagination. Costs 3 credits per successful live response. parameters: - name: id in: query required: true schema: type: string example: '1876576540177105257' description: Numeric post id. Pass url instead if you only have the link. - name: url in: query required: false schema: type: string example: https://x.com/monzo/status/1876576540177105257 description: An x.com or twitter.com status link; the id is read from it locally. - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page's cursor field. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/retweeters.json title: x/retweeters data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Exact source identifier; preserve it as a string. handle: type: - string - 'null' description: handle name: type: - string - 'null' description: name url: type: - string - 'null' description: url headline: type: - string - 'null' description: headline location: type: - string - 'null' description: location avatar_url: type: - string - 'null' description: avatar url followers: type: - number - 'null' description: Public follower count. verified: type: - boolean - 'null' description: Explicit verification flag when supplied. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Exact source identifier; preserve it as a string. minLength: 1 - required: - handle properties: handle: type: - string description: handle minLength: 1 - required: - name properties: name: type: - string description: name minLength: 1 - required: - url properties: url: type: - string description: url minLength: 1 - required: - headline properties: headline: type: - string description: headline minLength: 1 - required: - location properties: location: type: - string description: location minLength: 1 - required: - avatar_url properties: avatar_url: type: - string description: avatar url minLength: 1 - required: - followers properties: followers: type: - number description: Public follower count. - required: - verified properties: verified: type: - boolean description: Explicit verification flag when supplied. count: type: - number - 'null' description: Returned rows, not the total population. cursor: type: - string - 'null' description: Opaque continuation; pass unchanged. has_more: type: - boolean - 'null' description: Source continuation indicator. total: type: - number - 'null' description: Source-reported total; null means unknown. additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - items: [] cursor: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/search-tweets: get: operationId: x_search_tweets tags: - X summary: Search posts description: 'Keyword search over public X posts, newest or top first: text, author card, like/repost/reply/quote/view counts, media, hashtags, mentions and links — 20 posts a page with cursor pagination. Costs 1 credit per successful live response.' parameters: - name: query in: query required: true schema: type: string example: Monzo bank description: 'Search terms. X''s advanced operators work: from:handle, to:handle, lang:en, min_faves:100, "exact phrase", -word.' - name: mode in: query required: false schema: type: string enum: - latest - top example: latest description: 'latest (default) for newest first, top for X''s relevance ranking. Accepted values: latest, top. Case, spaces, hyphens and underscores are interchangeable.' - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page's cursor field. - name: from_date in: query required: false schema: type: string example: '2026-08-01' description: ISO date lower bound (translated to X's since_time operator). - name: to_date in: query required: false schema: type: string example: '2026-09-01' description: ISO date upper bound (translated to X's until_time operator). - name: include_reposts in: query required: false schema: type: string example: 'false' description: Set true to include reposts or false to exclude them. Set this explicitly and preserve it across pages; omitted behavior can differ across sources. - name: sort in: query required: false schema: type: string enum: - latest - top example: latest description: 'Alias for mode: latest or top. mode takes precedence; otherwise sort takes precedence over sort_by. Equivalent spellings share the response cache. Accepted values: latest, top. Case, spaces, hyphens and underscores are interchangeable.' - name: sort_by in: query required: false schema: type: string enum: - latest - top example: top description: 'Alias for mode: latest or top. mode, then sort, take precedence. Equivalent spellings share the response cache. Accepted values: latest, top. Case, spaces, hyphens and underscores are interchangeable.' - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/search-tweets.json title: x/search-tweets data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. url: type: - string - 'null' description: Original source URL when supplied. text: type: - string - 'null' description: Post text. created_at: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. author: type: - object - 'null' properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true in_reply_to_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. conversation_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - url properties: url: type: - string description: Original source URL when supplied. minLength: 1 - required: - text properties: text: type: - string description: Post text. minLength: 1 - required: - created_at properties: created_at: type: - string description: Source publication time, normalized to an ISO date-time when available. minLength: 1 - required: - author properties: author: type: - object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true - required: - stats properties: stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true - required: - in_reply_to_id properties: in_reply_to_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - conversation_id properties: conversation_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 description: Records in this response page. count: type: - number - 'null' description: Returned row count when supplied; not the full source total. cursor: type: - string - 'null' description: Opaque next-page token. A missing token does not prove full history was retrieved. has_more: type: - boolean - 'null' description: Source continuation indicator; null means unknown. _warnings: type: array items: type: string description: Collection limitations or component warnings. Read before interpreting coverage. additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - items: - id: '1900000000000000001' text: Our workspace guide is ready. created_at: '2026-09-01T12:00:00.000Z' author: handle: example_creator name: Example Creator stats: likes: 42 retweets: 8 replies: 5 views: null cursor: null has_more: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/tweet: get: operationId: x_tweet tags: - X summary: Post details description: 'One X post: text, author and current engagement counts. Costs 1 credit per successful live response.' parameters: - name: url in: query required: true schema: type: string example: https://x.com/nasa/status/2095621168208248911 description: Full X post URL. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/tweet.json title: x/tweet data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. url: type: - string - 'null' description: Original source URL when supplied. text: type: - string - 'null' description: Post text. created_at: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. author: type: - object - 'null' properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true in_reply_to_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. conversation_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. _warnings: type: array items: type: string description: Collection limitations or component warnings. Read before interpreting coverage. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - url properties: url: type: - string description: Original source URL when supplied. minLength: 1 - required: - text properties: text: type: - string description: Post text. minLength: 1 - required: - created_at properties: created_at: type: - string description: Source publication time, normalized to an ISO date-time when available. minLength: 1 - required: - author properties: author: type: - object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true - required: - stats properties: stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true - required: - in_reply_to_id properties: in_reply_to_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - conversation_id properties: conversation_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - id: '1900000000000000001' text: Our workspace guide is ready. created_at: '2026-09-01T12:00:00.000Z' author: handle: example_creator name: Example Creator stats: likes: 42 retweets: 8 replies: 5 views: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/tweet-replies: get: operationId: x_tweet_replies tags: - X summary: Post replies description: 'The replies under a public X post, newest first, 20 a page: each reply as a full post card with its author, counts and in_reply_to_id / conversation_id so threads can be rebuilt. Costs 5 credits per successful live response.' parameters: - name: id in: query required: true schema: type: string example: '1876576540177105257' description: Numeric post id. Pass url instead if you only have the link. - name: url in: query required: false schema: type: string example: https://x.com/monzo/status/1876576540177105257 description: An x.com or twitter.com status link; the id is read from it locally. - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page's cursor field. - name: from_date in: query required: false schema: type: string example: '2026-08-01' description: ISO date lower bound on reply time. - name: to_date in: query required: false schema: type: string example: '2026-09-01' description: ISO date upper bound on reply time. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/tweet-replies.json title: x/tweet-replies data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. url: type: - string - 'null' description: Original source URL when supplied. text: type: - string - 'null' description: Post text. created_at: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. author: type: - object - 'null' properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true in_reply_to_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. conversation_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - url properties: url: type: - string description: Original source URL when supplied. minLength: 1 - required: - text properties: text: type: - string description: Post text. minLength: 1 - required: - created_at properties: created_at: type: - string description: Source publication time, normalized to an ISO date-time when available. minLength: 1 - required: - author properties: author: type: - object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true - required: - stats properties: stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true - required: - in_reply_to_id properties: in_reply_to_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - conversation_id properties: conversation_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 description: Records in this response page. count: type: - number - 'null' description: Returned row count when supplied; not the full source total. cursor: type: - string - 'null' description: Opaque next-page token. A missing token does not prove full history was retrieved. has_more: type: - boolean - 'null' description: Source continuation indicator; null means unknown. _warnings: type: array items: type: string description: Collection limitations or component warnings. Read before interpreting coverage. additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - items: - id: '1900000000000000001' text: Our workspace guide is ready. created_at: '2026-09-01T12:00:00.000Z' author: handle: example_creator name: Example Creator stats: likes: 42 retweets: 8 replies: 5 views: null cursor: null has_more: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 5 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/tweet-transcript: get: operationId: x_tweet_transcript tags: - X summary: Video transcript description: The spoken words of a video in an X post as text. transcript is null when the video has no speech or captions — that is the honest answer, not an error. Costs 5 credits per successful live response. parameters: - name: url in: query required: true schema: type: string example: https://x.com/TheoVon/status/1916982720317821050 description: Full X post URL containing a video under ~2 minutes. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/tweet-transcript.json title: x/tweet-transcript data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: has_transcript: description: Optional has transcript supplied by this operation. Null means unknown. type: - boolean - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' transcript: description: Optional transcript supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - has_transcript properties: has_transcript: description: Optional has transcript supplied by this operation. Null means unknown. type: - boolean - required: - transcript properties: transcript: description: Optional transcript supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - has_transcript: false platform: example transcript: example url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 5 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/tweets: get: operationId: x_tweets tags: - X summary: Recent posts description: Recent posts for an X account with like, repost, reply and view counts. Costs 3 credits per successful live response. parameters: - name: handle in: query required: true schema: type: string example: nasa description: X username without the @. An optional leading @ is accepted and removed before lookup. - name: cursor in: query required: false schema: type: string description: Opaque cursor from the previous page. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/tweets.json title: x/tweets data fields description: Required core structure for successful data, with optional source fields. Additional fields are allowed. This is not a completeness guarantee. type: object properties: items: type: array items: type: object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. url: type: - string - 'null' description: Original source URL when supplied. text: type: - string - 'null' description: Post text. created_at: type: - string - 'null' description: Source publication time, normalized to an ISO date-time when available. author: type: - object - 'null' properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true in_reply_to_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. conversation_id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. additionalProperties: true allOf: - anyOf: - required: - id properties: id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - url properties: url: type: - string description: Original source URL when supplied. minLength: 1 - required: - text properties: text: type: - string description: Post text. minLength: 1 - required: - created_at properties: created_at: type: - string description: Source publication time, normalized to an ISO date-time when available. minLength: 1 - required: - author properties: author: type: - object properties: id: type: - string - 'null' description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. handle: type: - string - 'null' description: Public account username. name: type: - string - 'null' description: Display name. url: type: - string - 'null' description: Original source URL when supplied. additionalProperties: true - required: - stats properties: stats: type: object properties: likes: type: - number - 'null' description: likes reported by the source; null or absent is unknown, not zero. retweets: type: - number - 'null' description: retweets reported by the source; null or absent is unknown, not zero. replies: type: - number - 'null' description: replies reported by the source; null or absent is unknown, not zero. quotes: type: - number - 'null' description: quotes reported by the source; null or absent is unknown, not zero. bookmarks: type: - number - 'null' description: bookmarks reported by the source; null or absent is unknown, not zero. views: type: - number - 'null' description: views reported by the source; null or absent is unknown, not zero. additionalProperties: true - required: - in_reply_to_id properties: in_reply_to_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 - required: - conversation_id properties: conversation_id: type: - string description: Source identifier. Preserve its exact string value; do not convert large IDs to numbers. minLength: 1 description: Records in this response page. count: type: - number - 'null' description: Returned row count when supplied; not the full source total. cursor: type: - string - 'null' description: Opaque next-page token. A missing token does not prove full history was retrieved. has_more: type: - boolean - 'null' description: Source continuation indicator; null means unknown. _warnings: type: array items: type: string description: Collection limitations or component warnings. Read before interpreting coverage. additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - items: - id: '1900000000000000001' text: Our workspace guide is ready. created_at: '2026-09-01T12:00:00.000Z' author: handle: example_creator name: Example Creator stats: likes: 42 retweets: 8 replies: 5 views: null cursor: null has_more: null default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/user-followers: get: operationId: x_user_followers tags: - X summary: Followers description: An X account's followers as profile cards — handle, name, bio, location, follower/following/post counts, join date, avatar — up to 200 a page with cursor pagination. Costs 3 credits per successful live response. parameters: - name: handle in: query required: true schema: type: string example: monzo description: X username without the @. An optional leading @ is accepted and removed before lookup. - name: limit in: query required: false schema: type: string example: '5' description: Requested rows per response, 1–1000. The source may return fewer. Remaining rows from an already purchased page use a saved cursor and cost zero to retrieve for up to one hour; further native source pages use this endpoint’s normal price. - name: cursor in: query required: false schema: type: string example: '' description: Use the returned cursor unchanged, retaining the original query, filters and limit. Saved mlo1. cursors retrieve already purchased rows at zero credits for up to one hour. A native source cursor, when supplied, starts a normally priced source page. Quote with dry_run before continuing. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/user-followers.json title: x/user-followers data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string - 'null' bio: description: Optional bio supplied by this operation. Null means unknown. type: - string - 'null' created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - 'null' following: description: Optional following supplied by this operation. Null means unknown. type: - number - 'null' handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' likes_count: description: Optional likes count supplied by this operation. Null means unknown. type: - number - 'null' location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' protected: description: Optional protected supplied by this operation. Null means unknown. type: - boolean - 'null' tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. type: - string - 'null' verified_legacy: description: Optional verified legacy supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true allOf: - anyOf: - required: - avatar_url properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - bio properties: bio: description: Optional bio supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - created_at properties: created_at: description: Source creation time, not the API retrieval time. type: - string minLength: 1 - required: - followers properties: followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - required: - following properties: following: description: Optional following supplied by this operation. Null means unknown. type: - number - required: - handle properties: handle: description: Optional handle supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - likes_count properties: likes_count: description: Optional likes count supplied by this operation. Null means unknown. type: - number - required: - location properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - protected properties: protected: description: Optional protected supplied by this operation. Null means unknown. type: - boolean - required: - tweets_count properties: tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 - required: - verified_legacy properties: verified_legacy: description: Optional verified legacy supplied by this operation. Null means unknown. type: - boolean page_size: description: Optional page size supplied by this operation. Null means unknown. type: - number - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 cursor: null dropped: 0 handle: example has_more: false items: - avatar_url: https://example.com/example bio: example created_at: '2026-09-01T12:00:00Z' followers: 0 following: 0 handle: example id: example likes_count: 0 location: example name: example platform: example protected: false tweets_count: 0 url: https://example.com/example verified_legacy: false page_size: 0 platform: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/user-media: get: operationId: x_user_media tags: - X summary: Media posts description: 'An X account''s own posts that carry photos or video (replies left out), newest first: each as a full post card with its media urls, counts and author. A page covers 20 posts and `scanned` says how many were read, so a short page means few media posts in that stretch, not the end. Costs 3 credits per successful live response.' parameters: - name: handle in: query required: true schema: type: string example: monzo description: X username without the @. An optional leading @ is accepted and removed before lookup. - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page's cursor field. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/user-media.json title: x/user-media data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: author: description: Public author information supplied with this record. type: - object - 'null' properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string - 'null' bio: description: Optional bio supplied by this operation. Null means unknown. type: - string - 'null' bio_link: description: Optional bio link supplied by this operation. Null means unknown. type: - string - 'null' cover_url: description: Optional cover url supplied by this operation. Null means unknown. type: - string - 'null' created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - 'null' following: description: Optional following supplied by this operation. Null means unknown. type: - number - 'null' handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. type: - string - 'null' verified_blue: description: Optional verified blue supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' duration_s: description: Optional duration s supplied by this operation. Null means unknown. type: - number - 'null' engagement: description: Optional engagement supplied by this operation. Null means unknown. type: - object - 'null' properties: likes: description: Optional likes supplied by this operation. Null means unknown. type: - number - 'null' replies: description: Optional replies supplied by this operation. Null means unknown. type: - number - 'null' reposts: description: Optional reposts supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true hashtags: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' images: description: Optional images supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' lang: description: Optional lang supplied by this operation. Null means unknown. type: - string - 'null' links: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} media: description: Optional media supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true media_urls: description: Optional media urls supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' mentions: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' reply: description: Optional reply supplied by this operation. Null means unknown. type: - object - 'null' properties: conversation_id: description: Optional conversation id supplied by this operation. Null means unknown. type: - string - 'null' is_reply: description: Optional is reply supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true source: description: Optional source supplied by this operation. Null means unknown. type: - string - 'null' stats: description: Optional stats supplied by this operation. Null means unknown. type: - object - 'null' properties: bookmarks: description: Optional bookmarks supplied by this operation. Null means unknown. type: - number - 'null' likes: description: Optional likes supplied by this operation. Null means unknown. type: - number - 'null' quotes: description: Optional quotes supplied by this operation. Null means unknown. type: - number - 'null' replies: description: Optional replies supplied by this operation. Null means unknown. type: - number - 'null' retweets: description: Optional retweets supplied by this operation. Null means unknown. type: - number - 'null' views: description: Optional views supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true text: description: Source text when supplied. type: - string - 'null' thumbnail_url: description: Optional thumbnail url supplied by this operation. Null means unknown. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' video_url: description: Optional video url supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - author properties: author: description: Public author information supplied with this record. type: - object properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string - 'null' bio: description: Optional bio supplied by this operation. Null means unknown. type: - string - 'null' bio_link: description: Optional bio link supplied by this operation. Null means unknown. type: - string - 'null' cover_url: description: Optional cover url supplied by this operation. Null means unknown. type: - string - 'null' created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - 'null' following: description: Optional following supplied by this operation. Null means unknown. type: - number - 'null' handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. type: - string - 'null' verified_blue: description: Optional verified blue supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true - required: - created_at properties: created_at: description: Source creation time, not the API retrieval time. type: - string minLength: 1 - required: - duration_s properties: duration_s: description: Optional duration s supplied by this operation. Null means unknown. type: - number - required: - engagement properties: engagement: description: Optional engagement supplied by this operation. Null means unknown. type: - object properties: likes: description: Optional likes supplied by this operation. Null means unknown. type: - number - 'null' replies: description: Optional replies supplied by this operation. Null means unknown. type: - number - 'null' reposts: description: Optional reposts supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - hashtags properties: hashtags: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - images properties: images: description: Optional images supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - lang properties: lang: description: Optional lang supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - links properties: links: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - media properties: media: description: Optional media supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true - required: - media_urls properties: media_urls: description: Optional media urls supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - mentions properties: mentions: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - reply properties: reply: description: Optional reply supplied by this operation. Null means unknown. type: - object properties: conversation_id: description: Optional conversation id supplied by this operation. Null means unknown. type: - string - 'null' is_reply: description: Optional is reply supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true - required: - source properties: source: description: Optional source supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - stats properties: stats: description: Optional stats supplied by this operation. Null means unknown. type: - object properties: bookmarks: description: Optional bookmarks supplied by this operation. Null means unknown. type: - number - 'null' likes: description: Optional likes supplied by this operation. Null means unknown. type: - number - 'null' quotes: description: Optional quotes supplied by this operation. Null means unknown. type: - number - 'null' replies: description: Optional replies supplied by this operation. Null means unknown. type: - number - 'null' retweets: description: Optional retweets supplied by this operation. Null means unknown. type: - number - 'null' views: description: Optional views supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 - required: - thumbnail_url properties: thumbnail_url: description: Optional thumbnail url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 - required: - video_url properties: video_url: description: Optional video url supplied by this operation. Null means unknown. type: - string minLength: 1 additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 cursor: null dropped: 0 has_more: false items: - author: avatar_url: https://example.com/example bio: example bio_link: https://example.com/example cover_url: https://example.com/example created_at: '2026-09-01T12:00:00Z' followers: 0 following: 0 handle: example id: example location: example name: example platform: example tweets_count: 0 url: https://example.com/example verified_blue: false created_at: '2026-09-01T12:00:00Z' duration_s: 0 engagement: likes: 0 replies: 0 reposts: 0 hashtags: [] id: example images: - example lang: example links: [] media: - {} media_urls: - example mentions: [] platform: example reply: conversation_id: example is_reply: false source: example stats: bookmarks: 0 likes: 0 quotes: 0 replies: 0 retweets: 0 views: 0 text: example thumbnail_url: https://example.com/example url: https://example.com/example video_url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 3 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/x/user-search: get: operationId: x_user_search tags: - X summary: Search accounts description: 'Keyword search over X accounts: profile cards with handle, name, bio, location, follower/following/post counts, join date and avatar, with cursor pagination. Costs 1 credit per successful live response.' parameters: - name: query in: query required: true schema: type: string example: fintech founder description: Keywords matched against account names, handles and bios. - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page's cursor field. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: judgments in: query required: false schema: type: string enum: - 'on' - 'off' example: 'on' description: 'Add bounded AI labels to eligible returned records (default on). off preserves the original data shape. Unclassified records remain present; labels depend on evidence, time, capacity and the existing request budget. No label surcharge. Accepted values: on, off. Case, spaces, hyphens and underscores are interchangeable.' - name: label in: query required: false schema: type: string enum: - default - none example: none description: 'Set none to disable labels; default enables the endpoint’s label set. Equivalent to judgments=off. Accepted values: default, none. Case, spaces, hyphens and underscores are interchangeable.' - name: label_evidence in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Include exact supporting sentences and zero-based sentence indexes when a label has validated evidence. No extra charge or change to decisions. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: exclude in: query required: false schema: type: string enum: - engagement_bait example: engagement_bait description: 'Optionally remove confidently labelled engagement bait. Uncertain and unclassified records stay; removed IDs and an owner-bound recall reference are returned. Accepted values: engagement_bait. Case, spaces, hyphens and underscores are interchangeable.' - name: fit in: query required: false schema: type: string enum: - goal example: goal description: 'Use goal to replace confidently irrelevant records with recall stubs. Keeps first, last, relevant and uncertain records; preserves order. Full evidence is stored for 24 hours when available. Accepted values: goal. Case, spaces, hyphens and underscores are interchangeable.' - name: goal in: query required: false schema: type: string example: Find concrete product complaints description: 'Required with fit=goal: describe the task in at most 600 characters. Supplied text is task context, never permission to act on posts.' - name: tokens in: query required: false schema: type: string example: '4000' description: Optional soft response target for fit=goal, 256–32000. Safety and evidence retention take priority, so the returned result may exceed it. - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/x/user-search.json title: x/user-search data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string - 'null' bio: description: Optional bio supplied by this operation. Null means unknown. type: - string - 'null' created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - 'null' following: description: Optional following supplied by this operation. Null means unknown. type: - number - 'null' handle: description: Optional handle supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' likes_count: description: Optional likes count supplied by this operation. Null means unknown. type: - number - 'null' location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' protected: description: Optional protected supplied by this operation. Null means unknown. type: - boolean - 'null' tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. type: - string - 'null' verified_blue: description: Optional verified blue supplied by this operation. Null means unknown. type: - boolean - 'null' verified_legacy: description: Optional verified legacy supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true allOf: - anyOf: - required: - avatar_url properties: avatar_url: description: Optional avatar url supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - bio properties: bio: description: Optional bio supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - created_at properties: created_at: description: Source creation time, not the API retrieval time. type: - string minLength: 1 - required: - followers properties: followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - required: - following properties: following: description: Optional following supplied by this operation. Null means unknown. type: - number - required: - handle properties: handle: description: Optional handle supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - likes_count properties: likes_count: description: Optional likes count supplied by this operation. Null means unknown. type: - number - required: - location properties: location: description: Optional location supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - name properties: name: description: Optional name supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - protected properties: protected: description: Optional protected supplied by this operation. Null means unknown. type: - boolean - required: - tweets_count properties: tweets_count: description: Optional tweets count supplied by this operation. Null means unknown. type: - number - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 - required: - verified_blue properties: verified_blue: description: Optional verified blue supplied by this operation. Null means unknown. type: - boolean - required: - verified_legacy properties: verified_legacy: description: Optional verified legacy supplied by this operation. Null means unknown. type: - boolean query: description: Optional query supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 cursor: null dropped: 0 has_more: false items: - avatar_url: https://example.com/example bio: example created_at: '2026-09-01T12:00:00Z' followers: 0 following: 0 handle: example id: example likes_count: 0 location: example name: example platform: example protected: false tweets_count: 0 url: https://example.com/example verified_blue: false verified_legacy: false query: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 1 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true components: schemas: Error: type: object required: - success - error - credits_used - request_id properties: success: const: false error: type: object required: - type - message - status properties: type: type: string enum: - UNAUTHORIZED - KEY_REVOKED - KEY_LIMIT_EXCEEDED - RATE_LIMITED - INSUFFICIENT_CREDITS - RESOURCE_NOT_FOUND - INVALID_PARAMETERS - TARGET_ACCESS_DENIED - UPSTREAM_ERROR - UPSTREAM_TIMEOUT - FREE_CAPACITY_UNAVAILABLE - CAPACITY_UNAVAILABLE - ENDPOINT_NOT_FOUND - ENDPOINT_NOT_AVAILABLE - FAIR_USE_EXCEEDED - INTERNAL_ERROR message: type: string status: type: integer doc_url: type: string description: Deep link to the exact section of the errors guide for this type. details: type: object credits_used: type: - integer - 'null' description: Confirmed net charge; null when billing is pending reconciliation. Inspect error.details.billing_status and retain request_id. credits_remaining: type: integer request_id: type: string Success: type: object required: - success - platform - endpoint - data - credits_used - credits_remaining - request_id properties: _completeness: type: object description: Reported response completeness, not a guarantee of complete platform history. Missing source assertions remain unknown. properties: state: type: string enum: - complete - partial - unknown scope: type: string inspection_limited: type: boolean success: const: true platform: type: string endpoint: type: string description: The resolved path, e.g. `/v1/github/profile`. data: description: Amazon responses include marketplace.country and marketplace.domain (resolved request marketplace, UK by default). X profiles preserve location, bio_link and cover_url when supplied. TikTok profiles preserve commerce_user, seller, region, location and business_category when supplied; region identifies the account region rather than personal residence. TikTok comments use platform_default selection, which can change between fetches; keep the same video and options when following cursors. Amazon review variant is readable text. Facebook profiles preserve cover_url, following and created_at when supplied; likes_count and followers are distinct and follower totals may be rounded. Endpoint-specific normalized payload, not one universal post/profile schema. Many lists use items/count/cursor; a null cursor means no usable next cursor was supplied, not proof that all history was retrieved. Check has_more and warnings where present. Social full-profile bundles use posts_cursor and posts_pagination.next_params; retain all returned next parameters. YouTube channel bundles instead use recent_videos, cursor and recent_videos_pagination. Inspect complete/partial/legs where supplied for bounded or failed components. Optional model-derived fields are labelled, not source facts. credits_used: type: integer credits_remaining: type: integer request_id: type: string cached: type: boolean stale: type: boolean description: True only for an explicitly labelled, zero-credit reference snapshot served after a temporary upstream failure. age_seconds: type: integer minimum: 0 description: Age of a stale snapshot since its original retrieval; not reset by outage recovery. fetched_at: type: string format: date-time description: Original retrieval time of a stale snapshot, in UTC. synthetic: type: boolean description: Present and true only on the explicitly requested /sandbox surface. Synthetic responses are representative and charged 0 credits; production /v1 never returns them. degraded: type: boolean description: Reserved for sandbox compatibility. Production /v1 reports upstream failure as an error and never serves a representative fallback. securitySchemes: ApiKeyHeader: type: apiKey in: header name: x-api-key description: Your API key (`mn_…`), from the console. The recommended style. BearerKey: type: http scheme: bearer description: The same key as a Bearer token, for clients that only expose an Authorization field. Keys are never accepted in the query string — URLs leak into logs and referrers. x-provenance: method: harvested publisher: Monocrawl source: https://www.monocrawl.com/openapi.json note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)