---
updatedAt: 2025-07-22T07:42:49.000Z
---

Fetch the complete documentation index at: https://apidocs.hibob.com/llms.txt. Use this file to discover all available pages before exploring further.

# Get the report download URL for polling

This endpoint asynchronously generates a report, based on the specified format. If successful it returns the status `Accepted` and sets the URL of the newly generated report in the response header under a header called `Location`.<br /> You can then obtain the report name and pass it to the next endpoint ([Download report file by URL](https://apidocs.hibob.com/reference/get_company-reports-download-reportname)):<br /> 1. Click **Headers** at the bottom of the response to see the URL.<br />  2. Copy only the name of the report (after the /download/ part) and paste to the `reportName` for download.<br />  <br />  <b>Permissions required:</b>  <br /> The service user that you use for this call should have the required permissions. To learn more, see [Reports permissions](https://apidocs.hibob.com/reference/reports).

# OpenAPI definition

```json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Reports API",
    "description": "Use Public API to access Reports in Bob",
    "license": {
      "name": "Proprietary",
      "url": "https://apidocs.hibob.com/docs/api-terms-of-use"
    },
    "contact": {
      "name": "Hi Bob, Inc."
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.hibob.com/v1",
      "description": "Production"
    },
    {
      "url": "https://api.sandbox.hibob.com/v1",
      "description": "Sandbox"
    }
  ],
  "x-readme": {
    "metrics-enabled": false
  },
  "paths": {
    "/company/reports/{reportId}/download-async": {
      "get": {
        "operationId": "get_company-reports-reportid-download-async",
        "tags": [
          "Reports"
        ],
        "summary": "Get the report download URL for polling",
        "description": "This endpoint asynchronously generates a report, based on the specified format. If successful it returns the status `Accepted` and sets the URL of the newly generated report in the response header under a header called `Location`.<br /> You can then obtain the report name and pass it to the next endpoint (<a href=\"https://apidocs.hibob.com/reference/get_company-reports-download-reportname\" target=\"_blank\">Download report file by URL</a>):<br /> 1. Click **Headers** at the bottom of the response to see the URL.<br />  2. Copy only the name of the report (after the /download/ part) and paste to the `reportName` for download.<br />  <br />  <b>Permissions required:</b>  <br /> The service user that you use for this call should have the required permissions. To learn more, see <a href=\"https://apidocs.hibob.com/reference/reports\" target=\"_blank\">Reports permissions</a>.",
        "parameters": [
          {
            "name": "reportId",
            "in": "path",
            "description": "The ID of the report to download. You can get this from the response of  <a href=\"https://apidocs.hibob.com/reference/get_company-reports\" target=\"_blank\">Read company reports ↗</a>,  or from the report’s URL in Bob's UI. <br /><br /> <b>Note⚠️:</b> To use this endpoint, replace `reportId` in the path with a valid report ID from your account. If left blank or set to an invalid ID, the request will return an error.\n",
            "required": true,
            "schema": {
              "type": "number",
              "example": "<REPLACE_WITH_REPORT_ID>"
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "File format",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "csv",
                "xlsx"
              ],
              "default": "csv"
            }
          },
          {
            "name": "includeInfo",
            "in": "query",
            "description": "Should include info",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "locale",
            "in": "query",
            "description": "Requested language for the report columns in the format of the locale (e.g. fr-FR). If this is not provided, the user preferences locale is used.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "humanReadable",
            "in": "query",
            "description": "Optional field. Only enforced when <i><b>format</b></i> is <i>json</i>. <br> <b>If not sent:</b> supply machine-readable values only. If you pass an invalid value it will be ignored.<br> <br> Possible values: <br>  <br> <b>APPEND</b> - include the additional \"humanReadable\" JSON node in the response. <br>  <br> <b>REPLACE</b> - supply humanReadable values in JSON instead of machine-readable format. <br>",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Report URL under \"Location\" in the response header.",
            "content": {}
          },
          "202": {
            "description": "Accepted - Report generation started"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "basic": []
          },
          {
            "Bearer": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The unique identifier of the error."
          },
          "error": {
            "type": "string",
            "description": "A human readable error message."
          }
        }
      }
    },
    "securitySchemes": {
      "basic": {
        "type": "http",
        "scheme": "basic",
        "description": "Basic HTTP authentication using service user credentials"
      },
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "OAuth 2.0",
        "description": "OAuth 2.0 authentication using an Access Token is available for registered partners only.  Try It! does not support the full HiBob OAuth flow. You can follow <a href=\"https://apidocs.hibob.com/reference/oauth-20#testing-from-the-public-api-reference\" target=\"_blank\">these steps</a> to complete the OAuth 2.0 flow in Postman and then paste the token here."
      }
    }
  }
}
```