> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ctrl-hub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a standard's results

> Evaluate a standard mapping's standard over a period, and return each job's result with its reasons and inputs, the counts by result, and a series of counts per bucket. A job is in the period when the mapping's period input falls in it. Without `date_op`, the period is the last 30 days. The rows are the submissions the caller can see, so a contractor reading the form owner's mapping gets results for its own jobs only. A run evaluates at most 50,000 jobs, and says when it was truncated. A caller who can view standards across the organisation also gets each job's payment record, and a withdrawn record is left off. A caller who views some forms' mappings only does not. With `submission_id`, the run evaluates that one submission whatever its date, and the series is empty. It returns no jobs when the submission is not in analytics yet, and is refused with `date_op`, `date_values` or `bucket`.



## OpenAPI

````yaml /api-reference/openapi.yaml get /v3/orgs/{org_id}/standard-mappings/{standard_mapping_id}/results
openapi: 3.1.0
info:
  contact:
    email: support@ctrl-hub.com
    name: Ctrl Hub
    url: https://www.ctrl-hub.com
  description: >
    Ctrl Hub is the all-in-one platform for high-risk industries like utilities,
    construction, infrastructure, and renewables. We help teams manage
    everything from risk assessments and HAVS exposure to vehicle and equipment
    checks, with a guaranteed minimum of 200% ROI.
  license:
    name: MIT License
    url: https://opensource.org/licenses/MIT
  summary: An API for managing your compliance and risk posture
  termsOfService: https://www.ctrl-hub.com/terms-conditions
  title: Ctrl Hub
  version: 1.0.0
servers:
  - description: Production
    url: https://api.ctrl-hub.com
  - description: Staging
    url: https://api.ctrl-hub.dev
  - description: Development
    url: https://api.ctrl-hub.run
security: []
tags:
  - description: |
      Actions are follow-ups assigned to users and teams, produced manually or
      by domain producers such as the data-capture workflow runner.
    name: Actions
  - description: |
      Audit events are the events that are logged by the system.
    name: Audit Events
  - description: |
      View the platform's health and availability.
    name: Status
  - description: >
      User-owned dashboards composed of cards on a fixed-slot bento layout.
      Cards come from a per-domain registry; the API stores their config as
      opaque JSON.
    name: Dashboards
  - description: >
      Copies of a mobile device's local database, sent by the operative on
      request so that people

      in their organisation can recover work that never reached the server. Kept
      for 30 days, and

      visible to people granted `device-backups:view` in the organisation each
      is filed against.
    name: Device Backups
  - description: >
      A record of documents the platform generated and handed over, retained as
      evidence of what

      was issued. `subject_type` says what kind of records an export covers, and
      it is what decides

      how the request is authorised: there is no export permission of its own,
      so if you can see the

      records you can export them.
    name: Exports
  - description: >
      Scheduled delivery of a saved query's results, as a CSV attachment or a
      summary email. Every run is retained with the file it sent, so what a
      recipient received stays retrievable. A report runs as the person who
      created it, under their own access.
    name: Reports
  - description: >
      Performance standards the platform defines, such as the gas Guaranteed
      Standards of Performance 3 and 13, and how an organisation's forms answer
      them. An organisation maps its form fields to a standard's inputs, and the
      mapping generates a saved query that reads the answers.
    name: Standards
  - description: |
      Manage appointments for work to be carried out with your customers
    name: Customer Appointments
  - description: |
      Manage interactions you have with your customers
    name: Customer Interactions
  - description: |
      Manage accounts for your customers
    name: Customer Accounts and Contacts
  - description: >
      Competency: the assessments, training items, inductions and registrations
      an

      organisation requires, and the specifications that combine them.
    name: Qualifications
  - description: |
      Workflows allow you to automate your processes.
    name: Workflows
  - description: |
      Manage documents
    name: Documents
  - description: |
      Manage documents
    name: Folders
  - description: |
      Manage documents
    name: Document Reviews
  - description: |
      Manage feature configurations for an organisation.
    name: Feature Configurations
  - description: |
      Equipment are the physical assets that an organisation manages.
    name: Equipment
  - description: |
      The central cost register: time-versioned rate codes for material, labour,
      contractor and miscellaneous spend, used to cost work against the job
      hierarchy.
    name: Costs
  - description: >
      Locations are places an organisation manages, optionally classified by a
      location type.
    name: Locations
  - description: >
      Bulk loads of locations from an uploaded CSV. An import matches rows on
      the organisation's own

      `reference`, so re-importing a corrected file updates what is already
      there rather than

      doubling the population, and the import record is the audit trail for the
      whole load: the bulk

      write path deliberately emits no per-row events.
    name: Location Imports
  - description: |
      Manage your forms and their schemas
    name: Forms, Schemas and Categories
  - description: |
      Create and view form submissions
    name: Submissions
  - description: |
      View the roles available in the system.
    name: IAM Roles
  - description: >
      IAM role groups can be assigned to principals to manage authorisation
      centrally.
    name: IAM Role Groups
  - description: |
      Manage service accounts which can access the API programmatically.
    name: Service Accounts
  - description: |
      Manage bridges between organisations.
    name: Bridges
  - description: |
      Manage settings for an organisation.
    name: Settings
  - description: |
      Manage teams within an organisation.
    name: Teams
  - description: >
      Manage who manages whom within an organisation, and the manager roles that
      say what a manager may do for their people.
    name: Management
  - description: |
      Manage job roles within an organisation.
    name: Job Roles
  - description: |
      Manage users and accounts.
    name: Users
  - description: |
      Invite and manage invitations to organisations.
    name: Invitations
  - description: >
      IAM grants are the asignment of roles or permissions to principals to
      manage resource access.
    name: IAM Grants
  - description: |
      View the permissions available in the system.
    name: IAM Permissions
  - description: |
      SSO providers are the identity providers for an organisation.
    name: SSO Providers
  - description: |
      Whoami returns information about the currently authenticated principal.
    name: Whoami
  - description: |
      Your personal inbox. A notification is the thing you receive: an envelope
      that carries what happened to one or more channels. Email is one of those
      channels, the inbox is another, and this is where the ones delivered to
      your inbox are listed, read, saved and archived.
    name: Notifications
  - description: |
      Manage your images
    name: Images
  - description: >
      AI agent personas that synthesise data into role-specific intelligent
      briefings.
    name: Agents
  - description: |
      Briefings generated by AI agents, including reasoning traces.
    name: Briefings
  - description: >
      Organisations are the center point for most resources in the platform.
      Most other endpoints are subresources of an organisation.
    name: Organisations
  - description: |
      Permits managements, integrated with street manager.
    name: Permits
  - description: |
      Projects manage your work and governance.
    name: Projects
  - description: >
      Import templates allow users to save and reuse their CSV importer
      configuration as named templates.
    name: Import Templates
  - description: |
      Properties are the physical locations.
    name: Properties
  - description: |
      Search across schemes, work orders, and operations.
    name: Search
  - description: |
      Provides the API specification in JSON and YAML formats
    name: Specifications
  - description: |
      Streets are the physical roads.
    name: Streets
  - description: |
      Integration with street manager
    name: Street Manager
  - description: |
      Vehicles are the physical vehicles that an organisation manages.
    name: Vehicles
  - description: >
      Scheme contracts (also known as regions) group schemes allocated from the
      network to a contractor.
    name: Scheme Contracts
  - description: >
      Scheme shares allow you to share your schemes with other organisations
      across bridges.
    name: Scheme Shares
  - description: |
      Schemes are large programmes of work
    name: Schemes
  - description: >
      A Construction Phase Plan is the Principal Contractor's plan for managing
      health and safety

      on a scheme, under CDM 2015. Its risks are control measures written
      against the hazards on

      the scheme's Pre-Construction Information. Each section is owned by one
      duty-holder role.
    name: Construction Phase Plans
  - description: >
      A Pre-Construction Information pack is the Client's information about a
      scheme under CDM

      2015, with its site hazards. A scheme has at most one. Each section is
      owned by one

      duty-holder role, and only that role can write it.
    name: Pre-Construction Information
  - description: >
      Site attendances record who was on site and when, whether or not they hold
      an account.

      There is no daily register resource: a day's register and who is currently
      on site are

      both queries over the attendances themselves.
    name: Site Attendances
  - description: |
      Work orders the component parts of a scheme.
    name: Work Orders
  - description: |
      Operations are the work to be carried out within work orders.
    name: Operations
externalDocs:
  description: More documentation and resources
  url: https://docs.ctrl-hub.com
paths:
  /v3/orgs/{org_id}/standard-mappings/{standard_mapping_id}/results:
    get:
      tags:
        - Standards
      summary: Get a standard's results
      description: >-
        Evaluate a standard mapping's standard over a period, and return each
        job's result with its reasons and inputs, the counts by result, and a
        series of counts per bucket. A job is in the period when the mapping's
        period input falls in it. Without `date_op`, the period is the last 30
        days. The rows are the submissions the caller can see, so a contractor
        reading the form owner's mapping gets results for its own jobs only. A
        run evaluates at most 50,000 jobs, and says when it was truncated. A
        caller who can view standards across the organisation also gets each
        job's payment record, and a withdrawn record is left off. A caller who
        views some forms' mappings only does not. With `submission_id`, the run
        evaluates that one submission whatever its date, and the series is
        empty. It returns no jobs when the submission is not in analytics yet,
        and is refused with `date_op`, `date_values` or `bucket`.
      operationId: RunStandard
      parameters:
        - $ref: '#/components/parameters/org_id'
        - $ref: '#/components/parameters/standard_mapping_id'
        - $ref: '#/components/parameters/standard_results_date_op'
        - $ref: '#/components/parameters/standard_results_date_values'
        - $ref: '#/components/parameters/standard_results_bucket'
        - $ref: '#/components/parameters/standard_results_submission_id'
      responses:
        '200':
          $ref: '#/components/responses/GetStandardResults'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorised'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - Session: []
        - OAuth2: []
        - Cookie: []
components:
  parameters:
    org_id:
      name: org_id
      in: path
      required: true
      description: The unique identifier for the organisation.
      schema:
        type: string
        format: uuid
      example: c000c344-8847-47da-a091-32e75902d3b1
    standard_mapping_id:
      name: standard_mapping_id
      in: path
      required: true
      description: The unique identifier for the standard mapping.
      schema:
        type: string
        format: uuid
      example: 5f3c2a1e-8b4d-4e6f-9a7c-2d1b0e3f4a5c
    standard_results_date_op:
      name: date_op
      in: query
      description: >-
        The period to evaluate, as the operator of a range on the mapping's
        period input. Relative presets (`today`, `yesterday`, `last_n_days`,
        `this_week`, `this_month`, `this_quarter`, `this_year`, and the previous
        full `last_week`, `last_fortnight`, `last_month` and `last_quarter`) are
        resolved against the Europe/London timezone when the results are read.
        `between` takes two dates, and `before` and `after` one, in
        `date_values`. Omit it for the last 30 days.
      required: false
      schema:
        type: string
        enum:
          - today
          - yesterday
          - last_n_days
          - this_week
          - this_month
          - this_quarter
          - this_year
          - last_week
          - last_fortnight
          - last_month
          - last_quarter
          - between
          - before
          - after
    standard_results_date_values:
      name: date_values
      in: query
      description: >-
        The values `date_op` takes, comma separated: the number of days for
        `last_n_days`, the two ends of a `between`, or the one date of a
        `before` or `after`. A date, such as `2026-11-02`, or a date and time,
        such as `2026-11-02 09:00:00`, is read in Europe/London. An RFC 3339
        time, such as `2026-11-02T09:00:00Z`, keeps its own offset. A `between`
        includes both ends, and a date as its upper bound covers that whole day.
        `before` a date excludes that day, and `after` a date starts on the day
        after it.
      required: false
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
    standard_results_bucket:
      name: bucket
      in: query
      description: >-
        The length of the periods the series counts jobs in. A week starts on
        Monday. Omit it for weeks.
      required: false
      schema:
        type: string
        enum:
          - day
          - week
          - month
          - quarter
          - year
    standard_results_submission_id:
      name: submission_id
      in: query
      description: >-
        Evaluate this one submission instead of a period. It takes no `date_op`,
        `date_values` or `bucket`.
      required: false
      schema:
        type: string
        format: uuid
      example: f6dc7651-426f-4e66-a71e-aa99457e7b4a
  responses:
    GetStandardResults:
      description: A standard's results over a period.
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            allOf:
              - type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/StandardResults'
              - $ref: '#/components/schemas/JSONAPI'
    BadRequest:
      description: >
        There was an error with the request - this could be due to an invalid
        body, query parameters,

        or headers that were sent to the API.
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: 98ca4a78-b66f-4234-9719-aaf832ee6669
            status: '400'
            title: A validation error was encountered
            source:
              parameter: include
            meta:
              resource: wrong_value
    Unauthorised:
      description: Authentication failed
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: 05fc9c8d-73b9-4697-9337-57f7a567a48f
            status: '401'
            title: You are not authorised to access this resource
            detail: In order to access this resource, you need the 'admin' role.
            code: AUTH.001
    NotFound:
      description: The requested resource could not be found
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: 7b4c8f12-3e9a-4d5b-8c6f-1a2b3c4d5e6f
            status: '404'
            title: Resource not found
            detail: The requested resource could not be found or does not exist.
            code: NOT_FOUND.001
    InternalServerError:
      description: There was a problem handling the request on the server side
      headers:
        Content-Type:
          $ref: '#/components/headers/content-type'
        Content-Length:
          $ref: '#/components/headers/content-length'
        X-Request-ID:
          $ref: '#/components/headers/x-request-id'
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              errors:
                type: array
                items:
                  $ref: '#/components/schemas/Error'
          example:
            id: fe9d9a69-f0a7-4fdc-bb2c-176027f316c5
            status: '500'
            title: Internal Server Error
            detail: An unexpected error occurred on the server.
  headers:
    content-type:
      description: The content type of the response
      schema:
        type: string
      example: application/vnd.api+json
    content-length:
      description: The length of the response body in bytes
      schema:
        type: integer
        format: int32
      example: 1234
    x-request-id:
      description: >-
        An ID that can be provided when reporting bugs to help identify the
        issue
      schema:
        type: string
      example: 8470f56af4cf25e22be08e72c70dbbdc
  schemas:
    StandardResults:
      type: object
      description: >-
        A standard's results over a period, read through one standard mapping.
        Its id is the mapping's.
      required:
        - id
        - type
        - attributes
      properties:
        id:
          type: string
          format: uuid
          description: The ID of the standard mapping the results were read through.
        type:
          type: string
          const: standard-results
        attributes:
          $ref: '#/components/schemas/StandardResultsAttributes'
    JSONAPI:
      type: object
      description: JSON API response object
      required:
        - jsonapi
      properties:
        jsonapi:
          type: object
          required:
            - version
          properties:
            version:
              type: string
              description: The version of the JSON API specification
              examples:
                - '1.0'
    Error:
      type: object
      description: An error response
      properties:
        id:
          description: >-
            A unique identifier for this particular occurrence of the problem.
            If you encounter this, please provide us with the error ID and we
            can investigate it on our side.
          type: string
          format: uuid
          examples:
            - 05fc9c8d-73b9-4697-9337-57f7a567a48f
        status:
          description: >-
            The status code for the error. This might not match the HTTP status
            code if there are more that one errors to return with different
            status codes.
          type: string
          examples:
            - '401'
            - '500'
        title:
          description: A human readable title for the error.
          type: string
          examples:
            - You are not authorised to access this resource
        detail:
          description: >-
            Where there is more detail that we can provide outside of the title,
            we will provide it here.
          type: string
          examples:
            - In order to access this resource, you need the 'admin' role.
        code:
          description: >-
            A unique code for the error that may help us to diagnose the issue.
            Not all errors have codes, so this is usually empty.

            `CH.003.080` (403) means the organisation in `meta.organisation_id`
            requires two-factor authentication and the caller's session does not
            satisfy it. The caller must set up or use a second factor, or sign
            in through their organisation's SAML single sign-on. Other OIDC
            sign-ins do not count.
          type: string
          examples:
            - AUTH.001
            - CH.003.080
        source:
          description: A JSON object containing additional information about the error.
          type: object
          properties:
            pointer:
              description: >-
                A JSON Pointer to the value in the request that caused the
                error.
              type: string
              examples:
                - /data/attributes/email
            parameter:
              description: >-
                A string indicating which query parameter in the request caused
                the error.
              type: string
              examples:
                - include
        meta:
          description: >-
            A JSON object containing additional information about the error.

            When a parameter caused the error, there will be a `resource`
            property with the name of the resource that caused the error.

            When `code` is `CH.003.080`, `organisation_id` names the
            organisation that requires two-factor authentication, which the
            caller's session does not satisfy.
          type: object
          properties:
            resource:
              type: string
              description: >-
                The resource a parameter error relates to, such as an
                unsupported include.
            organisation_id:
              type: string
              format: uuid
              examples:
                - c000c344-8847-47da-a091-32e75902d3b1
          additionalProperties: true
      required:
        - id
        - status
        - title
    StandardResultsAttributes:
      type: object
      required:
        - standard
        - bucket
        - counts
        - series
        - jobs
        - truncated
        - payments_shown
      properties:
        standard:
          type: string
          description: The key of the standard, such as `gsop-3`.
        bucket:
          type: string
          description: The length of the periods the series counts jobs in.
          enum:
            - day
            - week
            - month
            - quarter
            - year
        truncated:
          type: boolean
          description: >-
            True when the period held more jobs than a run evaluates, so the
            results cover only some of them.
        skipped:
          type: integer
          minimum: 0
          description: >-
            How many of the period's rows were left out because they had no
            usable submission id. They are in neither the jobs nor the counts.
            The results CSV export refuses a period with any.
        counts:
          $ref: '#/components/schemas/StandardResultCounts'
        series:
          type: array
          description: >-
            The counts per bucket, in order. Only a bucket with at least one job
            is listed, and a job with no period date is in none.
          items:
            type: object
            required:
              - start
              - counts
            properties:
              start:
                type: string
                format: date
                description: The first day of the bucket, in Europe/London.
                examples:
                  - '2026-07-13'
              counts:
                $ref: '#/components/schemas/StandardResultCounts'
        jobs:
          type: array
          description: Each job's result, in order of its period date.
          items:
            $ref: '#/components/schemas/StandardResultJob'
        payments_shown:
          type: boolean
          description: >-
            True when the jobs carry their payment records. A caller who views
            some forms' mappings only, as a contractor does, gets the results
            without payments.
        expected_total:
          allOf:
            - $ref: '#/components/schemas/Money'
          description: >-
            The jobs' expected payments added up. Present only when the results
            show payments.
        paid_total:
          allOf:
            - $ref: '#/components/schemas/Money'
          description: >-
            The amounts of the jobs' paid records added up, in GBP. Present only
            when the results show payments.
    StandardResultCounts:
      type: object
      description: How many jobs had each result.
      required:
        - met
        - breached
        - exempt
        - not_applicable
        - incomplete
      properties:
        met:
          type: integer
        breached:
          type: integer
        exempt:
          type: integer
        not_applicable:
          type: integer
        incomplete:
          type: integer
    StandardResultJob:
      type: object
      description: One job's result under a standard.
      required:
        - submission_id
        - result
        - reasons
        - missing
        - inputs
      properties:
        submission_id:
          type: string
          format: uuid
        submitted_at:
          type: string
          format: date-time
          description: When the submission was recorded.
        period_date:
          type: string
          format: date-time
          description: >-
            The value of the standard's period input. Absent when the job has
            none.
        result:
          type: string
          enum:
            - met
            - breached
            - exempt
            - not_applicable
            - incomplete
        reasons:
          type: array
          description: Why the job has its result, for a reader to check it.
          items:
            type: string
        missing:
          type: array
          description: The inputs an incomplete result is waiting on.
          items:
            type: string
        inputs:
          type: object
          description: >-
            The value of each input the job had, keyed by input key. A date is
            an RFC 3339 date-time, a yes or no answer a boolean, and a list of
            choices an array of strings. An input with no value is left out.
          additionalProperties: true
        payment:
          allOf:
            - $ref: '#/components/schemas/StandardPaymentAttributes'
          description: >-
            The job's payment record. Absent when the job has none, or when the
            results do not show payments.
        expected_payment:
          allOf:
            - $ref: '#/components/schemas/StandardExpectedPayment'
          description: >-
            The payment the job is predicted to owe. Absent when the job is not
            breached, or when the results do not show payments.
    Money:
      type: object
      description: >
        A monetary amount held in the currency's minor units (pence for GBP)
        alongside

        its ISO 4217 currency code. Amounts are never decimals, so repeated
        arithmetic

        cannot accumulate rounding error.
      required:
        - amount
        - currency
      properties:
        amount:
          type: integer
          format: int64
          description: >-
            The amount in the currency's minor units, for example 9250 for GBP
            92.50
          examples:
            - 9250
        currency:
          type: string
          description: The ISO 4217 alphabetic currency code
          minLength: 3
          maxLength: 3
          pattern: ^[A-Z]{3}$
          examples:
            - GBP
    StandardPaymentAttributes:
      type: object
      description: >-
        Whether a payment was made for one job's breach of a standard. A paid
        record has a date and an amount, a record of no payment owed has a
        reason, and a pending or withdrawn record has neither. A note is allowed
        with any status. A withdrawn record was taken back, such as one recorded
        by mistake, and its job reads as having no record.
      required:
        - submission_id
        - status
      properties:
        submission_id:
          type: string
          format: uuid
          readOnly: true
          description: The submission that is the job.
        status:
          type: string
          description: Where the payment stands.
          enum:
            - paid
            - not_owed
            - pending
            - withdrawn
        paid_on:
          type: string
          format: date
          description: The date the payment was made. Only a paid record has one.
          examples:
            - '2026-10-30'
        amount:
          allOf:
            - $ref: '#/components/schemas/Money'
          description: >-
            The amount paid. Only a paid record has one, and it is more than
            zero.
        reason:
          type: string
          maxLength: 1000
          description: Why no payment is owed. Only a record of no payment owed has one.
        note:
          type: string
          maxLength: 1000
          description: Free text, such as a payment reference.
    StandardExpectedPayment:
      type: object
      description: >-
        The payment a breached job is predicted to owe. Every customer is priced
        as domestic.
      required:
        - priced
        - amount
        - total
        - reasons
      properties:
        priced:
          type: boolean
          description: >-
            False when no rates were in effect on the job's date, or the job's
            payment is recorded as not owed. The amounts are then zero, and the
            reasons say why.
        amount:
          allOf:
            - $ref: '#/components/schemas/Money'
          description: What the breach owes, before any late payment.
        late_payment:
          allOf:
            - $ref: '#/components/schemas/Money'
          description: >-
            What paying late adds. Absent when the payment is not late, or not
            yet due.
        total:
          allOf:
            - $ref: '#/components/schemas/Money'
          description: The amount and the late payment together.
        source:
          type: string
          description: Which rates priced the payment. Absent when it was not priced.
          enum:
            - platform
            - organisation
        effective_from:
          type: string
          format: date
          description: >-
            The date the rates that priced the payment took effect. Absent when
            it was not priced.
        due_by:
          type: string
          format: date
          description: >-
            The last day the payment can be made without being late. Absent when
            it could not be counted.
        reasons:
          type: array
          description: The working, for a reader to check.
          items:
            type: string
  securitySchemes:
    Session:
      description: |
        Session token for authentication.
      in: header
      name: X-Session-Token
      type: apiKey
    OAuth2:
      description: |
        OAuth2 token for authentication.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: https://auth.ctrl-hub.com/oauth2/token
      type: oauth2
    Cookie:
      description: |
        Cookie token for authentication.
      in: cookie
      name: ctrl_hub_session
      type: apiKey

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.