Xentral Report API

Create, manage and export reports and report results based on SQL queries against your data.

Operations 18

GET /api/v1/analytics/report List reports #
POST /api/v1/analytics/report Create report #
GET /api/v1/analytics/report/{id} View report #
PATCH /api/v1/analytics/report/{id} Update report #
DELETE /api/v1/analytics/report/{id} Delete report #
GET /api/v1/analytics/report/{id}/export List report exports #
POST /api/v1/analytics/report/{id}/export Create report export #
GET /api/v1/analytics/report/{id}/export/{uuid} View report export #
POST /api/v1/analytics/report/{id}/query Execute report query #
GET /api/v1/analytics/report/{id}/permalink List report permalink #
POST /api/v1/analytics/report/{id}/permalink Create report permalink #
DELETE /api/v1/analytics/report/{id}/permalink Invalidate permalink for report #
GET /api/v1/analytics/report/{id}/permalink/{token} Download report #
GET /api/v1/analytics/report/{id}/schedule List report schedules #
POST /api/v1/analytics/report/{id}/schedule Create report schedule #
DELETE /api/v1/analytics/report/{id}/schedule/{uuid} Delete report schedule #
PATCH /api/v1/analytics/report/{id}/schedule/{uuid} Update report schedule #
GET /api/v1/analytics/schedule List schedules #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/xentral-report-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

xentral-report-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Xentral Account Report 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: Report
  description: Create, manage and export reports and report results based on SQL queries against your data.
paths:
  /api/v1/analytics/report:
    get:
      tags:
      - Report
      operationId: analytics.report.list
      summary: List reports
      description: Returns a list of reports (official Xentral reports and custom reports)
      responses:
        '200':
          description: Report response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - data
                properties:
                  data:
                    type:
                    - array
                    - 'null'
                    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
        '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:
      - Report
      operationId: analytics.report.create
      summary: Create report
      description: Creates a new report and returns the new record
      requestBody:
        description: Create report request payload
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - report
              example:
                report:
                  title: My report
                  description: This is my report
                  userId: 1
                  sqlString: SELECT * FROM users
                  isFavorite: true
                  isReadOnly: false
                  collectionId: 1
                  parameters:
                  - name: date
                    type: string
                    defaultValue: '2021-01-01'
              properties:
                report:
                  type: object
                  additionalProperties: false
                  required:
                  - title
                  - collectionId
                  properties:
                    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:
                      type: boolean
                      description: Is report read-only
                      example: false
                    collectionId:
                      type: number
                      description: ID of the collection the report belongs to
                      example: 1
                    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
            examples:
              example:
                summary: Example report payload
                value:
                  report:
                    title: My report
                    description: This is my report
                    userId: 1
                    sqlString: SELECT * FROM users
                    isFavorite: true
                    isReadOnly: false
                    collectionId: 1
                    parameters:
                    - name: date
                      type: string
                      defaultValue: '2021-01-01'
      responses:
        '200':
          description: Report response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - data
                properties:
                  data:
                    type:
                    - array
                    - 'null'
                    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
        '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/report/{id}:
    get:
      tags:
      - Report
      operationId: analytics.report.get
      summary: View report
      description: Returns a single report 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: Report response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                - data
                properties:
                  data:
                    type:
                    - array
                    - 'null'
                    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
                  

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