Hlix Client Billing Profile API
The client-billing-profile API from Hlix — 2 operation(s) for client-billing-profile.
The client-billing-profile API from Hlix — 2 operation(s) for client-billing-profile.
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/hlix-ai:hlix-ai-client-billing-profile-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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:
description: Explore the Hlix API for projects, agent teams, and delivery workflows. Authenticate with `x-api-key` and select a Workspace with `X-Organization-Id`. Session-only operations require a signed-in user session. Authentication setup.
title: reference Client Billing Profile API
version: 1.0.0
servers:
- url: https://server.hlix.ai
description: API server
security:
- apiKey: []
- sessionCookie: []
tags:
- name: client-billing-profile
paths:
/v1/api/client-billing/profile:
delete:
operationId: deleteAgencyBillingProfile
parameters:
- $ref: '#/components/parameters/OrganizationId'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AgencyBillingProfileCleared'
description: Removed. New invoices are issued unbranded; ones already issued keep the identity frozen onto them.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The request named no active organization.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: No valid session or API key.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The caller is a `member`. Changing the legal entity every customer is billed by is restricted to owners and admins.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: No billing profile is set.
summary: Remove the workspace's billing identity
tags:
- client-billing-profile
get:
operationId: getAgencyBillingProfile
parameters:
- $ref: '#/components/parameters/OrganizationId'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AgencyBillingProfileState'
description: The profile, or `null` if none was ever saved. `branded` says whether the workspace's plan puts it on invoices — an unbranded workspace still issues complete, correct documents.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The request named no active organization.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: No valid session or API key.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The caller is a `client` collaborator. The agency's billing identity is agency-only, reads included.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist.
summary: Get the workspace's billing identity
tags:
- client-billing-profile
put:
operationId: upsertAgencyBillingProfile
parameters:
- $ref: '#/components/parameters/OrganizationId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertBillingProfile'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AgencyBillingProfileState'
description: 'The saved billing profile. This PUT replaces the profile: omitted optional fields are cleared, including a previously stored logo.'
'400':
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/ValidationError'
- $ref: '#/components/schemas/ApiError'
description: The JSON body failed schema validation (`ValidationError`), the request named no active organization, or the logo is not the image format it claims to be — the bytes are decoded, not trusted, and this route reads the file header (`ApiError`).
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: No valid session or API key.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The caller is a `member`. Changing the legal entity every customer is billed by is restricted to owners and admins.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist.
summary: Replace the workspace's billing identity
tags:
- client-billing-profile
/v1/api/client-billing/profile/logo:
get:
operationId: getAgencyBillingProfileLogo
parameters:
- $ref: '#/components/parameters/OrganizationId'
responses:
'200':
content:
image/png:
schema:
format: binary
type: string
description: 'The stored image. The `Content-Type` is the format recorded in the database, not one the uploader asserted, and `X-Content-Type-Options: nosniff` accompanies it.'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The request named no active organization.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: No valid session or API key.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: The caller is a `client` collaborator. The agency's billing identity is agency-only, reads included.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
description: No logo is set for this workspace.
summary: Download the workspace's logo
tags:
- client-billing-profile
components:
schemas:
ApiError:
additionalProperties: {}
properties:
error:
type: string
required:
- error
type: object
AgencyBillingProfileCleared:
properties:
ok:
const: true
type: boolean
required:
- ok
type: object
UpsertBillingProfile:
additionalProperties: false
properties:
address:
maxLength: 1000
minLength: 1
type: string
brandColor:
anyOf:
- pattern: ^#[0-9a-fA-F]{6}$
type: string
- type: 'null'
contactEmail:
anyOf:
- format: email
maxLength: 320
pattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
type: string
- type: 'null'
defaultPaymentTerms:
anyOf:
- maxLength: 200
minLength: 1
type: string
- type: 'null'
invoiceFooter:
anyOf:
- maxLength: 2000
minLength: 1
type: string
- type: 'null'
legalName:
maxLength: 200
minLength: 1
type: string
logo:
anyOf:
- additionalProperties: false
properties:
data:
maxLength: 699052
minLength: 1
pattern: ^[A-Za-z0-9+/]+={0,2}$
type: string
mediaType:
enum:
- image/png
- image/jpeg
type: string
required:
- mediaType
- data
type: object
- type: 'null'
taxId:
anyOf:
- maxLength: 100
minLength: 1
type: string
- type: 'null'
required:
- legalName
- address
type: object
AgencyBillingProfileState:
properties:
branded:
type: boolean
profile:
anyOf:
- properties:
address:
type: string
brandColor:
type:
- string
- 'null'
contactEmail:
type:
- string
- 'null'
createdAt:
type: string
defaultPaymentTerms:
type:
- string
- 'null'
invoiceFooter:
type:
- string
- 'null'
legalName:
type: string
logoMediaType:
type:
- string
- 'null'
organizationId:
type: string
taxId:
type:
- string
- 'null'
updatedAt:
type: string
updatedBy:
type: string
required:
- organizationId
- legalName
- address
- taxId
- contactEmail
- logoMediaType
- brandColor
- defaultPaymentTerms
- invoiceFooter
- updatedBy
- updatedAt
- createdAt
type: object
- type: 'null'
required:
- profile
- branded
type: object
ValidationError:
properties:
error:
properties:
message:
type: string
name:
type: string
required:
- name
- message
type: object
success:
const: false
type: boolean
required:
- success
- error
type: object
parameters:
OrganizationId:
description: The workspace (organization) to act in. Omitted, the session's active organization is used.
in: header
name: X-Organization-Id
required: false
schema:
type: string
example: YOUR_WORKSPACE_ID
securitySchemes:
apiKey:
description: An API key issued through `/v1/api/auth/api-key/*`. Browser clients can use their session cookie instead.
in: header
name: x-api-key
type: apiKey
sessionCookie:
description: The complete session Cookie header issued by sign-in at the selected API host. Cookie names vary by hosting region and environment; preserve the issued name and value. Browsers send these HTTP-only cookies automatically. Session-only operations require this user session and do not accept an API key.
in: header
name: Cookie
type: apiKey