> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neynar.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Embedded URL metadata

> Crawls the given URL and returns metadata useful when embedding the URL in a cast.

## Node.js SDK

🔗 **SDK Method:** [fetchEmbeddedUrlMetadata](/nodejs-sdk/cast-apis/fetchEmbeddedUrlMetadata)

Use this API endpoint with the Neynar Node.js SDK for typed responses and better developer experience.


## OpenAPI

````yaml get /v2/farcaster/cast/embed/crawl/
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 API
  version: 3.173.0
servers:
  - url: https://api.neynar.com
security:
  - ApiKeyAuth: []
tags:
  - description: Operations related to user
    externalDocs:
      description: More info about user
      url: https://docs.neynar.com/reference/user-operations
    name: User
  - description: Operations related to signer
    externalDocs:
      description: More info about signer
      url: https://docs.neynar.com/reference/signer-operations
    name: Signer
  - description: Operations related to cast
    externalDocs:
      description: More info about cast
      url: https://docs.neynar.com/reference/cast-operations
    name: Cast
  - description: Operations related to feed
    externalDocs:
      description: More info about feed
      url: https://docs.neynar.com/reference/feed-operations
    name: Feed
  - description: Operations related to reaction
    externalDocs:
      description: More info about reaction
      url: https://docs.neynar.com/reference/reaction-operations
    name: Reaction
  - description: Operations related to notifications
    externalDocs:
      description: More info about notifications
      url: https://docs.neynar.com/reference/notifications-operations
    name: Notifications
  - description: Operations related to channels
    externalDocs:
      description: More info about channels
      url: https://docs.neynar.com/reference/channel-operations
    name: Channel
  - description: Operations related to follows
    externalDocs:
      description: More info about follows
      url: https://docs.neynar.com/reference/follows-operations
    name: Follows
  - description: Operations related to storage
    externalDocs:
      description: More info about storage
      url: https://docs.neynar.com/reference/storage-operations
    name: Storage
  - description: Operations related to mini apps
    name: Frame
  - description: Operations for building AI agents
    name: Agents
  - description: Operations related to fname
    name: fname
  - description: Operations related to a webhook
    name: Webhook
  - description: >-
      Securely communicate and perform actions on behalf of users across
      different apps
    externalDocs:
      description: More info about farcaster actions
      url: https://docs.neynar.com/docs/farcaster-actions-spec
    name: Action
  - description: Operations related to a subscriptions
    name: Subscribers
  - description: Operations related to a mute
    name: Mute
  - description: Operations related to a block
    name: Block
  - description: Operations related to a ban
    name: Ban
  - description: Operations related to onchain data
    name: Onchain
  - description: Operations related to login
    name: Login
  - description: Operations related to retrieving metrics
    name: Metrics
  - description: Operations related to mini app host notifications
    externalDocs:
      description: More info about mini app host notifications
      url: https://docs.neynar.com/docs/app-host-notifications
    name: App Host
paths:
  /v2/farcaster/cast/embed/crawl/:
    get:
      tags:
        - Cast
      summary: Embedded URL metadata
      description: >-
        Crawls the given URL and returns metadata useful when embedding the URL
        in a cast.
      operationId: fetch-embedded-url-metadata
      parameters:
        - description: URL to crawl metadata of
          in: query
          name: url
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CastEmbedCrawlResponse'
          description: Success
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorRes'
          description: Bad Request
      externalDocs:
        url: https://docs.neynar.com/reference/fetch-embedded-url-metadata
components:
  schemas:
    CastEmbedCrawlResponse:
      properties:
        metadata:
          $ref: '#/components/schemas/EmbedUrlMetadata'
      required:
        - metadata
      title: CastEmbedCrawlResponse
      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
    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
    Frame:
      anyOf:
        - $ref: '#/components/schemas/FrameV1'
        - $ref: '#/components/schemas/FrameV2'
      discriminator:
        mapping:
          '1':
            $ref: '#/components/schemas/FrameV2'
          0.0.0:
            $ref: '#/components/schemas/FrameV2'
          0.0.1:
            $ref: '#/components/schemas/FrameV2'
          next:
            $ref: '#/components/schemas/FrameV2'
          vNext:
            $ref: '#/components/schemas/FrameV1'
        propertyName: version
      title: Frame
    HtmlMetadata:
      properties:
        favicon:
          type: string
        modifiedTime:
          type: string
        oembed:
          discriminator:
            mapping:
              link:
                $ref: '#/components/schemas/OembedLinkData'
              photo:
                $ref: '#/components/schemas/OembedPhotoData'
              rich:
                $ref: '#/components/schemas/OembedRichData'
              video:
                $ref: '#/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
    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
    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
    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
    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 <img> 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
    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
    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
    ImageObject:
      properties:
        alt:
          type: string
        height:
          type: string
        type:
          type: string
        url:
          type: string
        width:
          type: string
      required:
        - url
      title: ImageObject
      type: object
    VideoObject:
      properties:
        height:
          type: string
        type:
          type: string
        url:
          type: string
        width:
          type: string
      required:
        - url
      title: VideoObject
      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
    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
    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
    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
    EthAddress:
      description: Ethereum address
      example: '0x5a927ac639636e534b678e81768ca19e2c6280b7'
      pattern: ^0x[a-fA-F0-9]{40}$
      title: EthAddress
      type: string
    Fid:
      description: The unique identifier of a farcaster user or app (unsigned integer)
      example: 3
      format: int32
      minimum: 0
      title: Fid
      type: integer
    EncodedJsonFarcasterSignature:
      description: Encoded JSON Farcaster signature
      properties:
        header:
          type: string
        payload:
          type: string
        signature:
          type: string
      required:
        - header
        - payload
        - signature
      title: EncodedJsonFarcasterSignature
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: API key to authorize requests
      in: header
      name: x-api-key
      type: apiKey
      x-default: NEYNAR_API_DOCS

````