Measurabl Energy and Water Meter Bills API

The Energy and Water Meter Bills API from Measurabl — 1 operation(s) for energy and water meter bills.

Operations 1

GET /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters/{meter_id}/readings/{meter_reading_id}/bill Retrieves a utility bill for the given reading if one exists

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/measurabl-energy-and-water-meter-bills-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

measurabl-energy-and-water-meter-bills-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Measurabl Core Energy and Water Meter Bills API
  version: v0
  description: '## Quick Start Guide


    1. Authorize using your client credentials (key and secret).

    2. Make a `GET /core/v0/portfolios` request (under the Portfolios section) to get a list of available portfolios.

    3. Obtain the proper portfolio_id (id) in which you need to get/create data for.

    4. This `portfolio_id` will be required for all other reoccurring requests.


    * [Authentication](https://support.measurabl.com/hc/en-us/articles/15889532915085-How-do-I-authenticate-with-Measurabl-s-Core-API-)

    * [Release Notes](https://api.measurabl.com/release_notes)

    * [Usage/Rate Limits](https://support.measurabl.com/hc/en-us/articles/15889355100429-Core-API-Usage-Rate-Limits)

    * [Pagination & Filtering](https://support.measurabl.com/hc/en-us/articles/15889550313101-Core-API-Pagination-Filtering-Requests)

    * [Code Examples](https://github.com/Measurabl/measurabl_api_code_samples)


    ### Response Format


    Each endpoint response complies with the [JSON-API Specification](https://jsonapi.org/) which has many available [client libraries](https://jsonapi.org/implementations/#client-libraries).

    '
servers:
- url: https://api.measurabl.com/core/v0
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Energy and Water Meter Bills
paths:
  /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters/{meter_id}/readings/{meter_reading_id}/bill:
    get:
      summary: Retrieves a utility bill for the given reading if one exists
      tags:
      - Energy and Water Meter Bills
      security:
      - OAuth2: []
      parameters:
      - name: portfolio_id
        in: path
        description: "UUID for the parent portfolio<br>\n                              Example: <em>f9f3fc20-37f4-4fbc-9388-ed3f18fd10d5</em>"
        required: true
        schema:
          type: string
      - name: building_id
        in: path
        description: 'Example: 05a9147c-5e0b-4967-9db0-eff8327cc0a6'
        required: true
        schema:
          type: string
      - name: meter_id
        in: path
        description: 'Example: 0c5f57e8-86cb-47e5-a175-581c664fba89'
        required: true
        schema:
          type: string
      - name: meter_reading_id
        in: path
        description: 'Example: 0014a1a8-5f3f-4066-a887-b574b65c1848'
        required: true
        schema:
          type: string
      responses:
        '303':
          description: Redirect to where the bill for meter reading is found
          headers:
            Location:
              type: string
              description: The redirect URL location of the requested bill `http://example.com/meter/reading/bill.pdf`
          content:
            text/html:
              example: ''
        '404':
          description: Not Found
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '404'
                  title: Not Found
                  detail: Could not find 4f6222d5-56a0-4b93-a434-cbc0194119a5 in meter 8b986424-de1f-447d-b034-1a7e57d9691f in building 583ad944-ef88-4510-b2de-41544cebd519 in portfolio 123038cc-dda7-4e3d-a2fb-f074d2aaa74e
              schema:
                $ref: '#/components/schemas/json_api'
        '401':
          description: Unauthorized Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '401'
                  title: Unauthorized
                  detail: Unauthorized Request
              schema:
                $ref: '#/components/schemas/json_api'
        '400':
          description: Bad Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '400'
                  title: Bad Request
                  detail: An invalid UUID parameter was submitted with the request (portfolio_id)
              schema:
                $ref: '#/components/schemas/json_api'
        '502':
          description: Internal Error
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '502'
                  title: Bad Gateway
                  detail: A Measurabl Server is down, please try again later
              schema:
                $ref: '#/components/schemas/json_api'
        '500':
          description: Internal Error
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '500'
                  title: Internal Server Error
                  detail: An error occurred with the request
              schema:
                $ref: '#/components/schemas/json_api'
        '503':
          description: Service Unavailable
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '503'
                  title: Service Unavailable
                  detail: A Measurabl Server is currently unavailable, please try again later
              schema:
                $ref: '#/components/schemas/json_api'
        '408':
          description: Request Timeout
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '408'
                  title: Request Timeout
                  detail: The request you made has timed out
              schema:
                $ref: '#/components/schemas/json_api'
        '429':
          description: Too many requests
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '429'
                  title: Too Many Requests
                  detail: Rate Limit Exceeded
              schema:
                $ref: '#/components/schemas/json_api'
        '403':
          description: unauthorized request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '403'
                  title: Forbidden
                  detail: 'A valid auth token is required.

                    POST to ''/token'' with a valid ''key'' and ''secret'' to get an auth token.

                    '
              schema:
                $ref: '#/components/schemas/json_api'
components:
  schemas:
    success:
      type: object
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/data'
        included:
          description: To reduce the number of HTTP requests, servers **MAY** allow responses that include related resources along with the requested primary resources. Such responses are called 'compound documents'.
          type: array
          items:
            $ref: '#/components/schemas/resource'
          uniqueItems: true
        meta:
          $ref: '#/components/schemas/meta'
        links:
          description: Link members related to the primary data.
          allOf:
          - $ref: '#/components/schemas/links'
          - $ref: '#/components/schemas/pagination'
        jsonapi:
          $ref: '#/components/schemas/jsonapi'
      additionalProperties: false
    relationshipToOne:
      description: References to other resource objects in a to-one ('relationship'). Relationships can be specified by including a member in a resource's links object.
      anyOf:
      - $ref: '#/components/schemas/empty'
      - $ref: '#/components/schemas/linkage'
    relationshipLinks:
      description: A resource object **MAY** contain references to other resource objects ('relationships'). Relationships may be to-one or to-many. Relationships can be specified by including a member in a resource's links object.
      type: object
      properties:
        self:
          $ref: '#/components/schemas/link'
        related:
          $ref: '#/components/schemas/link'
      additionalProperties: true
    relationshipToMany:
      description: An array of objects each containing 'type' and 'id' members for to-many relationships.
      type: array
      items:
        $ref: '#/components/schemas/linkage'
      uniqueItems: true
    data:
      description: The document's 'primary data' is a representation of the resource or collection of resources targeted by a request.
      anyOf:
      - $ref: '#/components/schemas/resource'
      - description: An array of resource objects, an array of resource identifier objects, or an empty array ([]), for requests that target resource collections.
        type: array
        items:
          $ref: '#/components/schemas/resource'
        uniqueItems: true
      - description: null if the request is one that might correspond to a single resource, but doesn't currently.
    pagination:
      type: object
      properties:
        first:
          description: The first page of data
          type: string
          format: uri-reference
          x-nullable: true
        last:
          description: The last page of data
          type: string
          format: uri-reference
          x-nullable: true
        prev:
          description: The previous page of data
          type: string
          format: uri-reference
          x-nullable: true
        next:
          description: The next page of data
          type: string
          format: uri-reference
          x-nullable: true
    meta:
      description: Non-standard meta-information that can not be represented as an attribute or relationship.
      type: object
      additionalProperties: true
    failure:
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/error'
          uniqueItems: true
        meta:
          $ref: '#/components/schemas/meta'
        jsonapi:
          $ref: '#/components/schemas/jsonapi'
        links:
          $ref: '#/components/schemas/links'
      additionalProperties: false
    json_api:
      oneOf:
      - $ref: '#/components/schemas/success'
      - $ref: '#/components/schemas/failure'
      - $ref: '#/components/schemas/info'
    link:
      description: 'A link **MUST** be represented as either: a string containing the link''s URL or a link object.'
      oneOf:
      - description: A string containing the link's URL.
        type:
        - string
        - 'null'
        format: uri-reference
      - type: object
        required:
        - href
        properties:
          href:
            description: A string containing the link's URL.
            type: string
            format: uri-reference
          meta:
            $ref: '#/components/schemas/meta'
    links:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/link'
    empty:
      description: Describes an empty to-one relationship.
    linkage:
      description: The 'type' and 'id' to non-empty members.
      type: object
      required:
      - type
      - id
      properties:
        type:
          type: string
        id:
          type: string
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
    error:
      type: object
      properties:
        id:
          description: A unique identifier for this particular occurrence of the problem.
          type: string
        links:
          $ref: '#/components/schemas/links'
        status:
          description: The HTTP status code applicable to this problem, expressed as a string value.
          type: string
        code:
          description: An application-specific error code, expressed as a string value.
          type: string
        title:
          description: A short, human-readable summary of the problem. It **SHOULD NOT** change from occurrence to occurrence of the problem, except for purposes of localization.
          type: string
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
        source:
          type: object
          properties:
            pointer:
              description: A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. '/data' for a primary data object, or '/data/attributes/title' for a specific attribute].
              type: string
            parameter:
              description: A string indicating which query parameter caused the error.
              type: string
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
    jsonapi:
      description: An object describing the server's implementation
      type: object
      properties:
        version:
          type: string
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
    attributes:
      description: Members of the attributes object ('attributes') represent information about the resource object in which it's defined.
      type: object
      additionalProperties: true
    info:
      type: object
      required:
      - meta
      properties:
        meta:
          $ref: '#/components/schemas/meta'
        links:
          $ref: '#/components/schemas/links'
        jsonapi:
          $ref: '#/components/schemas/jsonapi'
      additionalProperties: false
    relationships:
      description: Members of the relationships object ('relationships') represent references from the resource object in which it's defined to other resource objects.
      type: object
      properties:
        links:
          $ref: '#/components/schemas/relationshipLinks'
        data:
          description: Member, whose value represents 'resource linkage'.
          oneOf:
          - $ref: '#/components/schemas/relationshipToOne'
          - $ref: '#/components/schemas/relationshipToMany'
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: true
    resource:
      description: '''Resource objects'' appear in a JSON:API document to represent resources.'
      type: object
      required:
      - type
      - id
      properties:
        type:
          type: string
        id:
          type: string
        attributes:
          $ref: '#/components/schemas/attributes'
        relationships:
          $ref: '#/components/schemas/relationships'
        links:
          $ref: '#/components/schemas/links'
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.measurabl.com/token
          scopes: {}