# Endpoint response schemas

Use the field reference on each endpoint page to understand the payload before building your integration. The same definitions are published as JSON Schema and embedded in OpenAPI.

## Validate the payload you actually receive

The schemas below describe reviewed core fields of `response.data`, not the complete envelope. They use JSON Schema 2020-12. Field tables, illustrative examples, downloadable schemas and the corresponding [OpenAPI 3.1 document](https://www.monocrawl.com/openapi.json) share one definition.

Core fields are optional because sources can omit them. A type containing `null` also allows an explicit unknown value. Absence and null do not mean zero, false or an empty string. Nested objects have their own optional fields. Additional fields are allowed so an additive source field does not break your client.

Validation catches a known field with the wrong type. It does not prove freshness, completeness, availability or that a field your application needs was supplied. Add application-level checks for your own requirements, such as a usable post URL before requesting comments. Keep identifiers as strings, retain currency with money, and read each field’s units.

**JavaScript · using an installed JSON Schema validator**

```
// npm install ajv
import Ajv2020 from 'ajv/dist/2020.js';
const schemaResponse = await fetch(
  'https://www.monocrawl.com/schemas/tiktok/profile.json'
);
if (!schemaResponse.ok) throw new Error('Schema unavailable');
const validate = new Ajv2020({ strict: false }).compile(await schemaResponse.json());
// response is the parsed envelope from your API request.
if (response.success && !validate(response.data)) {
  console.error(validate.errors); // field paths, not credentials or raw payloads
}
```

## Reviewed endpoint coverage

68 endpoint payloads across 13 platforms are covered below, including social, professional-network, developer, app-store and commerce data. Examples are fictional and abbreviated. Endpoints outside this list retain the common envelope reference; these schemas do not claim to validate their payloads or every optional source extension. MCP discovery returns a null response_schema for endpoints without a reviewed field contract.

| Endpoint and fields | Download |
| --- | --- |
| [`amazon/product`](https://www.monocrawl.com/docs/endpoints/amazon/product) | [JSON Schema](https://www.monocrawl.com/schemas/amazon/product.json) |
| [`amazon/reviews`](https://www.monocrawl.com/docs/endpoints/amazon/reviews) | [JSON Schema](https://www.monocrawl.com/schemas/amazon/reviews.json) |
| [`amazon/search`](https://www.monocrawl.com/docs/endpoints/amazon/search) | [JSON Schema](https://www.monocrawl.com/schemas/amazon/search.json) |
| [`amazon/sellers`](https://www.monocrawl.com/docs/endpoints/amazon/sellers) | [JSON Schema](https://www.monocrawl.com/schemas/amazon/sellers.json) |
| [`app_store/app-info`](https://www.monocrawl.com/docs/endpoints/app_store/app-info) | [JSON Schema](https://www.monocrawl.com/schemas/app_store/app-info.json) |
| [`app_store/app-search`](https://www.monocrawl.com/docs/endpoints/app_store/app-search) | [JSON Schema](https://www.monocrawl.com/schemas/app_store/app-search.json) |
| [`bluesky/post`](https://www.monocrawl.com/docs/endpoints/bluesky/post) | [JSON Schema](https://www.monocrawl.com/schemas/bluesky/post.json) |
| [`bluesky/profile`](https://www.monocrawl.com/docs/endpoints/bluesky/profile) | [JSON Schema](https://www.monocrawl.com/schemas/bluesky/profile.json) |
| [`bluesky/search`](https://www.monocrawl.com/docs/endpoints/bluesky/search) | [JSON Schema](https://www.monocrawl.com/schemas/bluesky/search.json) |
| [`bluesky/user/posts`](https://www.monocrawl.com/docs/endpoints/bluesky/user/posts) | [JSON Schema](https://www.monocrawl.com/schemas/bluesky/user/posts.json) |
| [`facebook/post`](https://www.monocrawl.com/docs/endpoints/facebook/post) | [JSON Schema](https://www.monocrawl.com/schemas/facebook/post.json) |
| [`facebook/post-comments`](https://www.monocrawl.com/docs/endpoints/facebook/post-comments) | [JSON Schema](https://www.monocrawl.com/schemas/facebook/post-comments.json) |
| [`facebook/posts`](https://www.monocrawl.com/docs/endpoints/facebook/posts) | [JSON Schema](https://www.monocrawl.com/schemas/facebook/posts.json) |
| [`facebook/profile`](https://www.monocrawl.com/docs/endpoints/facebook/profile) | [JSON Schema](https://www.monocrawl.com/schemas/facebook/profile.json) |
| [`github/issue`](https://www.monocrawl.com/docs/endpoints/github/issue) | [JSON Schema](https://www.monocrawl.com/schemas/github/issue.json) |
| [`github/issue/comments`](https://www.monocrawl.com/docs/endpoints/github/issue/comments) | [JSON Schema](https://www.monocrawl.com/schemas/github/issue/comments.json) |
| [`github/profile`](https://www.monocrawl.com/docs/endpoints/github/profile) | [JSON Schema](https://www.monocrawl.com/schemas/github/profile.json) |
| [`github/profile/repos`](https://www.monocrawl.com/docs/endpoints/github/profile/repos) | [JSON Schema](https://www.monocrawl.com/schemas/github/profile/repos.json) |
| [`github/repo`](https://www.monocrawl.com/docs/endpoints/github/repo) | [JSON Schema](https://www.monocrawl.com/schemas/github/repo.json) |
| [`github/repo/issues`](https://www.monocrawl.com/docs/endpoints/github/repo/issues) | [JSON Schema](https://www.monocrawl.com/schemas/github/repo/issues.json) |
| [`google_play/app-info`](https://www.monocrawl.com/docs/endpoints/google_play/app-info) | [JSON Schema](https://www.monocrawl.com/schemas/google_play/app-info.json) |
| [`google_play/app-reviews`](https://www.monocrawl.com/docs/endpoints/google_play/app-reviews) | [JSON Schema](https://www.monocrawl.com/schemas/google_play/app-reviews.json) |
| [`google_play/app-search`](https://www.monocrawl.com/docs/endpoints/google_play/app-search) | [JSON Schema](https://www.monocrawl.com/schemas/google_play/app-search.json) |
| [`hackernews/search`](https://www.monocrawl.com/docs/endpoints/hackernews/search) | [JSON Schema](https://www.monocrawl.com/schemas/hackernews/search.json) |
| [`hackernews/story`](https://www.monocrawl.com/docs/endpoints/hackernews/story) | [JSON Schema](https://www.monocrawl.com/schemas/hackernews/story.json) |
| [`hackernews/story/comments`](https://www.monocrawl.com/docs/endpoints/hackernews/story/comments) | [JSON Schema](https://www.monocrawl.com/schemas/hackernews/story/comments.json) |
| [`instagram/comment-replies`](https://www.monocrawl.com/docs/endpoints/instagram/comment-replies) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/comment-replies.json) |
| [`instagram/engagement`](https://www.monocrawl.com/docs/endpoints/instagram/engagement) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/engagement.json) |
| [`instagram/post`](https://www.monocrawl.com/docs/endpoints/instagram/post) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/post.json) |
| [`instagram/post-comments`](https://www.monocrawl.com/docs/endpoints/instagram/post-comments) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/post-comments.json) |
| [`instagram/posts`](https://www.monocrawl.com/docs/endpoints/instagram/posts) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/posts.json) |
| [`instagram/profile`](https://www.monocrawl.com/docs/endpoints/instagram/profile) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/profile.json) |
| [`instagram/profile/full`](https://www.monocrawl.com/docs/endpoints/instagram/profile/full) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/profile/full.json) |
| [`instagram/reels`](https://www.monocrawl.com/docs/endpoints/instagram/reels) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/reels.json) |
| [`instagram/search-profiles`](https://www.monocrawl.com/docs/endpoints/instagram/search-profiles) | [JSON Schema](https://www.monocrawl.com/schemas/instagram/search-profiles.json) |
| [`linkedin/company`](https://www.monocrawl.com/docs/endpoints/linkedin/company) | [JSON Schema](https://www.monocrawl.com/schemas/linkedin/company.json) |
| [`linkedin/company-posts`](https://www.monocrawl.com/docs/endpoints/linkedin/company-posts) | [JSON Schema](https://www.monocrawl.com/schemas/linkedin/company-posts.json) |
| [`linkedin/post`](https://www.monocrawl.com/docs/endpoints/linkedin/post) | [JSON Schema](https://www.monocrawl.com/schemas/linkedin/post.json) |
| [`reddit/post`](https://www.monocrawl.com/docs/endpoints/reddit/post) | [JSON Schema](https://www.monocrawl.com/schemas/reddit/post.json) |
| [`reddit/post/comments`](https://www.monocrawl.com/docs/endpoints/reddit/post/comments) | [JSON Schema](https://www.monocrawl.com/schemas/reddit/post/comments.json) |
| [`reddit/search`](https://www.monocrawl.com/docs/endpoints/reddit/search) | [JSON Schema](https://www.monocrawl.com/schemas/reddit/search.json) |
| [`reddit/subreddit`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit) | [JSON Schema](https://www.monocrawl.com/schemas/reddit/subreddit.json) |
| [`reddit/subreddit/search`](https://www.monocrawl.com/docs/endpoints/reddit/subreddit/search) | [JSON Schema](https://www.monocrawl.com/schemas/reddit/subreddit/search.json) |
| [`reddit/user-posts`](https://www.monocrawl.com/docs/endpoints/reddit/user-posts) | [JSON Schema](https://www.monocrawl.com/schemas/reddit/user-posts.json) |
| [`tiktok/comment-replies`](https://www.monocrawl.com/docs/endpoints/tiktok/comment-replies) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/comment-replies.json) |
| [`tiktok/post`](https://www.monocrawl.com/docs/endpoints/tiktok/post) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/post.json) |
| [`tiktok/post-comments`](https://www.monocrawl.com/docs/endpoints/tiktok/post-comments) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/post-comments.json) |
| [`tiktok/profile`](https://www.monocrawl.com/docs/endpoints/tiktok/profile) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/profile.json) |
| [`tiktok/profile-videos`](https://www.monocrawl.com/docs/endpoints/tiktok/profile-videos) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/profile-videos.json) |
| [`tiktok/profile/full`](https://www.monocrawl.com/docs/endpoints/tiktok/profile/full) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/profile/full.json) |
| [`tiktok/search`](https://www.monocrawl.com/docs/endpoints/tiktok/search) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/search.json) |
| [`tiktok/search-hashtag`](https://www.monocrawl.com/docs/endpoints/tiktok/search-hashtag) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/search-hashtag.json) |
| [`tiktok/search-top`](https://www.monocrawl.com/docs/endpoints/tiktok/search-top) | [JSON Schema](https://www.monocrawl.com/schemas/tiktok/search-top.json) |
| [`x/profile`](https://www.monocrawl.com/docs/endpoints/x/profile) | [JSON Schema](https://www.monocrawl.com/schemas/x/profile.json) |
| [`x/profile/full`](https://www.monocrawl.com/docs/endpoints/x/profile/full) | [JSON Schema](https://www.monocrawl.com/schemas/x/profile/full.json) |
| [`x/search-tweets`](https://www.monocrawl.com/docs/endpoints/x/search-tweets) | [JSON Schema](https://www.monocrawl.com/schemas/x/search-tweets.json) |
| [`x/tweet`](https://www.monocrawl.com/docs/endpoints/x/tweet) | [JSON Schema](https://www.monocrawl.com/schemas/x/tweet.json) |
| [`x/tweet-replies`](https://www.monocrawl.com/docs/endpoints/x/tweet-replies) | [JSON Schema](https://www.monocrawl.com/schemas/x/tweet-replies.json) |
| [`x/tweets`](https://www.monocrawl.com/docs/endpoints/x/tweets) | [JSON Schema](https://www.monocrawl.com/schemas/x/tweets.json) |
| [`youtube/channel`](https://www.monocrawl.com/docs/endpoints/youtube/channel) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/channel.json) |
| [`youtube/channel/videos`](https://www.monocrawl.com/docs/endpoints/youtube/channel/videos) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/channel/videos.json) |
| [`youtube/profile/full`](https://www.monocrawl.com/docs/endpoints/youtube/profile/full) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/profile/full.json) |
| [`youtube/search`](https://www.monocrawl.com/docs/endpoints/youtube/search) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/search.json) |
| [`youtube/search/advanced`](https://www.monocrawl.com/docs/endpoints/youtube/search/advanced) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/search/advanced.json) |
| [`youtube/search/hashtag`](https://www.monocrawl.com/docs/endpoints/youtube/search/hashtag) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/search/hashtag.json) |
| [`youtube/video`](https://www.monocrawl.com/docs/endpoints/youtube/video) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/video.json) |
| [`youtube/video/comments`](https://www.monocrawl.com/docs/endpoints/youtube/video/comments) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/video/comments.json) |
| [`youtube/videos`](https://www.monocrawl.com/docs/endpoints/youtube/videos) | [JSON Schema](https://www.monocrawl.com/schemas/youtube/videos.json) |

## Keep a compatible schema snapshot

Save the schema version you validate against with your integration. New optional fields are additive; your parser should preserve or ignore unknown properties. Test representative populated, null and missing-field fixtures. Review changes before updating a pinned schema and follow the [versioning policy](https://www.monocrawl.com/docs/versioning).

For errors and accounting, use the [response envelope](https://www.monocrawl.com/docs/responses). For `partial`, `legs`, warnings and cursor behavior, use [pagination and caching](https://www.monocrawl.com/docs/pagination-caching). A valid payload can still contain a partial result.
