Properties
| Name | Type | Description |
|---|---|---|
| type | string | |
| id | string | The ID of the tweet |
| url | string | The URL of the tweet |
| text | string | The text of the tweet |
| source | string | The source of the tweet.eg. "Twitter for iPhone" |
| retweetCount | integer | The number of times the tweet has been retweeted |
| replyCount | integer | The number of times the tweet has been replied to |
| likeCount | integer | The number of times the tweet has been liked |
| quoteCount | integer | The number of times the tweet has been quoted |
| viewCount | integer | The number of times the tweet has been viewed |
| createdAt | string | The date and time the tweet was created.eg. Tue Dec 10 07:00:30 +0000 2024 |
| lang | string | The language of the tweet.eg. "en".may be empty |
| bookmarkCount | integer | The number of times the tweet has been bookmarked |
| isReply | boolean | Indicates if the tweet is a reply |
| inReplyToId | string | The ID of the tweet being replied to.may be empty |
| conversationId | string | The ID of the conversation the tweet is part of.may be empty |
| displayTextRange | array | specifies the UTF-16 code unit indices in full_text that define the visible portion of a Tweet.eg"@jack Thanks for the update!",display_text_range is [6, 28] |
| inReplyToUserId | string | The ID of the user being replied to.may be empty |
| inReplyToUsername | string | The username of the user being replied to.may be empty |
| author | object | The user who posted the tweet |
| entities | object | The entities in the tweet.eg. hashtags,urls,mentions |
| quoted_tweet | object | The tweet being quoted.may be null |
| retweeted_tweet | object | The tweet being retweeted.may be null |
| isLimitedReply | boolean | Whether the tweet is a limited reply. Possible restrictions: only mentioned users, verified users, or followed accounts can reply |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/twitterapi-io/json-schema/twitterapi-io-tweet-schema.json",
"title": "Tweet",
"x-generated": "2026-10-29",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/twitterapi-io-openapi.json#/components/schemas/Tweet",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"tweet"
]
},
"id": {
"type": "string",
"description": "The ID of the tweet"
},
"url": {
"type": "string",
"description": "The URL of the tweet"
},
"text": {
"type": "string",
"description": "The text of the tweet"
},
"source": {
"type": "string",
"description": "The source of the tweet.eg. \"Twitter for iPhone\""
},
"retweetCount": {
"type": "integer",
"description": "The number of times the tweet has been retweeted"
},
"replyCount": {
"type": "integer",
"description": "The number of times the tweet has been replied to"
},
"likeCount": {
"type": "integer",
"description": "The number of times the tweet has been liked"
},
"quoteCount": {
"type": "integer",
"description": "The number of times the tweet has been quoted"
},
"viewCount": {
"type": "integer",
"description": "The number of times the tweet has been viewed"
},
"createdAt": {
"type": "string",
"description": "The date and time the tweet was created.eg. Tue Dec 10 07:00:30 +0000 2024"
},
"lang": {
"type": "string",
"description": "The language of the tweet.eg. \"en\".may be empty"
},
"bookmarkCount": {
"type": "integer",
"description": "The number of times the tweet has been bookmarked"
},
"isReply": {
"type": "boolean",
"description": "Indicates if the tweet is a reply"
},
"inReplyToId": {
"type": "string",
"description": "The ID of the tweet being replied to.may be empty"
},
"conversationId": {
"type": "string",
"description": "The ID of the conversation the tweet is part of.may be empty"
},
"displayTextRange": {
"type": "array",
"description": "specifies the UTF-16 code unit indices in full_text that define the visible portion of a Tweet.eg\"@jack Thanks for the update!\",display_text_range is [6, 28]",
"items": {
"type": "integer"
}
},
"inReplyToUserId": {
"type": "string",
"description": "The ID of the user being replied to.may be empty"
},
"inReplyToUsername": {
"type": "string",
"description": "The username of the user being replied to.may be empty"
},
"author": {
"$ref": "#/$defs/UserInfo",
"description": "The user who posted the tweet"
},
"entities": {
"$ref": "#/$defs/TweetEntities",
"description": "The entities in the tweet.eg. hashtags,urls,mentions"
},
"quoted_tweet": {
"$ref": "#/$defs/Tweet",
"description": "The tweet being quoted.may be null"
},
"retweeted_tweet": {
"$ref": "#/$defs/Tweet",
"description": "The tweet being retweeted.may be null"
},
"isLimitedReply": {
"type": "boolean",
"description": "Whether the tweet is a limited reply. Possible restrictions: only mentioned users, verified users, or followed accounts can reply"
}
},
"$defs": {
"Tweet": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"tweet"
]
},
"id": {
"type": "string",
"description": "The ID of the tweet"
},
"url": {
"type": "string",
"description": "The URL of the tweet"
},
"text": {
"type": "string",
"description": "The text of the tweet"
},
"source": {
"type": "string",
"description": "The source of the tweet.eg. \"Twitter for iPhone\""
},
"retweetCount": {
"type": "integer",
"description": "The number of times the tweet has been retweeted"
},
"replyCount": {
"type": "integer",
"description": "The number of times the tweet has been replied to"
},
"likeCount": {
"type": "integer",
"description": "The number of times the tweet has been liked"
},
"quoteCount": {
"type": "integer",
"description": "The number of times the tweet has been quoted"
},
"viewCount": {
"type": "integer",
"description": "The number of times the tweet has been viewed"
},
"createdAt": {
"type": "string",
"description": "The date and time the tweet was created.eg. Tue Dec 10 07:00:30 +0000 2024"
},
"lang": {
"type": "string",
"description": "The language of the tweet.eg. \"en\".may be empty"
},
"bookmarkCount": {
"type": "integer",
"description": "The number of times the tweet has been bookmarked"
},
"isReply": {
"type": "boolean",
"description": "Indicates if the tweet is a reply"
},
"inReplyToId": {
"type": "string",
"description": "The ID of the tweet being replied to.may be empty"
},
"conversationId": {
"type": "string",
"description": "The ID of the conversation the tweet is part of.may be empty"
},
"displayTextRange": {
"type": "array",
"description": "specifies the UTF-16 code unit indices in full_text that define the visible portion of a Tweet.eg\"@jack Thanks for the update!\",display_text_range is [6, 28]",
"items": {
"type": "integer"
}
},
"inReplyToUserId": {
"type": "string",
"description": "The ID of the user being replied to.may be empty"
},
"inReplyToUsername": {
"type": "string",
"description": "The username of the user being replied to.may be empty"
},
"author": {
"$ref": "#/$defs/UserInfo",
"description": "The user who posted the tweet"
},
"entities": {
"$ref": "#/$defs/TweetEntities",
"description": "The entities in the tweet.eg. hashtags,urls,mentions"
},
"quoted_tweet": {
"$ref": "#/$defs/Tweet",
"description": "The tweet being quoted.may be null"
},
"retweeted_tweet": {
"$ref": "#/$defs/Tweet",
"description": "The tweet being retweeted.may be null"
},
"isLimitedReply": {
"type": "boolean",
"description": "Whether the tweet is a limited reply. Possible restrictions: only mentioned users, verified users, or followed accounts can reply"
}
}
},
"TweetEntities": {
"type": "object",
"properties": {
"hashtags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"indices": {
"type": "array",
"items": {
"type": "integer"
}
},
"text": {
"type": "string"
}
}
}
},
"urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"display_url": {
"type": "string"
},
"expanded_url": {
"type": "string"
},
"indices": {
"type": "array",
"items": {
"type": "integer"
}
},
"url": {
"type": "string"
}
}
}
},
"user_mentions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id_str": {
"type": "string",
"description": "The ID of the user being mentioned"
},
"name": {
"type": "string",
"description": "The name of the user being mentioned"
},
"screen_name": {
"type": "string",
"description": "The screen name of the user being mentioned"
}
}
}
}
}
},
"UserInfo": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"user"
]
},
"userName": {
"type": "string",
"description": "The username of the Twitter user"
},
"url": {
"type": "string",
"description": "The x.com URL of the user's profile"
},
"id": {
"type": "string",
"description": "The unique identifier of the user"
},
"name": {
"type": "string",
"description": "The display name of the user"
},
"isBlueVerified": {
"type": "boolean",
"description": "Whether the user has Twitter Blue verification"
},
"verifiedType": {
"type": "string",
"description": "The type of verification. eg. \"government\" ,can be empty"
},
"profilePicture": {
"type": "string",
"description": "URL of the user's profile picture"
},
"coverPicture": {
"type": "string",
"description": "URL of the user's cover picture"
},
"description": {
"type": "string",
"description": "The user's profile description"
},
"location": {
"type": "string",
"description": "The user's location.for example: 東京の端っこ . may be empty"
},
"followers": {
"type": "integer",
"description": "Number of followers"
},
"following": {
"type": "integer",
"description": "Number of accounts following"
},
"canDm": {
"type": "boolean",
"description": "Whether the user can receive DMs"
},
"createdAt": {
"type": "string",
"description": "When the account was created. Format depends on the endpoint: /twitter/user/info returns ISO 8601 (e.g. 2007-12-19T20:20:32.000000Z); inside tweet objects (tweet.author) it is the classic X format (e.g. Wed Dec 19 20:20:32 +0000 2007)."
},
"favouritesCount": {
"type": "integer",
"description": "Number of favorites"
},
"hasCustomTimelines": {
"type": "boolean",
"description": "Whether the user has custom timelines"
},
"isTranslator": {
"type": "boolean",
"description": "Whether the user is a translator"
},
"mediaCount": {
"type": "integer",
"description": "Number of media posts"
},
"statusesCount": {
"type": "integer",
"description": "Number of status updates"
},
"withheldInCountries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Countries where the account is withheld"
},
"affiliatesHighlightedLabel": {
"type": "object"
},
"possiblySensitive": {
"type": "boolean",
"description": "Whether the account may contain sensitive content"
},
"pinnedTweetIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "IDs of pinned tweets"
},
"isAutomated": {
"type": "boolean",
"description": "Whether the account is automated"
},
"automatedBy": {
"type": "string",
"description": "The account that automated the account"
},
"unavailable": {
"type": "boolean",
"description": "Whether the account is unavailable"
},
"message": {
"type": "string",
"description": "The message of the account.eg. \"This account is unavailable\" or \"This account is suspended\""
},
"unavailableReason": {
"type": "string",
"description": "The reason the account is unavailable.eg. \"suspended\" "
},
"profile_bio": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"entities": {
"type": "object",
"properties": {
"description": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"display_url": {
"type": "string"
},
"expanded_url": {
"type": "string"
},
"indices": {
"type": "array",
"items": {
"type": "integer"
}
},
"url": {
"type": "string"
}
}
}
}
}
},
"url": {
"type": "object",
"properties": {
"urls": {
"type": "array",
"items": {
"type": "object",
"properties": {
"display_url": {
"type": "string"
},
"expanded_url": {
"type": "string"
},
"indices": {
"type": "array",
"items": {
"type": "integer"
}
},
"url": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/twitterapi-io-tweet"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.