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

# Resume Uploads

> Upload resume and get a public link

## Overview

The One Click Apply API requires a a resume key. Use the `/upload_resume` API to get a key you can use with our [/apply](https://docs.oneclickapply.co/api-reference/endpoint/apply) API.

You only have to create a key for a resume once and you can reuse it as much as you want.

You need to authorize the call with your API Key and it only accepts PDF files.

## Example Implementation

* Here's a simple [JS implementation](https://replit.com/@Marvy101/OCA-uploadresume-JS) in [Replit](https://replit.com).

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
  --url https://api.oneclickapply.co/api/v1/upload_resume \
  --header 'API-Key: YOUR_API_KEY' \
  --form 'file=@/path/to/your/Resume.pdf'
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.oneclickapply.co/api/v1/upload_resume"
  api_key = "<api-key>"
  file_path = "/path/to/your/Resume.pdf"
  headers = {
      'API-Key': api_key
  }
  files = {
      'file': open(file_path, 'rb')
  }
  response = requests.post(url, headers=headers, files=files)

  print(response.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
      "status": 200,
      "message": "Resume uploaded successfully",
      "key": "uidofresume"
  }
  ```

  ```json 400 theme={null}
  {
      "status": 400,
      "message": "Invalid file format"
  }
  ```

  ```json 403 theme={null}
  {
      "status": 403,
      "message": "API key does not exist"
  }
  ```

  ```json 500 theme={null}
  {
      "status": 500,
      "message": "Failed to upload resume",
      "error": "Internal Server Error"
  }
  ```
</ResponseExample>
