Getting Started with Warehance API

The Warehance API provides programmatic access to Warehance's inventory, order, and shipment management services. It is designed for small to medium-sized brands and 3PLs, enabling robust automations, comprehensive order management, inventory management suites, batch shipping, zone picking, carrier connection integrations, and dynamic rate shopping. The API supports integration with various marketplaces and carriers, allowing seamless scaling of warehouse operations across multiple locations.

  ## Authentication

  To securely interact with the Warehance API, you must authenticate your requests using an API Key. Below are the steps and guidelines to properly authenticate your API requests.

  ### 1. Obtaining an API Key

  1. **Log in to Warehance:**
      - Navigate to [Warehance](https://app.warehance.com/) and log in with your credentials.

  2. **Navigate to API Settings:**
      - Once logged in, go to the **Settings** section located in the sidebar.

  3. **Generate API Key:**
      - In the **API Keys** subsection, click on **Generate New API Key**.
      - Provide a meaningful name for the API Key to identify its usage (e.g., "Production Key" or "Development Key").
      - Click **Generate** to create the API Key.

  4. **Store API Key Securely:**
      - **Important:** Copy the generated API Key and store it in a secure location. This key will not be shown again for security reasons.
      - **Do not** expose your API Key in client-side code, public repositories, or any unsecured environment.

  ### 2. Including the API Key in Requests

  All API requests must include the API Key in the request headers to authenticate and authorize access.

  - **Header Name:** `X-API-KEY`
  - **Header Value:** Your unique API Key

  **Example Request:**

  ```http
  GET /orders HTTP/1.1
  Host: api.warehance.com
  X-API-KEY: your_api_key_here
  ```

  ## OpenAPI Specification

  The complete OpenAPI specification for this API is available in both YAML and JSON formats. You can access these programmatically for use with API clients, code generators, and other tools.

  ### Available Formats

  - **YAML Format:** [https://api.warehance.com/v1/openapi.yaml](https://api.warehance.com/v1/openapi.yaml)
  - **JSON Format:** [https://api.warehance.com/v1/openapi.json](https://api.warehance.com/v1/openapi.json)

  ### Usage Examples

  **Import into Postman:**
  1. Open Postman and click **Import**
  2. Select **Link** and paste: `https://api.warehance.com/v1/openapi.yaml`
  3. Click **Continue** to import the collection

  **Generate Client Code:**
  ```bash
  # Using OpenAPI Generator
  openapi-generator-cli generate \
    -i https://api.warehance.com/v1/openapi.yaml \
    -g python \
    -o ./warehance-client

  # Using Swagger Codegen
  swagger-codegen generate \
    -i https://api.warehance.com/v1/openapi.json \
    -l javascript \
    -o ./warehance-js-client
  ```

  **View in Swagger UI:**
  Visit [Swagger Editor](https://editor.swagger.io/) and import the specification URL to explore the API interactively.

  These endpoints are publicly accessible and do not require authentication.