Huntress Reseller API

Operations for Reseller-level API credentials. These are mostly the same endpoints available in the rest of the API. However, the account ID is included in the URL, so that you can specify which account's resources you want to access.

OpenAPI Specification

huntress-reseller-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: Huntress API Reference Accounts Reseller API
  description: "<!-- DO NOT LINT FOR FORMATTING, you will break how it appears on the docs site -->\n<p><a href='https://www.huntress.com/terms-of-service'>© Huntress - All rights reserved</a></p>\n<h1 id='introduction'>Introduction</h1>\n\n<p>Webhook event payloads are available via the dropdown menu above the search bar on this page.</p>\n\n<p>The Huntress API follows a RESTful pattern. Requests are made via resource-oriented URLs as described in this document and API responses are formatted as JSON data.</p>\n\n<p>A command-line client is also available for interacting with the API from your terminal. It requires Ruby 3.1+ and has no external dependencies. You can download it from <a href='https://api.huntress.io/api/huntress-cli'>https://api.huntress.io/api/huntress-cli</a>.</p>\n\n<p>Alternatively, if you'd prefer to use an MCP, we have <a href=\"https://support.huntress.io/hc/en-us/articles/50846554117395-Connecting-to-the-Huntress-MCP-Server\">instructions for setting up the Huntress MCP</a>. Note that the MCP is read-only, so this is a good option if you're looking for a safer way to access your Huntress data from an LLM.</p>\n\n<p>If you&#39;d like to request additional API endpoints or capabilities, <a href=\"https://feedback.huntress.com/\">submit feedback</a> through our feedback portal.</p>\n\n<h1 id='api-overview'>API Overview</h1>\n<details>\n\t<summary><h2 id='authentication'>Authentication</h2></summary>\n<div class=\"scalar-code-copy\"><pre class=\"scalar-codeblock-pre\"><code class=\"hljs language-curl\"><span class=\"hljs-variable\">$KEY</span> = </span><span class=\"hljs-built_in\">echo </span><span class=\"hljs-string\">\"$HUNTRESS_PUBLIC_KEY:$HUNTRESS_PRIVATE_KEY\"</span> | <span class=\"hljs-built_in\">base64</span>\n<span class=\"hljs-built_in\">curl </span><span class=\"hljs-string\">\"https://api.huntress.io/v1/agents\"</span> \\ -H <span class=\"hljs-string\">\"Authorization: Basic $KEY\"</span>\n</code></pre>\n</div>\n<p>To begin, generate your API Key at <code>&lt;your_account_subdomain&gt;.huntress.io</code>. Once you are logged into your account on the Huntress site, check the dropdown menu at the top-right corner of the site header. You should see <code>API Credentials</code> among the options if your account has been granted access to the Huntress API. Click on the option to continue to the API Key generation page.</p>\n\n<p>Once on the API Key generation page, click on the green Setup button to begin the process to generate your API Key. You will be redirected to a page where you will be prompted to generate your API Key. Click the Generate button to generate a public and private key pair for Huntress API access. The inputs on the page will be filled in with your access credentials once you have done so.</p>\n\n<p><strong>Your API Private Key will only be visible at this stage of API Key generation. Be sure to save the value provided somewhere secure, as once you navigate away from this page, this value will no longer be accessible and you must regenerate your API credentials if your secret key value is lost.</strong></p>\n\n<p>If necessary, you can repeat the process to regenerate your API credentials with a new API Key and API Secret Key on the same API Key generation page, at <code>&lt;your_account_subdomain&gt;.huntress.io/account/api_credentials</code>.</p>\n\n<p>The Huntress API implements basic access authentication. Once you have your API Key and API Secret Key, provide these values as the result of a Base64 encoded string in every request to the Huntress API via the <code>Authorization</code> header. Your request header should look something like <code>Authorization: Basic [Base64Encode(&lt;your_api_key&gt;:&lt;your_api_secret_key&gt;)]</code>. Please refer to the code snippets for further examples.</p>\n</details>\n<details>\n\t<summary><h2 id='rate-limits'>Rate Limits</h2></summary>\n<p>Every Huntress API account is rate limited to 60 requests per minute, on a sliding window. This means that no more than 60 requests can be made within a 60 second time interval between the first request and the last request.</p>\n\n<p>For example, if request 1 is made at T0, request 2 is made at T5, and requests 3 through 60 are made at T10, making request 61 at T55 would result in a 429 error response. Making request 61 at T61 would succeed, however making request 62 at T61 would fail, at least until the time has passed T65, corresponding to a minute after request 2 was made.</p>\n</details>\n<details>\n\t<summary><h2 id='http-response-codes'>HTTP Response Codes</h2></summary>\n<p>Huntress follows HTTP standards when delivering responses: a <code>2xx</code> response is a success, a <code>4xx</code> response indicates an issue with the client request, and a <code>5xx</code> response indicates an issue with Huntress servers.\n<br>\n<br>\nSpecific error codes are detailed in the following table:</p>\n<table><thead>\n<tr>\n<th>Error Status Code</th>\n<th>Details</th>\n</tr>\n</thead><tbody>\n<tr>\n<td>400</td>\n<td>There is an unexpected value in the API request being made.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Your request could not be authenticated. Check that your API key is properly formatted and included in the <code>Authorization</code> header.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>The requested resource is unavailable: either it doesn&#39;t exist, or your account does not hold correct permissions to access it.</td>\n</tr>\n<tr>\n<td>429</td>\n<td>You have made too many requests within the rate limit timeframe. See the previous section on <a href=\"#rate_limits\">rate_limits</a> for details.</td>\n</tr>\n<tr>\n<td>500</td>\n<td><p>An error has occurred within Huntress servers.</p><p>You could retry the request, but if you encounter continued errors, please <a href=\"https://support.huntress.io\">contact Support</a> with details of your error. If all traffic from Huntress is resulting in 500 responses, please check our <a href=\"https://huntressstatus.statuspage.io/\">Huntress Status Page</a>.</p></td>\n</tr>\n</tbody></table>\n</details>\n<details>\n\t<summary><h2 id='pagination'>Pagination</h2></summary>\n<p>Certain Huntress API endpoints utilize a <code>page_token</code> and <code>limit</code> parameter to specify a window location and size, respectively, to the resources currently being requested.\n<br><br>\nEach API request will also return a pagination object with details about your current pagination state based on the parameters provided. The pagination object contains:<br></p>\n\n<table><thead>\n<tr>\n<th>Key</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead><tbody>\n<tr>\n<td>next_page_token</td>\n<td>string</td>\n<td>The token used to request the next page in paginated results. If no page token is included, the first page contains all results.</td>\n</tr>\n<tr>\n<td>next_page_url</td>\n<td>string</td>\n<td>URL containing the next page and the limit provided in the original API request, to be used to continue sequentially accessing resources. Only displays when another page can be accessed.</td>\n</tr>\n</tbody></table>\n<br>\n<p>Following is a formatted example of the pagination object in an API response:<br>\n<div class=\"scalar-code-copy\">\n<pre class=\"scalar-codeblock-pre\">\n<code class=\"hljs language-json\"><span class=\"hljs-attr\">\"pagination\"</span><span class=\"hljs-punctuation\">: {</span>\n<span class=\"hljs-attr\">  \"next_page_url\"</span><span class=\"hljs-punctuation\">: </span><span class=\"hljs-string\">\"https://api.huntress.io/v1/agents?page_token=MjAyMi0wMy0wMVQxODo1NDoyNFo&amp;limit=10\"</span><span class=\"hljs-punctuation\">,\n</span><span class=\"hljs-attr\">  \"next_page_token\"</span><span class=\"hljs-punctuation\">: </span><span class=\"hljs-string\">\"MjAyMi0wMy0wMVQxODo1NDoyNFo\"</span><span class=\"hljs-punctuation\">\n}</span></code></pre>\n</div>\n</details>\n<details>\n\t<summary><h2 id='request-and-response-format'>Request and Response Format</h2></summary>\n\t<details>\n\t\t<summary><h3 id='request'>Request</h3></summary>\n\t<div class=\"scalar-code-copy\">\n<pre class=\"scalar-codeblock-pre\">\n<code class=\"hljs language-curl\"><span class=\"hljs-built_in\">curl</span> <span class=\"hljs-string\">\"https://api.huntress.io/v1/agents?organization_id=1&amp;page_token=MjAyMi0wMy0wMVQxODo1NDoyNFo\"</span> -H <span class=\"hljs-string\">\"Authorization: Basic &lt;Your B64 encoded hash&gt;\"</span></code></pre></div>\n\t<p>The base URL for API requests is <code>api.huntress.io/v1/</code>, followed by the resource requested. Resources can be requested either singularly or as a list, which correspond to <code>/v1/&lt;resources&gt;/:id</code> or <code>/v1/&lt;resources&gt;</code> respectively, with the exception of the <code>/v1/account</code> and <code>/v1/actor</code> endpoints, which only returns the account associated with the API credentials provided.</p>\n\t<p>As an example, <code>api.huntress.io/v1/agents</code> would return a list of agents, while <code>api.huntress.io/v1/agents/1</code> would return a singular agent with ID: 1.</p>\n\t<p>Parameters are provided to the API through a query string. As an example, providing the organization_id filter as a parameter to the <code>/v1/agents</code> endpoint would look like <code>api.huntress/io/v1/agents?organization_id=1</code>. Accessing a sequential page with the same filter active would look like <code>api.huntress.io/v1/agents?organization_id=1&amp;page_token=MjAyMi0wMy0wMVQxODo1NDoyNFo</code>.</p>\n\t</details>\n\t<details>\n\t\t<summary><h3 id='response'>Response</h3></summary>\n\t<p>The Huntress API responds with a JSON object containing requested resources if the request is valid and authorized.</p>\n\t<h4 id='singular-case'>Singular Case</h4>\n\t<div class=\"scalar-code-copy\">\n\t<pre class=\"scalar-codeblock-pre\"><code class=\"hljs-json\"><span class=\"hljs-punctuation\">{</span>\n<span class=\"hljs-attr\">  \"report\"</span><span class=\"hljs-punctuation\">: { ... }\n}</span></code>\n</div>\n\t<p>In the case of accessing a singular resource, the JSON object in question will contain one key that maps the singular resource to the singular representation of the resource name. As an example, if you were to request <code>api.huntress.io/v1/reports/1</code>, the JSON response would contain a single key <code>report</code> that maps to the report with ID: 1.</p>\n\t<h4 id='multiple-case'>Multiple Case</h4><div class=\"highlight\"><pre class=\"highlight json tab-json\">\n<pre class=\"scalar-codeblock-pre\"><code  class=\"hljs-json\"><span class=\"hljs-punctuation\">{</span>\n<span class=\"hljs-attr\">  \"reports\"</span><span class=\"hljs-punctuation\">: [ ... ],</span>\n<span class=\"hljs-attr\">  \"pagination\"</span><span class=\"hljs-punctuation\">: { ... }</span>\n<span class=\"hljs-punctuation\">}</span>\n</code></pre></div>\n\t<p>When accessing a list of resources, the JSON response contains two keys at the root level. The first key is the plural representation of that resource. The second is a <code>pagination</code> key that represents the current state of pagination based on parameters provided in the original request. As an example, a request to <code>api.huntress.io/v1/reports</code> returns a JSON object with the keys <code>reports</code> and <code>pagination</code> at its root level. Further details on the fields within the pagination object can be seen at <a href=\"#pagination\">the relevant section</a>.</p>\n\t</details>\n</details>\n"
  version: 1.0.0
host: api.huntress.io
schemes:
- https
produces:
- application/json
security:
- basic:
  - basic_auth
tags:
- name: Reseller
  description: Operations for Reseller-level API credentials. These are mostly the same endpoints available in the rest of the API. However, the account ID is included in the URL, so that you can specify which account's resources you want to access.
paths:
  /v1/reseller/invoices:
    get:
      summary: List Reseller Invoices
      description: 'Shows Invoices associated with the current reseller.


        **Note:** To see the details of a given invoice, you will

        probably want to also fetch the associated Account Usage Line Items and

        Organization Usage Line Items.


        **Note:** This endpoint will also return a `pagination` key on the root

        level. Please refer to the [pagination

        section](https://api.huntress.io/docs#pagination) within our docs for

        more information.

        '
      produces:
      - application/json
      parameters:
      - in: query
        name: limit
        description: Max number of resources returned in a paged collection. Defaults to 10, with a minimum of 1 and maximum 500.
        type: integer
        format: int32
        default: 10
        minimum: 1
        maximum: 500
        required: false
      - in: query
        name: page_token
        description: Token used to request the next page in paginated results. Defaults to 'null'
        type: string
        required: false
      - in: query
        name: status
        description: Filter by status. One of open, paid, failed, partial_refund, full_refund, draft, voided, processing
        type: string
        enum:
        - open
        - paid
        - failed
        - partial_refund
        - full_refund
        - draft
        - voided
        - processing
        required: false
      responses:
        '200':
          description: List Reseller Invoices
          schema:
            type: object
            properties:
              invoices:
                type: array
                items:
                  $ref: '#/definitions/Invoice'
              pagination:
                $ref: '#/definitions/Pagination'
            required:
            - invoices
            - pagination
        '400':
          description: Invalid query parameters
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Invoice'
      tags:
      - Reseller
      operationId: getV1ResellerInvoices
  /v1/reseller/invoices/{id}:
    get:
      summary: Get Reseller Invoice
      description: 'Shows a specific Reseller Invoice associated with the current

        reseller.


        Note: To see the details of this invoice, you will probably

        want to also fetch the associated Account Usage Line Items and

        Organization Usage Line Items.

        '
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get Reseller Invoice
          schema:
            type: object
            properties:
              invoice:
                $ref: '#/definitions/Invoice'
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Invoice'
        '404':
          description: Invoice not found
      tags:
      - Reseller
      operationId: getV1ResellerInvoicesId
  /v1/reseller/invoices/{id}/account_usage_line_items:
    get:
      summary: List Account Usage Line Items
      description: "Shows a list of Account Usage Line Items.\n\nThis list provides a detailed breakdown of product usage per account from a given invoice.\n\n**Note:** This endpoint will also return a `pagination` key on the root level.  \nPlease refer to the [pagination section](https://api.huntress.io/docs#pagination) within our docs for more information.\n"
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: query
        name: limit
        description: Max number of resources returned in a paged collection. Defaults to 10, with a minimum of 1 and maximum 500.
        type: integer
        format: int32
        default: 10
        minimum: 1
        maximum: 500
        required: false
      - in: query
        name: page_token
        description: Token used to request the next page in paginated results. Defaults to 'null'
        type: string
        required: false
      responses:
        '200':
          description: List Account Usage Line Items
          schema:
            type: object
            properties:
              account_usage_line_items:
                type: array
                items:
                  $ref: '#/definitions/AccountUsageLineItem'
              pagination:
                $ref: '#/definitions/Pagination'
            required:
            - account_usage_line_items
            - pagination
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/AccountUsageLineItem'
      tags:
      - Reseller
      operationId: getV1ResellerInvoicesIdAccountUsageLineItems
  /v1/reseller/invoices/{id}/organization_usage_line_items:
    get:
      summary: List Organization Usage Line Items
      description: "Shows a list of Organization Usage Line Items.\n\nThis list provides a detailed breakdown of product usage per organization from a given invoice.\n\n**Note:** This endpoint will also return a `pagination` key on the root level.  \nPlease refer to the [pagination section](https://api.huntress.io/docs#pagination) within our docs for more information.\n"
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: query
        name: limit
        description: Max number of resources returned in a paged collection. Defaults to 10, with a minimum of 1 and maximum 500.
        type: integer
        format: int32
        default: 10
        minimum: 1
        maximum: 500
        required: false
      - in: query
        name: page_token
        description: Token used to request the next page in paginated results. Defaults to 'null'
        type: string
        required: false
      responses:
        '200':
          description: List Organization Usage Line Items
          schema:
            type: object
            properties:
              organization_usage_line_items:
                type: array
                items:
                  $ref: '#/definitions/OrganizationUsageLineItem'
              pagination:
                $ref: '#/definitions/Pagination'
            required:
            - organization_usage_line_items
            - pagination
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/OrganizationUsageLineItem'
      tags:
      - Reseller
      operationId: getV1ResellerInvoicesIdOrganizationUsageLineItems
  /v1/reseller/subscriptions:
    get:
      summary: List Reseller Subscriptions
      description: 'Shows subscriptions associated with the current reseller''s managed accounts.


        **Note:** This endpoint will also return a `pagination` key on the root

        level. Please refer to the [pagination

        section](https://api.huntress.io/docs#pagination) within our docs for

        more information.

        '
      produces:
      - application/json
      parameters:
      - in: query
        name: limit
        description: Max number of resources returned in a paged collection. Defaults to 10, with a minimum of 1 and maximum 500.
        type: integer
        format: int32
        default: 10
        minimum: 1
        maximum: 500
        required: false
      - in: query
        name: page_token
        description: Token used to request the next page in paginated results. Defaults to 'null'
        type: string
        required: false
      - in: query
        name: sort_field
        description: Field to sort by. Defaults to 'id'.
        type: string
        default: id
        enum:
        - id
        - status
        - minimum
        - created_at
        - updated_at
        required: false
      - in: query
        name: sort_direction
        description: Sort direction. Defaults to 'desc'.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: product
        description: Filter by product type
        type: string
        enum:
        - edr
        - ispm
        - itdr
        - sat
        - siem
        required: false
      - in: query
        name: status
        description: Filter by status
        type: string
        enum:
        - draft
        - approved
        - accepted
        - active
        - completed
        required: false
      responses:
        '200':
          description: List Reseller Subscriptions
          schema:
            type: object
            properties:
              subscriptions:
                type: array
                items:
                  $ref: '#/definitions/Subscription'
              pagination:
                $ref: '#/definitions/Pagination'
            required:
            - subscriptions
            - pagination
        '400':
          description: Invalid query parameters
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Subscription'
      tags:
      - Reseller
      operationId: getV1ResellerSubscriptions
    post:
      summary: Create Reseller Subscription
      description: 'Creates a subscription for a product on a reseller-managed account.


        **Note:** This endpoint only allows the creation of subscriptions that

        use the default terms, conditions, and pricing. Please contact your

        account admin for any terms that are not covered by our standard API.

        '
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: SubscriptionCreationParameters
        in: body
        required: true
        schema:
          $ref: '#/definitions/SubscriptionCreationParameters'
      responses:
        '201':
          description: Create Reseller Subscription
          schema:
            type: object
            properties:
              subscription:
                $ref: '#/definitions/Subscription'
        '400':
          description: Invalid parameters
        '404':
          description: Record not found (likely the account)
        '422':
          description: Could not create subscription
      tags:
      - Reseller
      operationId: SubscriptionCreationParameters
  /v1/reseller/subscriptions/{id}:
    get:
      summary: Get Reseller Subscription
      description: Shows details on a single subscription associated with the current reseller's managed accounts.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get Reseller Subscription
          schema:
            type: object
            properties:
              subscription:
                $ref: '#/definitions/Subscription'
        '400':
          description: Something about the request is malformed.
        '404':
          description: Record not found.
      tags:
      - Reseller
      operationId: getV1ResellerSubscriptionsId
    patch:
      summary: Update Reseller Subscription
      description: 'Updates a subscription associated with the current reseller''s managed accounts.


        For **approved** subscriptions: updates minimum, billing_interval, and purchase_order.


        For **active** subscriptions: toggles `auto_renew` and/or adds units via `additional_units` (with optional `purchase_order`).

        '
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: SubscriptionUpdateParameters
        in: body
        required: true
        schema:
          $ref: '#/definitions/SubscriptionUpdateParameters'
      responses:
        '200':
          description: Update Reseller Subscription
          schema:
            type: object
            properties:
              subscription:
                $ref: '#/definitions/Subscription'
        '400':
          description: Something about the request is malformed.
        '404':
          description: Record not found.
        '409':
          description: Subscription is not in a valid status for this update.
        '422':
          description: Could not update subscription.
      tags:
      - Reseller
      operationId: SubscriptionUpdateParameters
  /v1/reseller/subscriptions/{id}/upgrade:
    post:
      summary: Upgrade Reseller Subscription
      description: 'Upgrades an active subscription by creating a new subscription with a

        higher minimum and/or price tier, replacing the existing one.


        This is modeled as a sub-resource because the operation creates a new

        subscription record rather than modifying the existing one in place.

        '
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: SubscriptionUpgradeParameters
        in: body
        required: true
        schema:
          $ref: '#/definitions/SubscriptionUpgradeParameters'
      responses:
        '201':
          description: Upgrade Reseller Subscription
          schema:
            type: object
            properties:
              subscription:
                $ref: '#/definitions/Subscription'
        '400':
          description: Something about the request is malformed.
        '404':
          description: Record not found.
        '422':
          description: Could not upgrade subscription.
      tags:
      - Reseller
      operationId: SubscriptionUpgradeParameters
  /v1/accounts:
    get:
      summary: List Accounts
      description: "Shows all accounts associated with your API credentials.\n\n**Note:** This endpoint will also return a `pagination` key on the root level.  \nPlease refer to the [pagination section](https://api.huntress.io/docs#pagination) within our docs for more information.\n"
      produces:
      - application/json
      parameters:
      - in: query
        name: limit
        description: Max number of resources returned in a paged collection. Defaults to 10, with a minimum of 1 and maximum 500.
        type: integer
        format: int32
        default: 10
        minimum: 1
        maximum: 500
        required: false
      - in: query
        name: page_token
        description: Token used to request the next page in paginated results. Defaults to 'null'
        type: string
        required: false
      - in: query
        name: sort_field
        description: Field to sort by. Defaults to 'id'.
        type: string
        default: id
        enum:
        - id
        - name
        - subdomain
        - created_at
        - updated_at
        required: false
      - in: query
        name: sort_direction
        description: Sort direction. Defaults to 'desc'.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: status
        description: Filter by status.
        type: string
        enum:
        - enabled
        - disabled
        required: false
      - in: query
        name: name
        description: Filter by account name.
        type: string
        required: false
      - in: query
        name: subdomain
        description: Filter by subdomain.
        type: string
        required: false
      responses:
        '200':
          description: List Accounts
          schema:
            type: object
            properties:
              accounts:
                type: array
                items:
                  $ref: '#/definitions/Account'
              pagination:
                $ref: '#/definitions/Pagination'
            required:
            - accounts
            - pagination
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Account'
      tags:
      - Reseller
      operationId: getV1Accounts
    post:
      summary: Create Account
      description: Create a new account under the reseller associated with the supplied API credential.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: AccountCreationParameters
        in: body
        required: true
        schema:
          $ref: '#/definitions/AccountCreationParameters'
      responses:
        '201':
          description: Create Account
          schema:
            type: object
            properties:
              account:
                $ref: '#/definitions/Account'
        '400':
          description: Invalid account creation parameters
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Account'
        '409':
          description: Something about the state of this reseller prevents this account from being created
        '422':
          description: Could not create account
      tags:
      - Reseller
      operationId: AccountCreationParameters
  /v1/accounts/{account_id}:
    get:
      summary: Get Specific Account
      description: Shows the details of a specific account which your API credentials grant access to.
      produces:
      - application/json
      parameters:
      - in: path
        name: account_id
        description: Account ID for an account associated with your API credentials
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get Specific Account
          schema:
            type: object
            properties:
              account:
                $ref: '#/definitions/Account'
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Account'
      tags:
      - Reseller
      operationId: getV1AccountsAccountId
    patch:
      summary: Update Account
      description: Updates the details of a specific account.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: account_id
        type: integer
        format: int32
        required: true
      - name: AccountUpdateParameters
        in: body
        required: true
        schema:
          $ref: '#/definitions/AccountUpdateParameters'
      responses:
        '200':
          description: Update Account
          schema:
            type: object
            properties:
              account:
                $ref: '#/definitions/Account'
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Account'
        '422':
          description: Invalid parameters or unable to update model
      tags:
      - Reseller
      operationId: AccountUpdateParameters
    delete:
      summary: Permanently Disable an Account
      description: "Marks the account as disabled and will be deleted after 10 days from initial request.\n\n**Please Note:** This is irreversible and will uninstall all of the agents for this account, as well as completing other similar operations. \n[Contact support](https://support.huntress.io/hc/en-us) if this was done unintentionally.\n"
      produces:
      - application/json
      parameters:
      - in: path
        name: account_id
        description: Account ID for deletion.
        type: integer
        format: int32
        required: true
      responses:
        '202':
          description: Permanently Disable an Account
          schema:
            type: object
            properties:
              account:
                $ref: '#/definitions/Account'
        '403':
          description: There was an issue with your API credential or permissions.
          schema:
            $ref: '#/definitions/Account'
        '422':
          description: Account failed to be disabled.
      tags:
      - Reseller
      operationId: deleteV1AccountsAccountId
  /v1/accounts/{account_id}/agents:
    get:
      summary:

# --- truncated at 32 KB (153 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/huntress/refs/heads/main/openapi/huntress-reseller-api-openapi.yml