Dealhubio Version Management API
Endpoints for retrieving, creating, and managing versions.
Endpoints for retrieving, creating, and managing versions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/dealhubio:dealhubio-version-management-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Version Management API
description: 'This API provides a comprehensive set of services for managing versions and the associated product catalog within the DealHub CPQ system. It allows for system-to-system integration to get, create, duplicate, activate, and manage the content of versions.
Several operations, such as duplicating, activating, and uploading a product catalog, are asynchronous. These endpoints return a `request_id` for tracking.
All requests require a secret Bearer Token in the `Authorization` header, which is generated by a CPQ administrator.'
version: 1.0.0
servers:
- url: https://api.dealhub.io
description: The base URL for your DealHub instance.
security:
- bearerAuth: []
tags:
- name: Version Management
description: Endpoints for retrieving, creating, and managing versions.
paths:
/api/v1/version/activate:
post:
tags:
- Version Management
summary: Activate a Version
description: Asynchronously activates a `DRAFT` Version. This operation returns a `request_id` for tracking.
operationId: activateVersion
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ActivateVersionRequest'
examples:
activateVersionExample:
summary: Request to activate a version
value:
version_id: '765379899'
responses:
'200':
description: Success. The activation process has started.
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncResponse'
examples:
asyncResponseExample:
summary: Successful response
value:
request_id: 4D114DAD97
'400':
description: Bad Request. The Version does not exist or is already in `ACTIVE` status.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
alreadyActiveExample:
summary: Version already active
value:
error: Version (id= 765379899) already active.
code: 400
notFoundExample:
summary: Version not found
value:
error: Entity (ID = 765379899) not found
code: 400
'403':
description: Unauthenticated. The `Authorization` token is missing, invalid, or does not match the user.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthenticatedExample:
summary: Unauthenticated
value:
error: Unauthenticated
code: 403
/api/v1/version/duplicate:
post:
tags:
- Version Management
summary: Duplicate a Version
description: Asynchronously creates a new Version entity based on an existing one. This operation returns a `request_id` for tracking.
operationId: duplicateVersion
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DuplicateVersionRequest'
examples:
duplicateVersionExample:
summary: Duplicate a version to a new instance
value:
version_id: '765379899'
new_version_name: New Version
comment: Adding more BroadBand services
to_account_instance: Account abc
responses:
'200':
description: Success. The duplication process has started.
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncResponse'
examples:
asyncResponseExample:
summary: Successful response
value:
request_id: 4D114DAD97
'400':
description: Bad Request. The source Version does not exist, the new version name is not unique, or the source and target account domains do not match.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
domainMismatchExample:
summary: Domain mismatch
value:
error: The domain name of the source version account does not match the target version account
code: 400
nameNotUniqueExample:
summary: Version name not unique
value:
error: A new version name should be unique. Please change the name and try again.
code: 400
notFoundExample:
summary: Source version not found
value:
error: Entity (ID = 765379899) not found
code: 400
'403':
description: Unauthenticated. The `Authorization` token is missing, invalid, or does not match the user.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthenticatedExample:
summary: Unauthenticated
value:
error: Unauthenticated
code: 403
/api/v1/version/id/{version_id}:
get:
tags:
- Version Management
summary: Get Version by ID
description: Retrieve a specific Version based on its unique DealHub ID.
operationId: getVersionById
parameters:
- name: version_id
in: path
required: true
schema:
type: string
maxLength: 16
description: The unique identifier of the version.
responses:
'200':
description: Success.
content:
application/json:
schema:
$ref: '#/components/schemas/Version'
examples:
getVersionExample:
summary: Successful response
value:
name: Master v1
comment: ''
status: ACTIVE
version_id: '67657'
'400':
description: Bad Request. No Version was found matching the provided `version_id`.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
notFoundExample:
summary: Version not found
value:
error: Entity (ID = 67657) not found
code: 400
'403':
description: Unauthenticated. The `Authorization` token is missing, invalid, or does not match the user.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthenticatedExample:
summary: Unauthenticated
value:
error: Unauthenticated
code: 403
/api/v1/version/name/{version_name}:
get:
tags:
- Version Management
summary: Get Version by Name
description: Retrieve a specific Version based on its name.
operationId: getVersionByName
parameters:
- name: version_name
in: path
required: true
schema:
type: string
maxLength: 120
description: The name of the version.
responses:
'200':
description: Success.
content:
application/json:
schema:
$ref: '#/components/schemas/Version'
examples:
getVersionExample:
summary: Successful response
value:
name: Master v1
comment: ''
status: ACTIVE
version_id: '67657'
'400':
description: Bad Request. No Version was found matching the provided `version_name`.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
notFoundExample:
summary: Version not found
value:
error: Entity (ID = Master v1) not found
code: 400
'403':
description: Unauthenticated. The `Authorization` token is missing, invalid, or does not match the user.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthenticatedExample:
summary: Unauthenticated
value:
error: Unauthenticated
code: 403
/api/v1/versions:
get:
tags:
- Version Management
summary: Get a List of Versions
description: Retrieve a list of Versions, with an option to filter by status. If no parameters are provided, it returns all versions.
operationId: getVersions
parameters:
- name: status
in: query
schema:
type: string
enum:
- DRAFT
- ACTIVE
- DEACTIVATED
description: Search for Version(s) based on status.
responses:
'200':
description: Success. Returns a list of version objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Version'
examples:
getVersionsExample:
summary: Example list of versions
value:
- name: v3a
comment: ''
status: DEACTIVATED
version_id: 068DoObdli5GuF14
- name: msd6
comment: ''
status: DEACTIVATED
version_id: 0AjX3aABgLN9f8uG
'400':
description: Bad Request. The `status` parameter has an unsupported value.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
invalidStatusExample:
summary: Invalid parameter value
value:
error: 'status - Invalid parameter value. Valid value(s): DRAFT, ACTIVE, DEACTIVATED'
code: 400
'403':
description: Unauthenticated. The `Authorization` token is missing, invalid, or does not match the user.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
unauthenticatedExample:
summary: Unauthenticated
value:
error: Unauthenticated
code: 403
components:
schemas:
ErrorResponse:
type: object
description: A generic error response. The specific message and code vary based on the context.
properties:
error:
type: string
description: Human-readable error message describing the issue.
code:
type: integer
description: HTTP status code.
AsyncResponse:
type: object
properties:
request_id:
type: string
description: The ID of the asynchronous request for tracking.
DuplicateVersionRequest:
type: object
required:
- version_id
- new_version_name
properties:
version_id:
type: string
maxLength: 16
description: ID of the version that should be duplicated.
new_version_name:
type: string
maxLength: 120
description: Name for the new version.
comment:
type: string
maxLength: 4000
description: Comments for the newly created version.
to_account_instance:
type: string
description: Instance name of the Account where the version should be duplicated to (e.g., for Sandbox to Production).
ActivateVersionRequest:
type: object
required:
- version_id
properties:
version_id:
type: string
maxLength: 16
description: ID of the Version that should be activated.
Version:
type: object
properties:
name:
type: string
description: Name of the version.
comment:
type: string
description: Comment provided during version creation.
status:
type: string
description: Status of the version.
version_id:
type: string
description: The unique identifier of the version.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: A secret token generated by a CPQ administrator.
x-provenance:
method: searched
source: https://developers.dealhub.io/reference
harvested: '2026-10-22'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://developers.dealhub.io/reference/activateversion.md
- https://developers.dealhub.io/reference/deleteallproducts.md
- https://developers.dealhub.io/reference/deletefromproducthierarchy.md
- https://developers.dealhub.io/reference/deleteproductsbysku.md
- https://developers.dealhub.io/reference/duplicateversion.md
- https://developers.dealhub.io/reference/exportplaybookdata.md
- https://developers.dealhub.io/reference/extractproductsexcel.md
- https://developers.dealhub.io/reference/getasyncrequeststatus.md
- https://developers.dealhub.io/reference/getasyncrequestsummary.md
- https://developers.dealhub.io/reference/getgeneratequotetemplate.md
- https://developers.dealhub.io/reference/getproductcatalog.md
- https://developers.dealhub.io/reference/getproducthierarchy.md
- https://developers.dealhub.io/reference/getproductsbysku.md
- https://developers.dealhub.io/reference/getversionbyid.md
- https://developers.dealhub.io/reference/getversionbyname.md
- https://developers.dealhub.io/reference/getversionproducts.md
- https://developers.dealhub.io/reference/getversions.md
- https://developers.dealhub.io/reference/updateproductcatalog.md
- https://developers.dealhub.io/reference/updateproducthierarchy.md
- https://developers.dealhub.io/reference/uploadproductcatalog.md
merge:
pages: 20
deduped: 79
conflicts_kept_first: 0