openapi: 3.0.4 info: contact: email: team@neynar.com name: Neynar url: https://neynar.com/ description: The Neynar API allows you to interact with the Farcaster protocol among other things. See the [Neynar docs](https://docs.neynar.com/reference) for more details. title: Neynar Action Agents API version: 3.176.0 servers: - url: https://api.neynar.com security: - ApiKeyAuth: [] tags: - description: Operations for building AI agents name: Agents paths: /v2/farcaster/cast/conversation/summary/: get: description: Generates a summary of all casts related to a conversation surrounding a cast by passing in a cast hash or Farcaster URL. Summary is generated by an LLM and is intended to be passed as a context to AI agents. externalDocs: url: https://docs.neynar.com/reference/lookup-cast-conversation-summary operationId: lookup-cast-conversation-summary parameters: - description: Cast identifier (It's either a URL or a hash)) in: query name: identifier required: true schema: example: '0x9288c1e862aa72bd69d0e383a28b9a76b63cbdb4' type: string - description: Number of casts to consider in a summary up to a point of target cast in: query name: limit schema: default: 20 example: 50 maximum: 50 minimum: 1 type: integer x-is-limit-param: true - description: Additional prompt used to generate a summary in: query name: prompt schema: example: be unreasonably dramatic type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ConversationSummary' description: Success '400': content: application/json: schema: $ref: '#/components/schemas/ErrorRes' description: Bad Request summary: Cast conversation summary tags: - Agents /v2/farcaster/frame/transaction/pay/: post: description: Creates a new transaction pay mini app that can be used to collect payments through a mini app externalDocs: url: https://docs.neynar.com/reference/create-transaction-pay-frame operationId: create-transaction-pay-frame requestBody: content: application/json: schema: $ref: '#/components/schemas/FramePayTransactionReqBody' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TransactionFrameResponse' description: Success '400': content: application/json: schema: $ref: '#/components/schemas/ErrorRes' description: Bad Request '401': content: application/json: schema: $ref: '#/components/schemas/ErrorRes' description: Unauthorized '500': content: application/json: schema: $ref: '#/components/schemas/ErrorRes' description: Server Error summary: Create transaction pay mini app tags: - Agents /v2/farcaster/user/interactions/: get: description: Returns a list of interactions between two users externalDocs: url: https://docs.neynar.com/reference/fetch-user-interactions operationId: fetch-user-interactions parameters: - description: Comma separated list of two FIDs in: query name: fids required: true schema: example: 194, 191 type: string x-accept-as: integer x-comma-separated: true - description: Comma seperated list of Interaction type to fetch in: query name: type schema: items: enum: - follows - recasts - likes - mentions - replies - quotes type: string type: array responses: '200': content: application/json: schema: properties: interactions: items: $ref: '#/components/schemas/Notification' type: array required: - interactions type: object description: Success '400': content: application/json: schema: $ref: '#/components/schemas/ErrorRes' description: Bad Request summary: User interactions tags: - Agents components: schemas: ChannelUserContext: description: Adds context on the viewer's or author's role in the channel. properties: following: description: Indicates if the user is following the channel. type: boolean role: $ref: '#/components/schemas/ChannelMemberRole' required: - following title: ChannelUserContext type: object TransactionFramePay: properties: config: $ref: '#/components/schemas/TransactionFrameConfig' id: description: Unique identifier for the transaction mini app type: string status: $ref: '#/components/schemas/TransactionFrameStatus' transaction: properties: to: $ref: '#/components/schemas/TransactionFrameDestination' required: - to type: object type: $ref: '#/components/schemas/TransactionFrameType' url: description: URL that can be used to access the transaction mini app format: uri type: string required: - id - url - type - config - status - transaction title: TransactionFramePay type: object Follower: properties: app: $ref: '#/components/schemas/UserDehydrated' object: enum: - follower type: string user: $ref: '#/components/schemas/User' required: - object - user title: Follower type: object CastEmbedded: properties: app: allOf: - $ref: '#/components/schemas/UserDehydrated' nullable: true author: $ref: '#/components/schemas/UserDehydrated' channel: allOf: - $ref: '#/components/schemas/ChannelDehydrated' nullable: true embeds: items: $ref: '#/components/schemas/EmbedDeep' type: array hash: type: string parent_author: properties: fid: allOf: - $ref: '#/components/schemas/Fid' nullable: true required: - fid type: object parent_hash: nullable: true type: string parent_url: nullable: true type: string root_parent_url: nullable: true type: string text: type: string timestamp: format: date-time type: string required: - hash - parent_hash - parent_url - root_parent_url - parent_author - author - text - timestamp - embeds - channel title: CastEmbedded type: object TransactionFrameAction: description: Action button for primary CTA on the transaction mini app properties: button_color: description: Custom button color for action button example: '#000000' type: string text: description: Custom text for action button example: Pay type: string text_color: description: Custom text color for action button example: '#FFFFFF' type: string title: TransactionFrameAction type: object SolAddress: description: Solana address pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$ title: SolAddress type: string FrameV1: description: Mini app v1 object properties: buttons: items: $ref: '#/components/schemas/FrameActionButton' type: array frames_url: description: Launch URL of the mini app type: string image: description: URL of the image type: string image_aspect_ratio: type: string input: properties: text: description: Input text for the mini app type: string type: object post_url: description: Post URL to take an action on this mini app type: string state: properties: serialized: description: State for the mini app in a serialized format type: string type: object title: type: string version: description: Version of the mini app, 'next' for v2, 'vNext' for v1 type: string required: - version - image - frames_url title: FrameV1 type: object Notification: properties: cast: $ref: '#/components/schemas/Cast' count: description: The number of notifications of this(follows, likes, recast) type bundled in a single notification. format: int32 type: integer follows: items: $ref: '#/components/schemas/Follower' type: array most_recent_timestamp: format: date-time type: string object: enum: - notification type: string reactions: items: $ref: '#/components/schemas/ReactionWithUserInfo' type: array seen: type: boolean type: enum: - follows - recasts - likes - mention - reply - quote type: string required: - object - most_recent_timestamp - type - seen title: Notification type: object FrameButtonActionType: description: The action type of a mini app button. Action types "mint" & "link" are to be handled on the client side only and so they will produce a no/op for POST /farcaster/frame/action. enum: - post - post_redirect - tx - link - mint title: FrameButtonActionType type: string User: properties: auth_addresses: items: properties: address: $ref: '#/components/schemas/EthAddress' app: $ref: '#/components/schemas/UserDehydrated' required: - address - app type: object type: array custody_address: $ref: '#/components/schemas/EthAddress' display_name: nullable: true type: string experimental: properties: deprecation_notice: type: string neynar_user_score: description: Score that represents the probability that the account is not spam. format: double type: number required: - neynar_user_score type: object fid: $ref: '#/components/schemas/Fid' follower_count: description: The number of followers the user has. format: int32 type: integer following_count: description: The number of users the user is following. format: int32 type: integer object: enum: - user type: string pfp_url: description: The URL of the user's profile picture nullable: true type: string pro: properties: expires_at: format: date-time type: string status: description: The subscription status of the user enum: - subscribed - unsubscribed type: string subscribed_at: format: date-time type: string required: - status - subscribed_at - expires_at type: object profile: properties: banner: properties: url: description: The URL of the user's banner image format: uri type: string type: object bio: properties: mentioned_channels: items: $ref: '#/components/schemas/ChannelDehydrated' type: array mentioned_channels_ranges: description: 'Positions within the text (inclusive start, exclusive end) where each mention occurs. Each index within this list corresponds to the same-numbered index in the mentioned_channels list.' items: $ref: '#/components/schemas/TextRange' type: array mentioned_profiles: items: $ref: '#/components/schemas/UserDehydrated' type: array mentioned_profiles_ranges: description: 'Positions within the text (inclusive start, exclusive end) where each mention occurs. Each index within this list corresponds to the same-numbered index in the mentioned_profiles list.' items: $ref: '#/components/schemas/TextRange' type: array text: type: string required: - text type: object live_at: properties: is_live: type: boolean updated_at: format: date-time type: string url: description: The URL of the user's current live activity type: string required: - url - updated_at - is_live type: object location: $ref: '#/components/schemas/Location' required: - bio type: object registered_at: format: date-time type: string score: description: Score that represents the probability that the account is not spam. format: double type: number username: type: string verifications: items: $ref: '#/components/schemas/EthAddress' type: array verified_accounts: items: description: Verified accounts of the user on other platforms, currently only X is supported. properties: platform: enum: - x - github type: string username: type: string type: object type: array verified_addresses: properties: eth_addresses: description: List of verified Ethereum addresses of the user sorted by oldest to most recent. items: $ref: '#/components/schemas/EthAddress' type: array primary: properties: eth_address: allOf: - $ref: '#/components/schemas/EthAddress' nullable: true sol_address: allOf: - $ref: '#/components/schemas/SolAddress' nullable: true required: - eth_address - sol_address type: object sol_addresses: description: List of verified Solana addresses of the user sorted by oldest to most recent. items: $ref: '#/components/schemas/SolAddress' type: array required: - eth_addresses - sol_addresses - primary type: object viewer_context: $ref: '#/components/schemas/UserViewerContext' required: - object - fid - username - custody_address - registered_at - profile - follower_count - following_count - verifications - auth_addresses - verified_addresses - verified_accounts title: User type: object Embed: anyOf: - $ref: '#/components/schemas/EmbedCast' - $ref: '#/components/schemas/EmbedUrl' title: Embed TransactionFrameResponse: properties: transaction_frame: $ref: '#/components/schemas/TransactionFrame' required: - transaction_frame title: TransactionFrameResponse type: object ChannelMemberRole: description: The role of a channel member enum: - member - moderator - owner title: ChannelMemberRole type: string OembedVideoData: description: Video OEmbed data properties: author_name: description: The name of the author/owner of the resource. nullable: true type: string author_url: description: A URL for the author/owner of the resource. nullable: true type: string cache_age: description: The suggested cache lifetime for this resource, in seconds. Consumers may choose to use this value or not. nullable: true type: string height: description: The height in pixels required to display the HTML. nullable: true type: number html: description: The HTML required to embed a video player. The HTML should have no padding or margins. Consumers may wish to load the HTML in an off-domain iframe to avoid XSS vulnerabilities. nullable: true type: string provider_name: description: The name of the resource provider. nullable: true type: string provider_url: description: The url of the resource provider. nullable: true type: string thumbnail_height: description: The height of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_width must also be present. nullable: true type: number thumbnail_url: description: A URL to a thumbnail image representing the resource. The thumbnail must respect any maxwidth and maxheight parameters. If this parameter is present, thumbnail_width and thumbnail_height must also be present. nullable: true type: string thumbnail_width: description: The width of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_height must also be present. nullable: true type: number title: description: A text title, describing the resource. nullable: true type: string type: enum: - video type: string version: nullable: true type: string width: description: The width in pixels required to display the HTML. nullable: true type: number required: - type - version - html title: OembedVideoData type: object UserViewerContext: description: Adds context on the viewer's follow relationship with the user. properties: blocked_by: description: Indicates if the viewer is blocked by the user. type: boolean blocking: description: Indicates if the viewer is blocking the user. type: boolean followed_by: description: Indicates if the viewer is followed by the user. type: boolean following: description: Indicates if the viewer is following the user. type: boolean required: - following - followed_by - blocking - blocked_by title: UserViewerContext type: object TransactionFrame: discriminator: mapping: pay: '#/components/schemas/TransactionFramePay' propertyName: type oneOf: - $ref: '#/components/schemas/TransactionFramePay' title: TransactionFrame type: object EmbedUrl: properties: metadata: $ref: '#/components/schemas/EmbedUrlMetadata' url: type: string required: - url title: EmbedUrl type: object CastDehydrated: properties: app: allOf: - $ref: '#/components/schemas/UserDehydrated' nullable: true author: $ref: '#/components/schemas/UserDehydrated' hash: type: string object: enum: - cast_dehydrated type: string required: - object - hash title: CastDehydrated type: object EthAddress: description: Ethereum address example: '0x5a927ac639636e534b678e81768ca19e2c6280b7' pattern: ^0x[a-fA-F0-9]{40}$ title: EthAddress type: string FarcasterManifest: properties: account_association: $ref: '#/components/schemas/EncodedJsonFarcasterSignature' frame: properties: button_title: type: string description: description: Detailed description of the configuration type: string hero_image_url: description: URL of the hero image displayed for the configuration format: uri type: string home_url: type: string icon_url: type: string image_url: type: string name: type: string noindex: description: Whether search engines should not index this configuration type: boolean og_description: description: Description used for Open Graph previews type: string og_image_url: description: Image URL used for Open Graph previews format: uri type: string og_title: description: Title used for Open Graph previews type: string primary_category: description: Primary category the configuration belongs to type: string screenshot_urls: description: URLs of screenshots showcasing the configuration items: format: uri type: string type: array splash_background_color: type: string splash_image_url: type: string subtitle: description: Short subtitle for the configuration type: string tagline: description: Short tagline for the configuration type: string tags: description: Tags associated with the configuration items: type: string type: array version: enum: - '1' - 0.0.0 - 0.0.1 - next type: string webhook_url: type: string required: - version - name - home_url - icon_url type: object miniapp: properties: button_title: type: string description: description: Detailed description of the configuration type: string hero_image_url: description: URL of the hero image displayed for the configuration format: uri type: string home_url: type: string icon_url: type: string image_url: type: string name: type: string noindex: description: Whether search engines should not index this configuration type: boolean og_description: description: Description used for Open Graph previews type: string og_image_url: description: Image URL used for Open Graph previews format: uri type: string og_title: description: Title used for Open Graph previews type: string primary_category: description: Primary category the configuration belongs to type: string screenshot_urls: description: URLs of screenshots showcasing the configuration items: format: uri type: string type: array splash_background_color: type: string splash_image_url: type: string subtitle: description: Short subtitle for the configuration type: string tagline: description: Short tagline for the configuration type: string tags: description: Tags associated with the configuration items: type: string type: array version: enum: - '1' - 0.0.0 - 0.0.1 - next type: string webhook_url: type: string required: - version - name - home_url - icon_url type: object required: - account_association title: FarcasterManifest type: object OembedRichData: description: Rich OEmbed data properties: author_name: description: The name of the author/owner of the resource. nullable: true type: string author_url: description: A URL for the author/owner of the resource. nullable: true type: string cache_age: description: The suggested cache lifetime for this resource, in seconds. Consumers may choose to use this value or not. nullable: true type: string height: description: The height in pixels required to display the HTML. nullable: true type: number html: description: The HTML required to display the resource. The HTML should have no padding or margins. Consumers may wish to load the HTML in an off-domain iframe to avoid XSS vulnerabilities. The markup should be valid XHTML 1.0 Basic. nullable: true type: string provider_name: description: The name of the resource provider. nullable: true type: string provider_url: description: The url of the resource provider. nullable: true type: string thumbnail_height: description: The height of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_width must also be present. nullable: true type: number thumbnail_url: description: A URL to a thumbnail image representing the resource. The thumbnail must respect any maxwidth and maxheight parameters. If this parameter is present, thumbnail_width and thumbnail_height must also be present. nullable: true type: string thumbnail_width: description: The width of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_height must also be present. nullable: true type: number title: description: A text title, describing the resource. nullable: true type: string type: enum: - rich type: string version: nullable: true type: string width: description: The width in pixels required to display the HTML. nullable: true type: number required: - type - version - html title: OembedRichData type: object Location: description: Coordinates and place names for a location properties: address: $ref: '#/components/schemas/LocationAddress' latitude: format: double maximum: 90 minimum: -90 type: number longitude: format: double maximum: 180 minimum: -180 type: number radius: description: The radius in meters for the location search. Any location within this radius will be returned. minimum: 0 type: number required: - latitude - longitude title: Location type: object FramePayTransactionReqBody: properties: config: $ref: '#/components/schemas/TransactionFrameConfig' idem: $ref: '#/components/schemas/Idem' transaction: properties: to: $ref: '#/components/schemas/TransactionFrameDestination' required: - to type: object required: - transaction - config title: FramePayTransactionReqBody type: object ImageObject: properties: alt: type: string height: type: string type: type: string url: type: string width: type: string required: - url title: ImageObject type: object ChannelOrChannelDehydrated: discriminator: mapping: channel: '#/components/schemas/Channel' channel_dehydrated: '#/components/schemas/ChannelDehydrated' propertyName: object oneOf: - $ref: '#/components/schemas/Channel' - $ref: '#/components/schemas/ChannelDehydrated' title: ChannelOrChannelDehydrated type: object UserDehydrated: properties: custody_address: $ref: '#/components/schemas/EthAddress' display_name: nullable: true type: string fid: $ref: '#/components/schemas/Fid' object: enum: - user_dehydrated type: string pfp_url: nullable: true type: string score: type: number username: type: string required: - object - fid title: UserDehydrated type: object FrameV2: description: Mini app v2 object properties: author: $ref: '#/components/schemas/UserDehydrated' frames_url: description: Launch URL of the mini app type: string image: description: URL of the image type: string manifest: $ref: '#/components/schemas/FarcasterManifest' metadata: properties: html: $ref: '#/components/schemas/HtmlMetadata' required: - html type: object title: description: Button title of a mini app type: string version: description: Version of the mini app, 'next' for v2, 'vNext' for v1 type: string required: - version - image - frames_url title: FrameV2 type: object ChannelDehydrated: properties: id: type: string image_url: type: string name: type: string object: enum: - channel_dehydrated type: string viewer_context: $ref: '#/components/schemas/ChannelUserContext' required: - id - name - object title: ChannelDehydrated type: object OembedLinkData: description: Link OEmbed data properties: author_name: description: The name of the author/owner of the resource. nullable: true type: string author_url: description: A URL for the author/owner of the resource. nullable: true type: string cache_age: description: The suggested cache lifetime for this resource, in seconds. Consumers may choose to use this value or not. nullable: true type: string provider_name: description: The name of the resource provider. nullable: true type: string provider_url: description: The url of the resource provider. nullable: true type: string thumbnail_height: description: The height of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_width must also be present. nullable: true type: number thumbnail_url: description: A URL to a thumbnail image representing the resource. The thumbnail must respect any maxwidth and maxheight parameters. If this parameter is present, thumbnail_width and thumbnail_height must also be present. nullable: true type: string thumbnail_width: description: The width of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_height must also be present. nullable: true type: number title: description: A text title, describing the resource. nullable: true type: string type: enum: - link type: string version: nullable: true type: string required: - type - version title: OembedLinkData type: object EmbedCastDeep: properties: cast: $ref: '#/components/schemas/CastDehydrated' cast_id: $ref: '#/components/schemas/CastId' required: - cast title: EmbedCastDeep type: object CastReplies: properties: count: format: int32 type: integer required: - count title: CastReplies type: object Network: description: A blockchain network e.g. "ethereum", "optimism", "base", "arbitrum" enum: - ethereum - optimism - base - arbitrum title: Network type: string LocationAddress: properties: city: type: string country: type: string country_code: type: string state: type: string state_code: type: string required: - city - country title: LocationAddress type: object VideoObject: properties: height: type: string type: type: string url: type: string width: type: string required: - url title: VideoObject type: object TransactionFrameDestination: properties: address: $ref: '#/components/schemas/EthAddress' amount: description: Amount to send (must be greater than 0) example: 0.01 minimum: 1.0e-08 type: number network: $ref: '#/components/schemas/Network' token_contract_address: description: Token contract address for the payment (e.g. 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 is USDC on Base) example: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' pattern: ^0x[a-fA-F0-9]{40}$ type: string required: - address - network - token_contract_address - amount title: TransactionFrameDestination type: object HtmlMetadata: properties: favicon: type: string modifiedTime: type: string oembed: discriminator: mapping: link: '#/components/schemas/OembedLinkData' photo: '#/components/schemas/OembedPhotoData' rich: '#/components/schemas/OembedRichData' video: '#/components/schemas/OembedVideoData' propertyName: type oneOf: - $ref: '#/components/schemas/OembedRichData' - $ref: '#/components/schemas/OembedVideoData' - $ref: '#/components/schemas/OembedPhotoData' - $ref: '#/components/schemas/OembedLinkData' type: object ogArticleAuthor: type: string ogArticleExpirationTime: type: string ogArticleModifiedTime: type: string ogArticlePublishedTime: type: string ogArticlePublisher: type: string ogArticleSection: type: string ogArticleTag: type: string ogAudio: type: string ogAudioSecureURL: type: string ogAudioType: type: string ogAudioURL: type: string ogAvailability: type: string ogDate: type: string ogDescription: type: string ogDeterminer: type: string ogEpisode: type: string ogImage: items: $ref: '#/components/schemas/ImageObject' type: array ogLocale: type: string ogLocaleAlternate: type: string ogLogo: type: string ogMovie: type: string ogPriceAmount: type: string ogPriceCurrency: type: string ogProductAvailability: type: string ogProductCondition: type: string ogProductPriceAmount: type: string ogProductPriceCurrency: type: string ogProductRetailerItemId: type: string ogSiteName: type: string ogTitle: type: string ogType: type: string ogUrl: type: string ogVideo: items: $ref: '#/components/schemas/VideoObject' type: array ogVideoActor: type: string ogVideoActorId: type: string ogVideoActorRole: type: string ogVideoDirector: type: string ogVideoDuration: type: string ogVideoOther: type: string ogVideoReleaseDate: type: string ogVideoSecureURL: type: string ogVideoSeries: type: string ogVideoTag: type: string ogVideoTvShow: type: string ogVideoWriter: type: string ogWebsite: type: string updatedTime: type: string title: HtmlMetadata type: object EmbedCast: properties: cast: $ref: '#/components/schemas/CastEmbedded' cast_id: $ref: '#/components/schemas/CastId' required: - cast title: EmbedCast type: object Frame: anyOf: - $ref: '#/components/schemas/FrameV1' - $ref: '#/components/schemas/FrameV2' discriminator: mapping: '1': '#/components/schemas/FrameV2' 0.0.0: '#/components/schemas/FrameV2' 0.0.1: '#/components/schemas/FrameV2' next: '#/components/schemas/FrameV2' vNext: '#/components/schemas/FrameV1' propertyName: version title: Frame EmbedUrlMetadata: properties: _status: type: string content_length: nullable: true type: integer content_type: nullable: true type: string frame: $ref: '#/components/schemas/Frame' html: $ref: '#/components/schemas/HtmlMetadata' image: properties: height_px: type: integer width_px: type: integer type: object video: properties: duration_s: type: number stream: items: properties: codec_name: type: string height_px: type: integer width_px: type: integer type: object type: array type: object required: - _status title: EmbedUrlMetadata type: object ReactionRecast: properties: fid: $ref: '#/components/schemas/Fid' fname: type: string required: - fid - fname title: ReactionRecast type: object Idem: description: "An Idempotency key is a unique identifier for the request.\n**Note:** \n1) This is used to prevent duplicate requests. Use the same idem key on retry attempts.\n2) This should be a unique identifier for each request.\n3) Recommended format is a 16-character string generated by the developer at the time of making this request." title: Idem type: string ConversationSummary: properties: summary: properties: mentioned_profiles: description: Users who were mentioned in a conversation thread items: $ref: '#/components/schemas/User' type: array participants: description: Users who casted in a conversation thread items: $ref: '#/components/schemas/User' type: array text: description: Summary generated by an LLM type: string required: - text - participants - mentioned_profiles type: object required: - summary title: ConversationSummary type: object ErrorRes: description: Details for the error response properties: code: type: string message: type: string property: type: string status: format: int32 type: integer required: - message title: ErrorRes type: object OembedPhotoData: description: Photo OEmbed data properties: author_name: description: The name of the author/owner of the resource. nullable: true type: string author_url: description: A URL for the author/owner of the resource. nullable: true type: string cache_age: description: The suggested cache lifetime for this resource, in seconds. Consumers may choose to use this value or not. nullable: true type: string height: description: The height in pixels of the image specified in the url parameter. nullable: true type: number provider_name: description: The name of the resource provider. nullable: true type: string provider_url: description: The url of the resource provider. nullable: true type: string thumbnail_height: description: The height of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_width must also be present. nullable: true type: number thumbnail_url: description: A URL to a thumbnail image representing the resource. The thumbnail must respect any maxwidth and maxheight parameters. If this parameter is present, thumbnail_width and thumbnail_height must also be present. nullable: true type: string thumbnail_width: description: The width of the optional thumbnail. If this parameter is present, thumbnail_url and thumbnail_height must also be present. nullable: true type: number title: description: A text title, describing the resource. nullable: true type: string type: enum: - photo type: string url: description: The source URL of the image. Consumers should be able to insert this URL into an element. Only HTTP and HTTPS URLs are valid. nullable: true type: string version: nullable: true type: string width: description: The width in pixels of the image specified in the url parameter. nullable: true type: number required: - type - version - url title: OembedPhotoData type: object TextRange: properties: end: minimum: 0 type: number start: minimum: 0 type: number required: - start - end title: TextRange type: object TransactionFrameLineItem: properties: description: description: Description of the line item in transaction example: Payment for goods type: string image: description: Optional image URL for the line item in transaction example: https://i.imgur.com/ovGo3sz.png type: string name: description: Name of the line item in transaction example: Payment type: string required: - name - description title: TransactionFrameLineItem type: object EmbedDeep: anyOf: - $ref: '#/components/schemas/EmbedCastDeep' - $ref: '#/components/schemas/EmbedUrl' title: EmbedDeep CastViewerContext: description: Adds context on interactions the viewer has made with the cast. properties: liked: description: Indicates if the viewer liked the cast. type: boolean recasted: description: Indicates if the viewer recasted the cast. type: boolean required: - liked - recasted title: CastViewerContext type: object CastReactions: properties: likes: deprecated: true description: This has been deprecated and will always be an empty array. The property will be removed in the future items: $ref: '#/components/schemas/ReactionLike' type: array likes_count: format: int32 type: integer recasts: deprecated: true description: This has been deprecated and will always be an empty array. The property will be removed in the future items: $ref: '#/components/schemas/ReactionRecast' type: array recasts_count: format: int32 type: integer required: - likes - recasts - likes_count - recasts_count title: CastReactions type: object TransactionFrameType: description: Type of transaction mini app enum: - pay title: TransactionFrameType type: string TransactionFrameStatus: enum: - created - completed title: TransactionFrameStatus type: string Cast: properties: app: allOf: - $ref: '#/components/schemas/UserDehydrated' nullable: true author: $ref: '#/components/schemas/User' author_channel_context: $ref: '#/components/schemas/ChannelUserContext' channel: allOf: - $ref: '#/components/schemas/ChannelOrChannelDehydrated' nullable: true embeds: items: $ref: '#/components/schemas/Embed' type: array hash: type: string mentioned_channels: items: $ref: '#/components/schemas/ChannelDehydrated' type: array mentioned_channels_ranges: description: 'Positions within the text (inclusive start, exclusive end) where each mention occurs. Each index within this list corresponds to the same-numbered index in the mentioned_channels list.' items: $ref: '#/components/schemas/TextRange' type: array mentioned_profiles: items: $ref: '#/components/schemas/User' type: array mentioned_profiles_ranges: description: 'Positions within the text (inclusive start, exclusive end) where each mention occurs. Each index within this list corresponds to the same-numbered index in the mentioned_profiles list.' items: $ref: '#/components/schemas/TextRange' type: array object: enum: - cast type: string parent_author: properties: fid: allOf: - $ref: '#/components/schemas/Fid' nullable: true required: - fid type: object parent_hash: nullable: true type: string parent_url: nullable: true type: string reactions: $ref: '#/components/schemas/CastReactions' replies: $ref: '#/components/schemas/CastReplies' root_parent_url: nullable: true type: string text: type: string thread_hash: nullable: true type: string timestamp: format: date-time type: string type: $ref: '#/components/schemas/CastNotificationType' viewer_context: $ref: '#/components/schemas/CastViewerContext' required: - object - hash - parent_hash - parent_url - root_parent_url - parent_author - author - text - timestamp - embeds - reactions - replies - thread_hash - mentioned_profiles - mentioned_profiles_ranges - mentioned_channels - mentioned_channels_ranges - channel title: Cast type: object FrameActionButton: properties: action_type: $ref: '#/components/schemas/FrameButtonActionType' index: description: Index of the button type: integer post_url: description: Used specifically for the tx action type to post a successful transaction hash type: string target: description: Target of the button type: string title: description: Title of the button type: string required: - index - action_type title: FrameActionButton type: object ReactionLike: properties: fid: $ref: '#/components/schemas/Fid' fname: type: string required: - fid - fname title: ReactionLike type: object TransactionFrameConfig: properties: action: $ref: '#/components/schemas/TransactionFrameAction' allowlist_fids: description: Optional list of FIDs that are allowed to use this transaction mini app items: $ref: '#/components/schemas/Fid' type: array line_items: description: List of items included in the transaction items: $ref: '#/components/schemas/TransactionFrameLineItem' minItems: 1 type: array required: - line_items title: TransactionFrameConfig type: object EncodedJsonFarcasterSignature: description: Encoded JSON Farcaster signature properties: header: type: string payload: type: string signature: type: string required: - header - payload - signature title: EncodedJsonFarcasterSignature type: object CastNotificationType: description: The notification type of a cast. enum: - cast-mention - cast-reply title: CastNotificationType type: string Channel: properties: created_at: format: date-time type: string description: type: string description_mentioned_profiles: items: $ref: '#/components/schemas/UserDehydrated' type: array description_mentioned_profiles_ranges: description: Positions within the text (inclusive start, exclusive end) where each mention occurs. items: $ref: '#/components/schemas/TextRange' type: array external_link: description: Channel's external link. properties: title: type: string url: type: string type: object follower_count: description: Number of followers the channel has. type: number hosts: deprecated: true items: $ref: '#/components/schemas/User' type: array id: type: string image_url: type: string lead: $ref: '#/components/schemas/User' member_count: format: int32 type: integer moderator: allOf: - $ref: '#/components/schemas/User' deprecated: true description: Use `lead` instead. moderator_fids: items: $ref: '#/components/schemas/Fid' type: array name: type: string object: enum: - channel type: string parent_url: format: uri type: string pinned_cast_hash: example: '0x71d5225f77e0164388b1d4c120825f3a2c1f131c' pattern: ^(0x)?[a-fA-F0-9]{40}$ type: string url: type: string viewer_context: $ref: '#/components/schemas/ChannelUserContext' required: - id - url - object - created_at title: Channel type: object CastId: deprecated: true description: '[DEPRECATED: Use "cast" key instead]' properties: fid: $ref: '#/components/schemas/Fid' hash: type: string required: - fid - hash title: CastId type: object ReactionWithUserInfo: properties: cast: $ref: '#/components/schemas/CastDehydrated' object: enum: - likes - recasts type: string user: $ref: '#/components/schemas/User' required: - object - cast - user title: ReactionWithUserInfo type: object Fid: description: The unique identifier of a farcaster user or app (unsigned integer) example: 3 format: int32 minimum: 0 title: Fid type: integer securitySchemes: ApiKeyAuth: description: API key to authorize requests in: header name: x-api-key type: apiKey x-default: NEYNAR_API_DOCS