---
title: "Upload and parse a file"
method: POST
path: "/parse"
tags: ["Scraping"]
---

# Upload and parse a file

`POST /parse`

## Response `200`

Successful response

- ScrapeResponse
  - `success` boolean
  - `data` object
    - `markdown` string
    - `summary` string, nullable — Summary of the page if `summary` is in `formats`
    - `html` string, nullable — Cleaned HTML of the page if `html` is in `formats`. Removes `<script>`, `<style>`, `<noscript>`, `<meta>`, and `<head>` tags; converts relative URLs to absolute; resolves responsive image `srcset` to the largest version. Respects `onlyMainContent`, `includeTags`, and `excludeTags` filters.
    - `rawHtml` string, nullable — The exact, unmodified HTML as received from the page if `rawHtml` is in `formats`. No cleaning or filtering is applied.
    - `screenshot` string, nullable — Screenshot of the page if `screenshot` is in `formats`. Screenshots expire after 24 hours and can no longer be downloaded.
    - `audio` string, nullable — Signed URL to the extracted MP3 audio file if `audio` is in `formats`. The signed URL expires after 1 hour.
    - `video` string, nullable — Signed URL to the extracted video file if `video` is in `formats`. The signed URL expires after 1 hour.
    - `answer` string, nullable — Natural-language answer to the question supplied via the `question` format. Only present if a `question` format object was included in `formats`.
    - `highlights` string, nullable — Relevant source text selected by the `highlights` format. Only present if a `highlights` format object was included in `formats`.
    - `links` string[] — List of links on the page if `links` is in `formats`
    - `actions` object, nullable — Results of the actions specified in the `actions` parameter. Only present if the `actions` parameter was provided in the request
      - `screenshots` string[] — Screenshot URLs, in the same order as the screenshot actions provided.
      - `scrapes` object[] — Scrape contents, in the same order as the scrape actions provided.
        - `url` string
        - `html` string
      - `javascriptReturns` object[] — JavaScript return values, in the same order as the executeJavascript actions provided.
        - `type` string
        - `value` unknown
      - `pdfs` string[] — PDFs generated, in the same order as the pdf actions provided.
    - `metadata` object
      - `title` union — Title extracted from the page, can be a string or array of strings
        - string
        - string[]
      - `description` union — Description extracted from the page, can be a string or array of strings
        - string
        - string[]
      - `language` union — Language extracted from the page, can be a string or array of strings
        - string
        - string[]
      - `sourceURL` string, uri — The original URL that was requested. May differ from the page's final URL if redirects occurred.
      - `url` string, uri — The final URL of the page after all redirects have been followed.
      - `keywords` union — Keywords extracted from the page, can be a string or array of strings
        - string
        - string[]
      - `ogLocaleAlternate` string[] — Alternative locales for the page
      - `<any other metadata> ` union — Other metadata extracted from HTML, can be a string or array of strings
        - string
        - string[]
      - `statusCode` integer — The status code of the page
      - `numPages` integer — For PDF inputs, the number of pages parsed (capped by the parsers maxPages option).
      - `totalPages` integer — For PDF inputs, the document's true page count before any maxPages capping. Omitted when it cannot be determined; a totalPages greater than numPages indicates the result was truncated.
      - `contentType` string — The content type (MIME type) of the page, e.g. text/html, application/pdf
      - `error` string, nullable — The error message of the page
      - `concurrencyLimited` boolean — Whether this scrape was throttled due to team concurrency limits
      - `concurrencyQueueDurationMs` number — Time in milliseconds the request waited in the concurrency queue. Only present when concurrencyLimited is true.
    - `warning` string, nullable — Can be displayed when using LLM Extraction. Warning message will let you know any issues with the extraction.
    - `changeTracking` object, nullable — Change tracking information if `changeTracking` is in `formats`. Only present when the `changeTracking` format is requested.
      - `previousScrapeAt` string, date-time, nullable — The timestamp of the previous scrape that the current page is being compared against. Null if no previous scrape exists.
      - `changeStatus` 'new' | 'same' | 'changed' | 'removed' — The result of the comparison between the two page versions. 'new' means this page did not exist before, 'same' means content has not changed, 'changed' means content has changed, 'removed' means the page was removed.
      - `visibility` 'visible' | 'hidden' — The visibility of the current page/URL. 'visible' means the URL was discovered through an organic route (links or sitemap), 'hidden' means the URL was discovered through memory from previous crawls.
      - `diff` string, nullable — Git-style diff of changes when using 'git-diff' mode. Only present when the mode is set to 'git-diff'.
      - `json` object, nullable — JSON comparison results when using 'json' mode. Only present when the mode is set to 'json'. This will emit a list of all the keys and their values from the `previous` and `current` scrapes based on the type defined in the `schema`. Example [here](/features/change-tracking)
    - `branding` object, nullable — Branding information extracted from the page if `branding` is in `formats`. Includes colors, fonts, typography, spacing, components, and more.
      - `colorScheme` 'light' | 'dark' — The detected color scheme of the page.
      - `logo` string, nullable — URL of the primary logo.
      - `colors` object, nullable — Brand colors extracted from the page.
        - `primary` string — Primary brand color (hex).
        - `secondary` string — Secondary brand color (hex).
        - `accent` string — Accent color (hex).
        - `background` string — Background color (hex).
        - `textPrimary` string — Primary text color (hex).
        - `textSecondary` string — Secondary text color (hex).
        - `link` string — Link color (hex).
        - `success` string — Success/positive color (hex).
        - `warning` string — Warning color (hex).
        - `error` string — Error/danger color (hex).
      - `fonts` object[], nullable — Array of font families used on the page.
        - `family` string — Font family name.
      - `typography` object, nullable — Detailed typography information.
        - `fontFamilies` object — Font families by role.
          - `primary` string — Primary font family.
          - `heading` string — Heading font family.
          - `code` string — Code/monospace font family.
        - `fontSizes` object — Font sizes for different text levels.
          - `h1` string
          - `h2` string
          - `h3` string
          - `body` string
        - `fontWeights` object — Font weight definitions.
          - `light` integer
          - `regular` integer
          - `medium` integer
          - `bold` integer
        - `lineHeights` object — Line height values for different text types.
          - `heading` string
          - `body` string
      - `spacing` object, nullable — Spacing and layout information.
        - `baseUnit` integer — Base spacing unit in pixels.
        - `borderRadius` string — Default border radius.
        - `padding` object — Padding values.
        - `margins` object — Margin values.
      - `components` object, nullable — UI component styles.
        - `buttonPrimary` object — Primary button styles.
          - `background` string
          - `textColor` string
          - `borderRadius` string
        - `buttonSecondary` object — Secondary button styles.
          - `background` string
          - `textColor` string
          - `borderColor` string
          - `borderRadius` string
        - `input` object — Input field styles.
      - `icons` object, nullable — Icon style information.
      - `images` object, nullable — Brand images.
        - `logo` string — Logo image URL.
        - `favicon` string — Favicon URL.
        - `ogImage` string — Open Graph image URL.
      - `animations` object, nullable — Animation and transition settings.
      - `layout` object, nullable — Layout configuration (grid, header/footer heights).
      - `personality` object, nullable — Brand personality traits (tone, energy, target audience).
    - `product` object, nullable — Product information extracted from the page if `product` is in `formats`. Includes title, brand, category, description, and variants. Pricing, availability, and images live on each variant.
      - `title` string, required — The product title.
      - `brand` string — The product brand or manufacturer.
      - `category` string — The product category, optionally as a breadcrumb path (e.g. 'Electronics > Audio > Headphones').
      - `url` string, required — The canonical URL of the product page.
      - `description` string — The product description.
      - `variants` object[], required — Product variants (e.g. different colors or sizes).
        - `id` string — The variant identifier.
        - `sku` string — The variant SKU.
        - `title` string — The variant title.
        - `values` object — The variant option values (e.g. { "color": "Black" }).
        - `price` object — The current price of the variant.
          - `amount` number, required — The numeric price amount.
          - `currency` string — The ISO 4217 currency code (e.g. 'USD').
          - `formatted` string — The price formatted for display (e.g. '$199.99').
        - `sale` object — Sale/discount information for the variant, present when the variant is discounted.
          - `originalPrice` object, required — The original (pre-discount) price of the variant.
            - `amount` number, required — The numeric price amount.
            - `currency` string — The ISO 4217 currency code (e.g. 'USD').
            - `formatted` string — The price formatted for display (e.g. '$249.99').
        - `availability` object, required — The availability of the variant. Always present on a variant.
          - `inStock` boolean, required — Whether the variant is in stock.
          - `text` string — Human-readable availability text (e.g. 'In Stock').
        - `images` object[] — Variant images.
          - `url` string, required — Image URL.
          - `alt` string — Alternative text for the image.
    - `menu` object, nullable — Menu information extracted from the page if `menu` is in `formats`. Includes the merchant, currency, and a list of sections, where each section carries items with description, images, price, availability, dietary tags, calories, and option groups.
      - `isMenu` boolean, required — Whether the page was identified as a menu.
      - `confidence` number — A confidence score between 0 and 1 for the menu extraction.
      - `merchant` object — The merchant the menu belongs to.
        - `name` string, required — The merchant name.
        - `type` string — The merchant type (e.g. 'restaurant').
      - `currency` string — The ISO 4217 currency code for the menu (e.g. 'USD'), reported only when the page sources it.
      - `sections` object[], required — Menu sections (e.g. 'Appetizers', 'Entrees').
        - `id` string — The section identifier.
        - `name` string, required — The section name.
        - `description` string, nullable — The section description.
        - `items` object[], required — The items in the section.
          - `id` string — The item identifier.
          - `name` string, required — The item name.
          - `description` string, nullable — The item description.
          - `images` object[] — Item images.
            - `url` string, required — Image URL.
            - `alt` string, nullable — Alternative text for the image.
          - `price` object — The price of the item.
            - `amount` number, required — The numeric price amount.
            - `currency` string — The ISO 4217 currency code (e.g. 'USD').
            - `formatted` string — The price formatted for display (e.g. '$7.99').
          - `availability` object — The availability of the item.
            - `inStock` boolean, required — Whether the item is available.
            - `text` string, nullable — Human-readable availability text.
          - `dietary` string[] — Dietary tags for the item (e.g. ['vegetarian']).
          - `calories` number, nullable — The item's calorie count.
          - `optionGroups` object[] — Option/modifier groups for the item.
          - `identifiers` object — Merchant-specific identifiers for the item.
            - `merchantItemId` string — The merchant's own item ID.
          - `url` string, nullable — The canonical URL of the item.
          - `sourceUrl` string, nullable — The URL the item was extracted from.
      - `sourceUrl` string, nullable — The URL the menu was extracted from.

## Other responses

- `400` — Bad request
- `402` — Payment required
- `429` — Too many requests
- `500` — Server error

---

[API](https://skmtc.net/firecrawl/apis/firecrawl-api.md) · [All operations](https://skmtc.net/firecrawl/apis/firecrawl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/firecrawl/firecrawl-api/versions/e350fafb5a2a/schema)
