Validere records API

Manage Records

Operations 21

POST /app/v1/records Create new record #
PUT /app/v1/records Create or update a record #
POST /app/v1/records/search Search and list records #
POST /app/v1/records/export Export records based on search input #
POST /app/v1/records/apply_configuration Apply record configuration using filter parameters #
POST /app/v1/records/apply_default_configuration Apply default record configuration using filter parameters #
POST /app/v1/records/apply_default_configuration_async Start an asynchronous job to bulk apply default record configuration using filter parameters #
GET /app/v1/records/{record_id} Get record and values #
DELETE /app/v1/records/{record_id} Delete record and values #
PUT /app/v1/records/{record_id}/status Set status of values of a record (lock/unlock) #
POST /app/v1/records/{entity_type}/input_records/search Search and list records that are calculator inputs #
POST /app/v1/records/{entity_type}/input_records/export Export records that are calculator inputs #
GET /app/v1/records/{record_id}/value/{measurement_type} Get record value #
PUT /app/v1/records/{record_id}/value/{measurement_type} Upsert record value #
DELETE /app/v1/records/{record_id}/value/{measurement_type} Delete record value #
PUT /app/v1/records/{record_id}/value/{measurement_type}/status Set record value status (lock/unlock) #
GET /app/v1/records/filters List Filter #
POST /app/v1/records/filters Create Filter #
DELETE /app/v1/records/filters/{filter_id} Delete Filter #
PUT /app/v1/records/filters/{filter_id} Update Filter #

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/validere-records-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 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 Specification

validere-records-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Activity Log
  title: CarbonHub activities Records API
  version: 1.0.0
servers:
- url: https://api.validere.io
security:
- Staging: []
- Integration: []
- Local: []
tags:
- description: Manage Records
  name: records
paths:
  /app/v1/records:
    post:
      operationId: create_record
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RecordCreateInput'
              - properties:
                  values:
                    items:
                      allOf:
                      - $ref: '#/components/schemas/RecordValueCreateInput'
                      - properties:
                          measurement_type:
                            type: string
                        type: object
                    type: array
                type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
          description: A successful operation
      summary: Create new record
      tags:
      - records
    put:
      operationId: upsert_record
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RecordCreateInput'
              - properties:
                  values:
                    items:
                      allOf:
                      - $ref: '#/components/schemas/RecordValueCreateInput'
                      - properties:
                          measurement_type:
                            type: string
                        type: object
                    type: array
                type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
          description: A successful operation
      summary: Create or update a record
      tags:
      - records
  /app/v1/records/search:
    post:
      operationId: search_records
      parameters:
      - $ref: '#/components/parameters/RecordAssetDetailQuery'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Paginated'
              - $ref: '#/components/schemas/RecordSort'
              - $ref: '#/components/schemas/RecordFilter'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedAggregatedRecordValues'
          description: A successful operation
      summary: Search and list records
      tags:
      - records
  /app/v1/records/status:
    put:
      operationId: lock_records_by_search
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RecordValueLockInput'
              - $ref: '#/components/schemas/RecordLockFilter'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordValueSearchLockResponse'
          description: A successful operation
      summary: Search records and set status of their record values
      tags:
      - records
  /app/v1/records/export:
    post:
      operationId: export_records
      parameters:
      - $ref: '#/components/parameters/RecordAssetDetailQuery'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/RecordSort'
              - $ref: '#/components/schemas/RecordFilter'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportWithS3Url'
          description: A successful with the link to download report
      summary: Export records based on search input
      tags:
      - records
  /app/v1/records/apply_configuration:
    post:
      operationId: apply_record_configuration
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                filter:
                  $ref: '#/components/schemas/RecordFilterFields'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  records:
                    type: array
                    items:
                      type: string
                      format: uuid
                  updated_record_values:
                    type: array
                    items:
                      type: string
                      format: uuid
                  failed_record_values:
                    type: array
                    items:
                      type: string
                      format: uuid
          description: A successful operation
      summary: Apply record configuration using filter parameters
      tags:
      - records
  /app/v1/records/apply_default_configuration:
    post:
      operationId: apply_default_configuration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplyDefaultRecordValueConfigurationRecordFilterInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkApplyDefaultRecordConfigurationResponse'
          description: A successful operation
      summary: Apply default record configuration using filter parameters
      tags:
      - records
  /app/v1/records/apply_default_configuration_async:
    post:
      operationId: apply_default_configuration_async
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplyDefaultRecordValueConfigurationRecordFilterInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkAsyncApplyDefaultRecordConfigurationResponse'
          description: Successfully starts an asynchronous job to bulk apply default record configurations
      summary: Start an asynchronous job to bulk apply default record configuration using filter parameters
      tags:
      - records
  /app/v1/records/{record_id}:
    get:
      operationId: get_record
      parameters:
      - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
          description: A successful operation
      summary: Get record and values
      tags:
      - records
    delete:
      operationId: delete_record
      parameters:
      - $ref: '#/components/parameters/RecordId'
      responses:
        '200':
          description: A successful operation
      summary: Delete record and values
      tags:
      - records
  /app/v1/records/{record_id}/status:
    put:
      operationId: lock_record_values_of_record
      parameters:
      - $ref: '#/components/parameters/RecordId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordValuesOfRecordLockInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LockRecordValuesOfRecordResponse'
          description: A successful operation
      summary: Set status of values of a record (lock/unlock)
      tags:
      - records
  /app/v1/records/{entity_type}/input_records/search:
    post:
      operationId: search_input_records
      parameters:
      - $ref: '#/components/parameters/AssetType'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Paginated'
              - properties:
                  filter:
                    $ref: '#/components/schemas/RecordFilterFields'
                type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedInputRecordResults'
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                $ref: '#/components/schemas/XLSXResponse'
          description: A successful operation
      summary: Search and list records that are calculator inputs
      tags:
      - records
  /app/v1/records/{entity_type}/input_records/export:
    post:
      operationId: export_input_records
      parameters:
      - $ref: '#/components/parameters/AssetType'
      requestBody:
        content:
          application/json:
            schema:
              properties:
                filter:
                  $ref: '#/components/schemas/RecordFilterFields'
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportWithS3Url'
          description: A successful with the link to download report
      summary: Export records that are calculator inputs
      tags:
      - records
  /app/v1/records/{record_id}/value/{measurement_type}:
    get:
      operationId: get_record_value
      parameters:
      - $ref: '#/components/parameters/RecordId'
      - $ref: '#/components/parameters/MeasurementType'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordValue'
          description: A successful operation
      summary: Get record value
      tags:
      - records
    put:
      operationId: upsert_record_value
      parameters:
      - $ref: '#/components/parameters/RecordId'
      - $ref: '#/components/parameters/MeasurementType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordValueCreateInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordValue'
          description: A successful operation
      summary: Upsert record value
      tags:
      - records
    delete:
      operationId: delete_record_value
      parameters:
      - $ref: '#/components/parameters/RecordId'
      - $ref: '#/components/parameters/MeasurementType'
      responses:
        '200':
          description: A successful operation
      summary: Delete record value
      tags:
      - records
  /app/v1/records/{record_id}/value/{measurement_type}/status:
    put:
      operationId: lock_record_value
      parameters:
      - $ref: '#/components/parameters/RecordId'
      - $ref: '#/components/parameters/MeasurementType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordValueLockInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordValueCreateInput'
          description: A successful operation
      summary: Set record value status (lock/unlock)
      tags:
      - records
  /app/v1/records/filters:
    get:
      operationId: get_records_filter
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/SortBy'
      - $ref: '#/components/parameters/SortDirection'
      - $ref: '#/components/parameters/FilterStatus'
      - $ref: '#/components/parameters/FilterTag'
      - $ref: '#/components/parameters/FilterCreatedBy'
      - $ref: '#/components/parameters/FilterName'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedRecordFilterOutput'
          description: successful operation
      summary: List Filter
      tags:
      - records
    post:
      operationId: post_records_filter
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordFilterInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedRecordFilterOutput'
          description: successful operation
      summary: Create Filter
      tags:
      - records
  /app/v1/records/filters/{filter_id}:
    delete:
      operationId: delete_records_filter
      parameters:
      - $ref: '#/components/parameters/FilterId'
      responses:
        '200':
          description: successful operation
      summary: Delete Filter
      tags:
      - records
    put:
      operationId: put_records_filter
      parameters:
      - $ref: '#/components/parameters/FilterId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordFilterInput'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FormSubmissionFilterOutput'
          description: successful operation
      summary: Update Filter
      tags:
      - records
components:
  parameters:
    Page:
      description: page number
      in: query
      name: page
      required: false
      schema:
        type: number
    FilterId:
      description: Filter ID
      example: 748970de-fd1f-4494-ae3f-47cc21ff205f
      in: path
      name: filter_id
      required: true
      schema:
        format: uuid
        type: string
    FilterName:
      description: Filter Name
      in: query
      name: name
      required: false
      schema:
        type: string
    RecordAssetDetailQuery:
      description: set to true to include asset detail when group by <asset_type>.id
      in: query
      name: asset_detail
      example: true
      required: false
      schema:
        type: string
    SortDirection:
      description: sort direction
      example: desc
      in: query
      name: sort_direction
      required: false
      schema:
        enum:
        - asc
        - desc
        type: string
    RecordId:
      description: ID of the record
      in: path
      name: record_id
      required: true
      schema:
        type: string
        format: uuid
    FilterCreatedBy:
      description: Filter Creator
      in: query
      name: created_by
      required: false
      schema:
        format: uuid
        type: string
    MeasurementType:
      description: Measurement type of the measurements being retrieved
      example: volume
      in: path
      name: measurement_type
      required: true
      schema:
        type: string
    AssetType:
      description: Asset Type
      example: equipment
      in: path
      name: entity_type
      required: true
      schema:
        $ref: '#/components/schemas/AssetType'
    FilterTag:
      description: Filter Tag
      in: query
      name: tag
      required: false
      schema:
        type: string
    SortBy:
      description: sort by
      in: query
      name: sort_by
      required: false
      schema:
        type: string
    FilterStatus:
      description: Filter Status
      in: query
      name: status
      required: false
      schema:
        $ref: '#/components/schemas/schemas-FilterStatus'
    PageSize:
      description: page size
      in: query
      name: page_size
      required: false
      schema:
        type: number
  schemas:
    XLSXResponse:
      format: binary
      type: string
    CalculatorResultRecordValueConfiguration:
      properties:
        configuration_type:
          type: string
          enum:
          - calculator_result
        aggregate_function:
          $ref: '#/components/schemas/RecordValueConfigurationFunction'
        calculator_result_ids:
          type: array
          items:
            format: uuid
            type: string
      type: object
    EquipmentStatus:
      type: string
      enum:
      - active
      - inactive
      - deprecated
    RecordValueSearchLockResponse:
      properties:
        success:
          type: boolean
          example: true
        affected:
          type: number
          example: 109
      type: object
    RecordFilterFields:
      allOf:
      - $ref: '#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix'
      - $ref: '#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix'
      - $ref: '#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix'
      - $ref: '#/components/schemas/DevicePrimaryFilterFieldsWithPrefix'
      - $ref: '#/components/schemas/FlowPrimaryFilterFieldsWithPrefix'
      - $ref: '#/components/schemas/RecordPrimaryFilterFields'
      - properties:
          measurement_type:
            type: string
          record_value.id:
            description: record value ID
            type: string
            format: uuid
          flow.associated_facility.custom_attributes:
            type: object
          flow.associated_equipment.custom_attributes:
            type: object
        type: object
    CompanyId:
      properties:
        id:
          format: uuid
          type: string
    AssetType:
      type: string
      enum:
      - equipment
      - device
      - facility
      - flow
    schemas-FilterStatus:
      type: string
      enum:
      - active
      - draft
    RecordValueStatusType:
      type: string
      enum:
      - locked
      - unlocked
    RecordPrimaryFilterFields:
      properties:
        id:
          description: record ID
          type: string
          format: uuid
        asset_type:
          $ref: '#/components/schemas/MeasurementSubjectEntityType'
        asset_id:
          type: string
          format: uuid
          example:
            $in:
            - c3e9446d-4cc0-4e7b-bb43-43fff9361957
            - c3e9446d-4cc0-4e7b-bb43-43fff9361957
        reporting_group_id:
          type: string
          example: subpartw
        year_month:
          type: string
          example: 202201
      type: object
    RecordFilterInput:
      allOf:
      - $ref: '#/components/schemas/FilterInput'
      - $ref: '#/components/schemas/RecordFilter'
    FormSubmissionFilter:
      properties:
        filter:
          description: A filter object for Form Submissions where it can filter based on any of these following fields. No fields are mandatory and the syntax is roughly the same as MongoDB querying.
          properties:
            id:
              type: string
              format: uuid
            version:
              type: integer
            current_version:
              type: boolean
            status:
              type: string
              $ref: '#/components/schemas/FormSubmissionStatus'
            form_category_id:
              type: string
              example:
                $in:
                - 748970de-fd1f-4494-ae3f-47cc21ff205f
            form_category.name:
              type: string
              example: test
            form_schema.id:
              type: string
              example:
                $in:
                - 748970de-fd1f-4494-ae3f-47cc21ff205f
            form_schema.name:
              type: string
            form_schema.version:
              type: number
            form_schema.current_version:
              type: boolean
            form_schema.status:
              type: string
              $ref: '#/components/schemas/FormSchemaStatus'
            related_entity_id:
              type: string
              format: uuid
            created_by:
              type: string
              format: uuid
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
            event.id:
              type: string
              format: uuid
            measurement.measurement_type:
              type: string
            measurement.measurement_unit:
              type: string
            measurement.source_id:
              type: string
              format: uuid
            measurement.subject_id:
              type: string
              format: uuid
            measurement.form_submission_id:
              type: string
              format: uuid
            measurement.section_id:
              type: string
            measurement.question_id:
              type: string
            measurement.question_index:
              type: number
            measurement.time:
              type: string
              format: date-time
          type: object
    FlowStatus:
      type: string
      enum:
      - active
      - inactive
    RecordValueWithCalculatorInputRecord:
      allOf:
      - $ref: '#/components/schemas/RecordValue'
      - properties:
          calculator_input_record:
            $ref: '#/components/schemas/CalculatorInputRecord'
        type: object
    Pagination:
      properties:
        page_number:
          type: number
          example: 0
        page_size:
          type: number
          example: 10
        total_entries:
          type: number
          example: 58
        total_pages:
          type: number
          example: 6
      type: object
    ProductCategories:
      type: string
      description: Use `id` value of any index in `GET /v1/product_categories`
    FilterOutput:
      allOf:
      - $ref: '#/components/schemas/CompanyId'
      - $ref: '#/components/schemas/FilterId'
      - $ref: '#/components/schemas/FilterInput'
      type: object
    AuditFields:
      properties:
        created_at:
          format: date-time
          type: string
        updated_at:
          format: date-time
          type: string
        created_by:
          format: uuid
          type: string
        updated_by:
          format: uuid
          type: string
      type: object
    BulkApplyDefaultRecordConfigurationResponse:
      allOf:
      - $ref: '#/components/schemas/BulkResponse'
      - properties:
          data:
            type: object
            additionalProperties:
              $ref: '#/components/schemas/ApplyDefaultRecordConfigurationItemResponse'
          skippedCount:
            type: number
    BulkResponse:
      properties:
        status:
          $ref: '#/components/schemas/BulkResponseStatus'
      type: object
    PagedAggregatedRecordValues:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - properties:
          data:
            $ref: '#/components/schemas/AggregatedRecordValuesResults'
        type: object
    ApplyDefaultRecordConfigurationItemResponse:
      properties:
        status:
          $ref: '#/components/schemas/BulkItemStatus'
        upserts:
          type: array
          items:
            $ref: '#/components/schemas/RecordValue'
    ReportingGroupInput:
      type: object
      allOf:
      - $ref: '#/components/schemas/ReportingGroupUpdateInput'
      - properties:
          id:
            type: string
            example: subpartw
    RecordSort:
      properties:
        sort_by:
          description: any field from group_by param
          type: string
        sort_direction:
          default: desc
          description: sort direction
          enum:
          - asc
          - desc
          example: desc
          type: string
    LockRecordValuesOfRecordResponse:
      properties:
        success:
          type: boolean
          example: true
        recordValues:
          type: array
          items:
            $ref: '#/components/schemas/RecordValue'
      type: object
    ReportingGroupUpdateInput:
      properties:
        name:
          type: string
          example: SubpartW
        description:
          type: string
          example: my reporting group
        priority:
          type: number
          description: default to 1
          example: 2
    FlowFacilityPrimaryFilterFieldsWithPrefix:
      properties:
        flow.facility.custom_attributes:
          type: object
        flow.facility.id:
          type: string
        flow.facility.name:
          type: string
        flow.facility.status:
          type: string
      type: object
    FormSubmissionStatus:
      type: string
      enum:
      - validated
      - invalidated
      - pending
      - submitted
      - draft
      default: pending
    PagedRecordFilterOutput:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - properties:
          data:
            items:
              $ref: '#/components/schemas/RecordFilterOutput'
            type: array
        type: object
    InputRecordResult:
      type: object
      allOf:
      - $ref: '#/components/schemas/RecordCreateInput'
      - $ref: '#/components/schemas/AuditFields'
      - properties:
          id:
            format: uuid
            type: string
          company_id:
            format: uuid
            type: string
          record_value:
            type: array
            items:
              $ref: '#/components/schemas/RecordValueWithCalculatorInputRecord'
          asset:
            $ref: '#/components/schemas/Asset'
          reporting_group:
            $ref: '#/components/schemas/ReportingGroup'
    JobStatus:
      type: string
      enum:
      - started
      - finished
      - failed
      - partial
    FilterMetadata:
      properties:
        metadata:
          type: array
          items:
            type: object
          example:
          - key: calculator_configuration.year_month
            isSelected: true
          - key: flow.type
            isSelected: false
    JobItemStatusCounts:
      type: object
      properties:
        success:
          type: number
        failed:
          type: number
        skipped:
          type: number
    ReportWithS3Url:
      allOf:
      - $ref: '#/components/schemas/ReportWithTemplatedReportResponse'
      - properties:
          s3_download_link:
            type: string
        type: object
    RecordValuesOfRecordLockInput:
      properties:
        measurement_types:
          type: array
          items:
            type: string
            example: volume
          description: measurement_types
        status:
          $ref: '#/components/schemas/RecordValueStatusType'
      type: object
    FlowPrimaryFilterFieldsWithPrefix:
      properties:
        flow.id:
          type: string
        flow.name:
          type: string
        flow.status:
          $ref: '#/components/schemas/FlowStatus'
        flow.type:
          $ref: '#/components/schemas/FlowTypes'
        flow.product_type:
          $ref: '#/components/schemas/ProductTypes'
        flow.product_category:
          $ref: '#/components/schemas/ProductCategories'
        flow.custom_attributes:
          $ref: '#/components/schemas/CustomAttributes'
        flow.associated_facility_id:
          type: string
          format: uuid
        flow.associated_equipment_id:
          type: string
          format: uuid
      type: object
    RecordValueLockInput:
      properties:
        status:
          $ref: '#/components/schemas/RecordValueStatusType'
      type: object
    RecordCreateInput:
      properties:
        asset_id:
          format: uuid
          type: string
          description: Either asset_id or asset_filter is required
        asset_filter:
          description: Either asset_id or asset_filter is required
          allOf:
          - $ref: '#/components/schemas/FacilityPrimaryFilterFieldsWithPrefix'
          - $ref: '#/components/schemas/EquipmentPrimaryFilterFieldsWithPrefix'
          - $ref: '#/components/schemas/DevicePrimaryFilterFieldsWithPrefix'
          - $ref: '#/components/schemas/FlowPrimaryFilterFieldsWithPrefix'
          - $ref: '#/components/schemas/EquipmentFacilityPrimaryFilterFieldsWithPrefix'
          - $ref: '#/components/schemas/FlowFacilityPrimaryFilterFieldsWithPrefix'
        reporting_group_id:
          type: string
        year_month:
          type: string
      type: object
    ReportingGroup:
      allOf:
      - $ref: '#/components/schemas/ReportingGroupInput'
      - $ref: '#/components/schemas/AuditFields'
      - properties:
          company_id:
            format: uuid
            type: string
        type: object
    ProductTypes:
      type: string
      description: Use `id` value of any index in `GET /v1/product_types`
    ManualRecordValueConfiguration:
      properties:
        configuration_type:
          type: string
          enum:
          - manual
        value:
          type: number
      type: object
    RecordValueConfiguration:
      allOf:
      - oneOf:
        - $ref: '#/components/schemas/ManualRecordValueConfiguration'
        - $ref: '#/components/schemas/FormMeasurementRecordValueConfiguration'
        - $ref: '#/components/schemas/CalculatorResultRecordValueConfiguration'
        - $ref: '#/components/schemas/MeasurementSeriesRecordValueConfiguration'
      - properties:
          sources:
            items:
              type: object
            type: array
            readOnly: true
        type: object
    JobType:
      type: string
      enum:
      - run_calculation
      - apply_default_record_configuration
      - apply_default_calculator_configuration
    BulkResponseStatus:
      type: string
      enum:
      - success
      - failed
    CustomAttributes:
      example:
        attribute1: 12345
        attribute2: value1
      type: object
    RecordFilter:
      properties:
        filter:
          $ref: '#/components/schemas/RecordFilterFields'
        group_by:
          type: array
          items:
            description: any field from filter param
            type: string
            example: year_month
      type: object
    ApplyDefaultRecordValueConfigurationRecordFilterInput:
      allOf:
      - properties:
          filter:
            $ref: '#/components/schemas/RecordFilterFields'
      - $ref: '#/components/schemas/OverwriteAllValues'
    InputRecordResults:
      type: array
      items:
        $ref: '#/components/schemas/InputRecordResult'
    Record:
      allOf:
      - $ref: '#/components/schemas/RecordCreateInput'
      - $ref: '#/components/schemas/AuditFields'
      - properties:
          id:
            format: uuid
            type: string
          asset_type:
            $ref: '#/components/schemas/MeasurementSubjectEntityType'
          company_id:
            format: uuid
            type: string
          values:
            type: array
            items:
              $ref: '#/components/schemas/RecordValue'
        type: object
    OverwriteAllValues:
      properties:
        overwrite_all_values:
          type: boolean
          default: false
    DevicePrimaryFilterFieldsWithPrefix:
      properties:
        device.attributes:
          type: object
        device.custom_attributes:
          type: object
        device.id:
          type: string
        device.measurement_types:
          type: string
        device.name:
          type: string
        device.status:
          type: string
        device.type_id:
          type: string
    EquipmentFacilityPrimaryFilterFieldsWithPrefix:
      properties:
        equipment.facility.custom_attributes:
          type: object
        equipment.facility.id:
          type: string
        equipment.facility.name:
          type: string
        equipment.facility.status:
          type: string
      type: object
    FlowTypes:
      type: string
      description: Use `id` value of any index in `GET /v1/flow_types`
    FormSubmissionFilterOutput:
      allOf:
      - $ref: '#/components/schemas/FilterOutput'
      - $ref: '#/components/schemas/FormSubmissionFilter'
      type: object
    CalculatorInputRecord:
      properties:
        estimation_method_id:
          type: string
          format: uuid
        input_name:
          type: string
        year_month:
          type: string
        record_value_id:
    

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