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

# Files

> Upload files to OpenAI

## Uploading Files

**REST**

```sh theme={"system"}
curl --location --request POST 'https://aigw.portkey.ai/v1/files' \
--header 'Authorization: Bearer <portkey_api_key>' \
--header 'x-portkey-provider: @provider' \
--form 'purpose="<purpose>"' \
--form 'file=@"<file_path>"'
```

**OpenAI NodeJS**

```js theme={"system"}
import OpenAI from 'openai'; // We're using the v4 SDK

const openai = new OpenAI({
  apiKey: "PORTKEY_API_KEY",  // defaults to process.env["PORTKEY_API_KEY"]
  baseURL: "https://aigw.portkey.ai/v1",
  defaultHeaders: {
      "x-portkey-provider": "openai",
  }
});

const uploadFile = async () => {
  const file = await openai.files.create({
    purpose: "batch",
    file: fs.createReadStream("file.pdf")
  });

  console.log(file);
}

await uploadFile();
```

**OpenAI Python**

```python theme={"system"}
from openai import OpenAI

openai = OpenAI(
    api_key="PORTKEY_API_KEY",
    base_url="https://aigw.portkey.ai/v1",
    default_headers={"x-portkey-provider": "openai"}
)

upload_file_response = openai.files.create(
  purpose="batch",
  file=open("file.pdf", "rb")
)

print(upload_file_response)
```

## List Files

**REST**

```sh theme={"system"}
curl --location 'https://aigw.portkey.ai/v1/files' \
--header 'Authorization: Bearer <portkey_api_key>' \
--header 'x-portkey-provider: @provider'
```

**OpenAI NodeJS**

```js theme={"system"}
import OpenAI from 'openai'; // We're using the v4 SDK

const openai = new OpenAI({
  apiKey: "PORTKEY_API_KEY",  // defaults to process.env["PORTKEY_API_KEY"]
  baseURL: "https://aigw.portkey.ai/v1",
  defaultHeaders: {
      "x-portkey-provider": "openai",
  }
});

const listFiles = async () => {
  const files = await openai.files.list();

  console.log(file);
}

await listFiles();
```

**OpenAI Python**

```python theme={"system"}
from openai import OpenAI

openai = OpenAI(
    api_key="PORTKEY_API_KEY",
    base_url="https://aigw.portkey.ai/v1",
    default_headers={"x-portkey-provider": "openai"}
)

files = openai.files.list()

print(files)
```

## Get File

**REST**

```sh theme={"system"}
curl --location 'https://aigw.portkey.ai/v1/files/<file_id>' \
--header 'Authorization: Bearer <portkey_api_key>' \
--header 'x-portkey-provider: @provider'
```

**OpenAI NodeJS**

```js theme={"system"}
import OpenAI from 'openai'; // We're using the v4 SDK

const openai = new OpenAI({
  apiKey: "PORTKEY_API_KEY",  // defaults to process.env["PORTKEY_API_KEY"]
  baseURL: "https://aigw.portkey.ai/v1",
  defaultHeaders: {
      "x-portkey-provider": "openai",
  }
});

const getFile = async () => {
  const file = await openai.files.retrieve(file_id="file_id");

  console.log(file);
}

await getFile();
```

**OpenAI Python**

```python theme={"system"}
from openai import OpenAI

openai = OpenAI(
    api_key="PORTKEY_API_KEY",
    base_url="https://aigw.portkey.ai/v1",
    default_headers={"x-portkey-provider": "openai"}
)

file = openai.files.retrieve(file_id="file_id")

print(file)
```

## Get File Content

**REST**

```sh theme={"system"}
curl --location 'https://aigw.portkey.ai/v1/files/<file_id>/content' \
--header 'Authorization: Bearer <portkey_api_key>' \
--header 'x-portkey-provider: @provider'
```

**OpenAI NodeJS**

```js theme={"system"}
import OpenAI from 'openai'; // We're using the v4 SDK

const openai = new OpenAI({
  apiKey: "PORTKEY_API_KEY",  // defaults to process.env["PORTKEY_API_KEY"]
  baseURL: "https://aigw.portkey.ai/v1",
  defaultHeaders: {
      "x-portkey-provider": "openai",
  }
});

const getFileContent = async () => {
  const file_content = await openai.files.content(file_id="file_id");

  console.log(file_content);
}

await getFileContent();
```

**OpenAI Python**

```python theme={"system"}
from openai import OpenAI

openai = OpenAI(
    api_key="PORTKEY_API_KEY",
    base_url="https://aigw.portkey.ai/v1",
    default_headers={"x-portkey-provider": "openai"}
)

file_content = openai.files.content(file_id="file_id")

print(file_content)
```

## Delete File

**REST**

```sh theme={"system"}
curl --location --request DELETE 'https://aigw.portkey.ai/v1/files/<file_id>' \
--header 'Authorization: Bearer <portkey_api_key>' \
--header 'x-portkey-provider: @provider'
```

**OpenAI NodeJS**

```js theme={"system"}
import OpenAI from 'openai'; // We're using the v4 SDK

const openai = new OpenAI({
  apiKey: "PORTKEY_API_KEY",  // defaults to process.env["PORTKEY_API_KEY"]
  baseURL: "https://aigw.portkey.ai/v1",
  defaultHeaders: {
      "x-portkey-provider": "openai",
  }
});

const deleteFile = async () => {
  const delete_file_response = await openai.files.delete(file_id="file_id");

  console.log(delete_file_response);
}

await deleteFile();
```

**OpenAI Python**

```python theme={"system"}
from openai import OpenAI

openai = OpenAI(
    api_key="PORTKEY_API_KEY",
    base_url="https://aigw.portkey.ai/v1",
    default_headers={"x-portkey-provider": "openai"}
)

delete_file_response = openai.files.delete(file_id="file_id")

print(delete_file_response)
```


## Related topics

- [Files](https://docs.portkey.ai/docs/aigw/integrations/llms/anthropic/files.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.