Xentral Collection API
Create and manage collections for your reports.
Create and manage collections for your reports.
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/xentral-collection-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Xentral Account Collection API
version: v0.1
description: Xentral is an ERP platform.
contact:
name: Xentral
url: https://xentral.com
email: api@xentral.com
servers:
- url: https://{xentralId}.xentral.biz
description: Your Xentral Instance
variables:
xentralId:
default: xentral
- url: https://{domain}
description: Xentral at a custom domain
variables:
domain:
default: xentral.com
security:
- BearerAuth: []
tags:
- name: Collection
description: Create and manage collections for your reports.
paths:
/api/v1/analytics/collection:
get:
tags:
- Collection
operationId: analytics.collection.get
summary: List collections
description: Returns a list of report collections (official Xentral collections and custom collections).
responses:
'200':
description: Collection response
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- data
properties:
data:
type:
- array
- 'null'
items:
type: object
additionalProperties: false
properties:
id:
example: 1
type: number
description: Collection ID
name:
example: My collection
type: string
description: Collection name
description:
example: This is a collection
type: string
description: Collection description
reports:
type: array
items:
type: object
additionalProperties: false
required:
- title
- sqlString
- collectionId
properties:
id:
type: number
description: Report ID
example: 1
title:
type: string
description: Report title
example: My report
description:
type: string
description: Report description
example: This is my report
userId:
type: number
description: User ID of the report creator
example: 1
sqlString:
type: string
description: SQL query string
example: SELECT * FROM users
isFavorite:
type: boolean
description: Is report marked as favorite
example: true
isReadOnly:
example: false
type: boolean
description: Is report read-only
collectionId:
example: 1
type: number
description: ID of the collection the report belongs to
lastEditedBy:
example: John Doe
type: string
description: User who last edited the report
tags:
type: array
example:
- id: 1
name: Official
description: This is my tag
palette: default
isOfficial: true
createdAt: '2023-01-01T00:00:00+00:00'
updatedAt: '2023-01-01T00:00:00+00:00'
items:
type: object
additionalProperties: false
required:
- id
- name
properties:
id:
type: number
description: Tag ID
example: 1
name:
type: string
description: Tag name
example: Official
description:
type: string
description: Tag description
example: This is my tag
palette:
type: string
enum:
- default
- warning
- success
- danger
- primary
description: The palette value of the tag
example: default
isOfficial:
type: boolean
description: Whether the tag is used for official Xentral reports
example: true
createdAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Creation time
updatedAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Last update time
parameters:
type:
- array
- 'null'
items:
type: object
additionalProperties: false
required:
- name
- type
- defaultValue
example:
name: date
type: string
defaultValue: '2021-01-01'
properties:
name:
type: string
description: Parameter name
example: date
type:
type: string
description: Parameter type
example: string
defaultValue:
type: string
description: Default value for parameter you want to store
example: '2021-01-01'
valueMap:
type: array
description: Array of dropdown options with label and value properties. Values will be rendered in the query, labels are displayed in the dropdown.
items:
type: object
required:
- label
- value
properties:
label:
type: string
description: Display label shown in the dropdown
value:
type: string
description: Value used in the query
example:
- label: Option 1
value: option1
- label: Option 2
value: option2
createdAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Creation time
updatedAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Last update time
createdAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Creation time
updatedAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Last update time
'400':
description: IETF RFC 9457 Problem API compliant response
content:
application/problem+json:
schema:
oneOf:
- type: object
additionalProperties: false
required:
- type
- title
- violations
properties:
type:
type: string
enum:
- https://api.xentral.biz/problems/request-validation
title:
type: string
minLength: 1
example: Request payload validation failed.
violations:
oneOf:
- type: array
items:
type: object
example:
username:
- This value should not be blank.
email:
- This value is not a valid email address.
description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
- type: object
example:
_:
- This value should contain at most `9` elements.
description: This field will be a mirrored request payload with only invalid fields and values replaced by error messages.
- type: object
additionalProperties: false
required:
- type
- title
- messages
properties:
type:
type: string
enum:
- https://api.xentral.biz/problems/generic-validation
title:
type: string
minLength: 1
messages:
type: array
items:
type: string
- type: object
additionalProperties: false
required:
- type
- title
- messages
properties:
type:
type: string
enum:
- https://api.xentral.biz/problems/conflict
title:
type: string
minLength: 1
messages:
type: array
items:
type: string
- type: object
additionalProperties: false
required:
- type
- title
- items
properties:
type:
type: string
enum:
- https://api.xentral.biz/problems/conflictItems
title:
type: string
minLength: 1
items:
type: array
items:
type: object
additionalProperties: false
required:
- id
- title
- messages
properties:
id:
type: integer
title:
type: string
minLength: 1
messages:
type: array
items:
type: string
- type: object
additionalProperties: false
required:
- type
- title
- scopes
properties:
type:
type: string
enum:
- https://developer.xentral.com/reference/problems#token-scopes
title:
type: string
minLength: 1
scopes:
type: array
items:
type: string
- type: object
additionalProperties: false
required:
- type
- title
- messages
properties:
type:
type: string
enum:
- https://api.xentral.biz/problems/generic-validation
title:
type: string
minLength: 1
messages:
type: object
additionalProperties:
type: array
items:
type: string
'401':
description: Unable to authenticate the client
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message explaining why the request failed.
example: 'Missing required scopes: customer:create.'
example:
message: 'Missing required scopes: customer:create.'
text/html:
schema:
type: string
example: Unauthorized
'403':
description: Unable to authorize the client
'404':
description: Resource was not found or not enough access privileges
'415':
description: Resource representation send in the request is not supported.
post:
tags:
- Collection
operationId: analytics.collection.create
summary: Create collection
description: Creates a new collection and returns the new record
requestBody:
description: Create collection request payload
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- collection
example:
collection:
name: My collection
description: This is a collection
properties:
collection:
type: object
additionalProperties: false
required:
- name
example:
name: My collection
description: This is a collection
properties:
name:
example: My collection
type: string
description: Collection name
description:
example: This is a collection
type: string
description: Collection description
examples:
example:
summary: Example of creating a collection
value:
collection:
name: My collection
description: This is a collection
responses:
'200':
description: Collection response
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- data
properties:
data:
type:
- array
- 'null'
items:
type: object
additionalProperties: false
properties:
id:
example: 1
type: number
description: Collection ID
name:
example: My collection
type: string
description: Collection name
description:
example: This is a collection
type: string
description: Collection description
reports:
type: array
items:
type: object
additionalProperties: false
required:
- title
- sqlString
- collectionId
properties:
id:
type: number
description: Report ID
example: 1
title:
type: string
description: Report title
example: My report
description:
type: string
description: Report description
example: This is my report
userId:
type: number
description: User ID of the report creator
example: 1
sqlString:
type: string
description: SQL query string
example: SELECT * FROM users
isFavorite:
type: boolean
description: Is report marked as favorite
example: true
isReadOnly:
example: false
type: boolean
description: Is report read-only
collectionId:
example: 1
type: number
description: ID of the collection the report belongs to
lastEditedBy:
example: John Doe
type: string
description: User who last edited the report
tags:
type: array
example:
- id: 1
name: Official
description: This is my tag
palette: default
isOfficial: true
createdAt: '2023-01-01T00:00:00+00:00'
updatedAt: '2023-01-01T00:00:00+00:00'
items:
type: object
additionalProperties: false
required:
- id
- name
properties:
id:
type: number
description: Tag ID
example: 1
name:
type: string
description: Tag name
example: Official
description:
type: string
description: Tag description
example: This is my tag
palette:
type: string
enum:
- default
- warning
- success
- danger
- primary
description: The palette value of the tag
example: default
isOfficial:
type: boolean
description: Whether the tag is used for official Xentral reports
example: true
createdAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Creation time
updatedAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Last update time
parameters:
type:
- array
- 'null'
items:
type: object
additionalProperties: false
required:
- name
- type
- defaultValue
example:
name: date
type: string
defaultValue: '2021-01-01'
properties:
name:
type: string
description: Parameter name
example: date
type:
type: string
description: Parameter type
example: string
defaultValue:
type: string
description: Default value for parameter you want to store
example: '2021-01-01'
valueMap:
type: array
description: Array of dropdown options with label and value properties. Values will be rendered in the query, labels are displayed in the dropdown.
items:
type: object
required:
- label
- value
properties:
label:
type: string
description: Display label shown in the dropdown
value:
type: string
description: Value used in the query
example:
- label: Option 1
value: option1
- label: Option 2
value: option2
createdAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Creation time
updatedAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Last update time
createdAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Creation time
updatedAt:
example: '2023-01-01T00:00:00+00:00'
type: string
format: date-time
description: Last update time
'400':
description: Error response with message
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- message
properties:
message:
description: Error message
type: string
example: SQL statement is invalid
'401':
description: Unable to authenticate the client
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error message explaining why the request failed.
example: 'Missing required scopes: customer:create.'
example:
message: 'Missing required scopes: customer:create.'
text/html:
schema:
type: string
example: Unauthorized
'403':
description: Unable to authorize the client
'404':
description: Resource was not found or not enough access privileges
'415':
description: Resource representation send in the request is not supported.
/api/v1/analytics/collection/{id}:
get:
tags:
- Collection
operationId: analytics.collection.list
summary: View collection
description: Returns a single collections by ID.
parameters:
- in: path
name: id
required: true
description: The resource's identifier.
schema:
type: string
pattern: \d+
example: '17'
description: Resource identifier.
responses:
'200':
description: Collection response
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- data
properties:
data:
type:
- array
- 'null'
items:
type: object
additionalProperties: false
properties:
id:
example: 1
type: number
description: Collection ID
name:
example: My collection
type: string
description: Collection name
description:
example: This is a collection
type: string
description: Collection description
reports:
type: array
items:
type: object
additionalProperties: false
required:
- title
- sqlString
- collectionId
properties:
id:
type: number
description: Report ID
example: 1
title:
type: string
description: Report title
example: My report
description:
type: string
description: Report description
example: This is my report
userId:
type: number
description: User ID of the report creator
example: 1
sqlString:
type: string
description: SQL query string
example: SELECT * FROM users
isFavorite:
type: boolean
description: Is report marked as favorite
example: true
isReadOnly:
example: false
type: boolean
description: Is report read-only
# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xentral/refs/heads/main/openapi/xentral-collection-api-openapi.yml