> ## Documentation Index
> Fetch the complete documentation index at: https://razorpay-881012b3.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch Document Content

> Fetch Document Content using Razorpays API.

<div style={{display:"flex",flexWrap:"wrap",alignItems:"center",gap:"0.35rem 0.9rem",border:"1px solid rgba(128,128,128,0.28)",borderRadius:"0.5rem",padding:"0.45rem 0.75rem",margin:"0 0 1.25rem",fontSize:"0.875rem"}}>
  <span style={{fontWeight:600}}>Available in</span>
  <span>🇮🇳 India</span>
  <span>🇺🇸 United States</span>
</div>

Use this endpoint to download an earlier uploaded document. The response is the **raw file content** (binary) with the original `Content-Type` header (for example, `image/jpeg` for an uploaded image), not a JSON object.

<RequestExample>
  ```bash Curl theme={null}
  curl -u [YOUR_KEY_ID]:[YOUR_KEY_SECRET]
  -X GET https://api.razorpay.com/v1/documents/:id/content
  ```

  ```bash CLI theme={null}
  #Download document content (save to file)

  razorpay documents fetch-content doc_1234567890abcd --output /path/to/output.jpg

  #Download document content (stream to stdout)

  razorpay documents fetch-content doc_1234567890abcd > /path/to/output.jpg
  ```
</RequestExample>

<ResponseExample>
  ```json Failure theme={null}
  {
    "error":{
      "status_code": 401,
      "description":"The API `<key/secret>` provided is invalid.",
      "code":"BAD_REQUEST_ERROR"
    }
  }
  ```
</ResponseExample>

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier of the document.
</ParamField>

## Errors

<AccordionGroup>
  <Accordion
    title="The API `<key/secret>
` provided is invalid."
  >
    **Code:** `400`

    The API credentials passed in the API call differ from the ones generated on the Dashboard.

    * Different keys for test mode and live modes.
    * Expired API key.

    **Solution:** The API keys must be active and entered correctly with no whitespace before or after the keys.
  </Accordion>

  <Accordion title="_id is not a valid id.">
    **Code:** `400`

    * The id is not 14 characters long.
    * The id is not alphanumeric.

    **Solution:** Use a valid document id.
  </Accordion>

  <Accordion title="Invalid file id provided or merchant is unauthorized to access the fileId(s) provided.">
    **Code:** `400`

    The `id` does not exist, or it belongs to a different merchant. The API returns the same error for both cases for security reasons (so callers cannot enumerate other merchants' document ids).

    **Solution:** Pass a valid `id` that was created by this merchant account.
  </Accordion>
</AccordionGroup>
