openapi: 3.0.1 info: title: Measurabl Core 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). ' components: schemas: json_api: oneOf: - $ref: '#/components/schemas/success' - $ref: '#/components/schemas/failure' - $ref: '#/components/schemas/info' 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 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 info: type: object required: - meta properties: meta: $ref: '#/components/schemas/meta' links: $ref: '#/components/schemas/links' jsonapi: $ref: '#/components/schemas/jsonapi' additionalProperties: false meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: 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. nullable: 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 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 links: type: object additionalProperties: $ref: '#/components/schemas/link' 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 format: uri-reference nullable: true - type: object required: - href properties: href: description: A string containing the link's URL. type: string format: uri-reference meta: $ref: '#/components/schemas/meta' attributes: description: Members of the attributes object ('attributes') represent information about the resource object in which it's defined. type: object additionalProperties: true 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 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' 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 empty: description: Describes an empty to-one relationship. nullable: true 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 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 jsonapi: description: An object describing the server's implementation type: object properties: version: 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 securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://api.measurabl.com/token scopes: {} paths: /core/v0/portfolios/{portfolio_id}/buildings: post: summary: Adds a building to a specified portfolio tags: - Buildings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: bb97d075-a826-4001-b4bb-2dbab87e2b72' required: true schema: type: string responses: '200': description: Creates a portfolio specific building content: application/vnd.api+json: example: data: id: 99b0e527-a662-4121-b2bf-dc59f2ad9a28 type: buildings attributes: estarId: null name: Test Building addressLine1: 900 Spear Avenue addressLine2: '' addressCity: San Francisco addressState: CA addressProvince: null addressZip: '94105' addressCountry: United States yearBuilt: null buildingClass: C primaryPropertyType: Data Center floorAreaSqFt: 20000 customId: null boughtDate: '2026-01-16' soldDate: null isSingleTenant: false percentOwned: 80.0 isActive: false updatedAt: '2026-04-01 00:00:00' links: self: /portfolios/74468b82-3bb8-4f8e-a4a8-8dd69efeb4cc/buildings/99b0e527-a662-4121-b2bf-dc59f2ad9a28 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 0a86c55e-18eb-4ba0-80fe-3fa949e22303 in portfolio 818c909b-f251-4666-a428-28c7b865cba3 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: type: type: string attributes: type: object properties: name: type: string addressLine1: type: string addressLine2: type: string addressCity: type: string addressState: type: string addressProvince: type: string addressZip: type: string addressCountry: type: string yearBuilt: type: integer buildingClass: type: string primaryPropertyType: type: string floorAreaSqFt: type: integer customId: type: string boughtDate: type: string soldDate: type: string isSingleTenant: type: boolean percentOwned: type: float isActive: type: boolean required: - name - addressLine1 - addressCity - addressState - addressZip - addressCountry - primaryPropertyType - floorAreaSqFt example: data: type: buildings attributes: name: API Test Building addressLine1: 900 Spear Avenue addressLine2: '' addressCity: San Francisco addressState: CA addressProvince: null addressZip: '94105' addressCountry: United States yearBuilt: 1980 buildingClass: C primaryPropertyType: Data Center floorAreaSqFt: 20000.0 customId: null boughtDate: '2026-03-29' soldDate: null isSingleTenant: false percentOwned: 80.0 isActive: false required: true description: Request body used to create a building associated with a portfolio get: summary: Returns a paginated list of buildings for a specified portfolio or fund tags: - Buildings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 73755608-a99d-40d9-94df-09d8ff67e7cd" required: true - name: filter in: query description: "Filter by any attribute available via the endpoint.\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: portfolio or fund with buildings found content: application/vnd.api+json: example: data: - id: 4008cd95-4aeb-4019-b387-c0a7377fa58e type: buildings attributes: estarId: 34137899 name: Bug Test addressLine1: 123 Bug St addressLine2: '' addressCity: San Diego addressState: CA addressProvince: null addressZip: '92104' addressCountry: United States yearBuilt: 1969 buildingClass: null primaryPropertyType: Movie Theater floorAreaSqFt: 25000 customId: null boughtDate: '2025-09-01' soldDate: null isSingleTenant: true percentOwned: 100.0 isActive: true updatedAt: '2026-05-16 00:00:00' links: self: /portfolios/8472cd20-dfca-498e-8d1e-95efc92f56c9/buildings/4008cd95-4aeb-4019-b387-c0a7377fa58e - id: 4f05c66f-ab07-455d-8c06-91b099b6e486 type: buildings attributes: estarId: 33212337 name: Parent Building 3 addressLine1: 1007 1st St St addressLine2: '' addressCity: Stilwater addressState: MN addressProvince: null addressZip: '55082' addressCountry: United States yearBuilt: 1869 buildingClass: null primaryPropertyType: Financial Office floorAreaSqFt: 750 customId: null boughtDate: '2026-07-02' soldDate: null isSingleTenant: false percentOwned: 50.0 isActive: true updatedAt: '2026-01-16 00:00:00' links: self: /portfolios/8472cd20-dfca-498e-8d1e-95efc92f56c9/buildings/4f05c66f-ab07-455d-8c06-91b099b6e486 - id: 7813777b-addb-449d-8117-1ed2c8578a72 type: buildings attributes: estarId: 25849582 name: Meter Test 1zzz addressLine1: 111 Meter St addressLine2: '' addressCity: San Diego addressState: CA addressProvince: null addressZip: '92111' addressCountry: United States yearBuilt: 1969 buildingClass: null primaryPropertyType: Office floorAreaSqFt: 0 customId: null boughtDate: '2026-02-23' soldDate: null isSingleTenant: true percentOwned: 100.0 isActive: false updatedAt: '2026-07-11 00:00:00' links: self: /portfolios/8472cd20-dfca-498e-8d1e-95efc92f56c9/buildings/7813777b-addb-449d-8117-1ed2c8578a72 - id: c150197f-2890-4b64-9020-c75be80b4f92 type: buildings attributes: estarId: 37741951 name: A Cool Building addressLine1: 123 Meter Blvd addressLine2: '' addressCity: San Diego addressState: '' addressProvince: Uhh addressZip: '92120' addressCountry: Japan yearBuilt: 1969 buildingClass: null primaryPropertyType: Senior Care Community floorAreaSqFt: 16531 customId: null boughtDate: '2025-07-16' soldDate: null isSingleTenant: false percentOwned: 70.5 isActive: true updatedAt: '2026-01-20 00:00:00' links: self: /portfolios/8472cd20-dfca-498e-8d1e-95efc92f56c9/buildings/c150197f-2890-4b64-9020-c75be80b4f92 - id: 0f560852-e88d-4ecf-87c2-cf8c9e13c8d5 type: buildings attributes: estarId: 82538285 name: Warehouse Distribution Center addressLine1: 123 Warehouse Dr addressLine2: '' addressCity: San Diego addressState: CA addressProvince: null addressZip: '92120' addressCountry: United States yearBuilt: 1969 buildingClass: null primaryPropertyType: Distribution Center floorAreaSqFt: 1111 customId: null boughtDate: '2026-03-20' soldDate: null isSingleTenant: true percentOwned: 100.0 isActive: true updatedAt: '2026-02-02 00:00:00' links: self: /portfolios/8472cd20-dfca-498e-8d1e-95efc92f56c9/buildings/0f560852-e88d-4ecf-87c2-cf8c9e13c8d5 links: self: /portfolios/8472cd20-dfca-498e-8d1e-95efc92f56c9/buildings meta: page: number: 1 size: 100 totalPages: 7 totalElements: 654 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: 'Unknown portfolio UUID: a38f4ec4-c303-4deb-ac02-dcdd586cbdf2' 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}: delete: summary: Removes a building from a specified portfolio tags: - Buildings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: a6e32f0e-5f5f-4497-b024-11f9d6f200ca' required: true schema: type: string - name: building_id in: path description: 'Example: 01327933-9400-4c64-81be-2e5af129d495' required: true schema: type: string responses: '204': description: Building Deleted Successfully content: application/vnd.api+json: example: '' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 07603756-06de-445c-ac8d-45d65a70f91a in portfolio cfb2bfe0-ce8d-44ab-8897-21c573c220a8 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' get: summary: Returns details of a specific building for a specified portfolio or fund tags: - Buildings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: e2302549-cd8b-4098-91f5-a70ead86df4d" required: true schema: type: string - name: building_id in: path description: "UUID of the building
\n Example: c3c076ae-8360-4d85-876a-ba85fd6a4bab" required: true schema: type: string responses: '200': description: Returns Portfolio or Fund specific building content: application/vnd.api+json: example: data: id: 97b68ae1-ebf2-473f-915a-46767d22dbd7 type: buildings attributes: estarId: null name: Test Building addressLine1: 900 Spear Avenue addressLine2: Suite 100 addressCity: San Francisco addressState: CA addressProvince: null addressZip: '94106' addressCountry: United States yearBuilt: null buildingClass: C primaryPropertyType: Data Center floorAreaSqFt: 20000 customId: null boughtDate: '2026-04-27' soldDate: null isSingleTenant: true percentOwned: 100.0 isActive: false updatedAt: '2026-05-24 00:00:00' links: self: /portfolios/11da1a92-6794-4258-85ec-4db64a192151/buildings/97b68ae1-ebf2-473f-915a-46767d22dbd7 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building cedac608-4426-4b84-ad7f-198b9dc0ad61 in portfolio b9efda9d-96a9-4695-8682-dcb63505173e 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' patch: summary: Updates a building's attributes in a specified portfolio tags: - Buildings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: 7a1eec7b-1372-40ac-92eb-aeacd4687260' required: true schema: type: string - name: building_id in: path description: 'Example: eaf5b11d-5b5c-41c9-a0d8-ad5eb69f1e31' required: true schema: type: string responses: '200': description: Updated specific building content: application/vnd.api+json: example: data: id: 12b71fb7-cd54-467f-9e5f-844067c2214a type: buildings attributes: estarId: null name: Test Building - Updated addressLine1: 900 Spear Avenue addressLine2: Suite 100 addressCity: San Francisco addressState: CA addressProvince: null addressZip: '94106' addressCountry: United States yearBuilt: null buildingClass: C primaryPropertyType: Data Center floorAreaSqFt: null customId: null boughtDate: '2025-12-08' soldDate: null isSingleTenant: false percentOwned: 25.5 isActive: false updatedAt: '2026-04-05 00:00:00' links: self: /portfolios/8aa7765d-fa4a-44a3-bb87-c3d7dc82e874/buildings/12b71fb7-cd54-467f-9e5f-844067c2214a schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 57b6e33b-800c-4d52-9865-5b5d18467e20 in portfolio 14e67f51-1d56-4b60-9bce-e95361a7bde6 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: name: type: string addressLine1: type: string addressLine2: type: string addressCity: type: string addressState: type: string addressProvince: type: string addressZip: type: string addressCountry: type: string yearBuilt: type: integer buildingClass: type: string customId: type: string boughtDate: type: string soldDate: type: string isSingleTenant: type: boolean percentOwned: type: float isActive: type: boolean required: - id - type example: data: id: 2f0aed9f-0bb1-45b8-88fe-eba74dd87dee type: buildings attributes: name: Test Building - Updated addressLine1: 900 Spear Avenue addressLine2: '' addressCity: San Francisco addressState: CA addressProvince: null addressZip: '94105' addressCountry: United States yearBuilt: 1980 buildingClass: C customId: null boughtDate: '2026-03-11' soldDate: null isSingleTenant: false percentOwned: 25.5 isActive: false required: true description: Request body used to update a specific building /core/v0/portfolios/{portfolio_id}/certification_types: get: summary: Returns a list of all relevant certifications for a specified portfolio tags: - Certification Types security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 3cc2664f-1d91-4114-abb1-16e2b27258eb" required: true schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio's list of relevant certifications content: application/vnd.api+json: example: data: - id: 44aac460-fdae-49e6-aea6-429eccb9df06 type: certificationTypes attributes: name: BEAM Plus - New Buildings custom: true links: self: /portfolios/531e68f4-b2cb-4c24-a3b9-65eed0fe2259/certification-types/44aac460-fdae-49e6-aea6-429eccb9df06 - id: 58230c8d-97ca-463f-9853-f07fb8f229b2 type: certificationTypes attributes: name: BEAM Plus - Interior custom: true links: self: /portfolios/531e68f4-b2cb-4c24-a3b9-65eed0fe2259/certification-types/58230c8d-97ca-463f-9853-f07fb8f229b2 - id: c81c7152-a03a-48be-96f5-a8069135e600 type: certificationTypes attributes: name: Energy Star Custom custom: false links: self: /portfolios/531e68f4-b2cb-4c24-a3b9-65eed0fe2259/certification-types/c81c7152-a03a-48be-96f5-a8069135e600 links: self: /portfolios/531e68f4-b2cb-4c24-a3b9-65eed0fe2259/certification-types/?size=2&page=1 first: /portfolios/531e68f4-b2cb-4c24-a3b9-65eed0fe2259/certification-types/?size=2&page=1 last: /portfolios/531e68f4-b2cb-4c24-a3b9-65eed0fe2259/certification-types/?size=2&page=2 next: /portfolios/531e68f4-b2cb-4c24-a3b9-65eed0fe2259/certification-types/?size=2&page=2 meta: page: number: 1 size: 2 totalPages: 2 totalElements: 3 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find portfolio 52c04b5b-3f04-489e-b836-11beb68fd4e2 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/certifications: post: summary: Creates a certification for a specified building tags: - Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: d20abdff-fa4c-46ff-8f01-c1abc65876e4' required: true schema: type: string - name: building_id in: path description: 'Example: d55f00d7-a869-4746-bba5-8a6d0b69bfc7' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific certification content: application/vnd.api+json: example: data: id: aaa65918-9d51-48df-8938-c5b5a0a4f0e5 type: certifications attributes: isCustomType: false certificationType: AirRated AirScore certificationDate: '2026-03-11' expirationDate: '2026-04-11' importedAt: '2023-02-11 11:33:45' importState: CONFIRMED isWholeBuilding: false notes: some notes dataSource: MANUAL accoladeLevel: null updatedAt: '2025-08-24 23:05:44' relationships: building: data: id: 563767b4-b30a-41ee-8695-0c8f0a5d9eae type: buildings links: self: /portfolios/302d8703-a3e1-4c7f-807f-3a3e2cfa0a72/buildings/563767b4-b30a-41ee-8695-0c8f0a5d9eae links: self: /portfolios/302d8703-a3e1-4c7f-807f-3a3e2cfa0a72/buildings/563767b4-b30a-41ee-8695-0c8f0a5d9eae/certifications/aaa65918-9d51-48df-8938-c5b5a0a4f0e5 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building ffb87450-2001-4453-9b38-2370746f1cf8 in portfolio db9f7ef3-3503-4851-8bd9-73c42bf45744 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: type: object properties: isCustomType: type: boolean certificationType: type: string certificationDate: type: string expirationDate: type: string isWholeBuilding: type: boolean notes: type: string accoladeLevel: type: string required: - isCustomType - certificationType - certificationDate - isWholeBuilding - dataSource example: data: type: certifications attributes: isCustomType: true certificationType: AirRated AirScore certificationDate: '2023-03-08' expirationDate: '2023-04-08' isWholeBuilding: true notes: Some notes accoladeLevel: null required: true description: Request body used to create a certification associated with a building get: summary: Returns a specified buildings list of certifications tags: - Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'UUID of either the parent portfolio or fund
Example: d778dc3f-480e-4e68-b16a-3ddd5964dd58' required: true schema: type: string - name: building_id in: path description: 'Example: cc334c38-e033-4ee1-a4be-d29d399fc121' required: true schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building list of certifications content: application/vnd.api+json: example: data: - id: b939f005-9db2-4bef-a5fb-b03bfcd260c9 type: certifications attributes: isCustomType: false certificationType: AirRated AirScore certificationDate: '2026-05-11' expirationDate: '2026-08-28' importedAt: '2025-08-31 10:58:20' importState: CONFIRMED isWholeBuilding: true notes: some notes dataSource: MANUAL accoladeLevel: null updatedAt: '2026-06-15 20:41:52' relationships: building: data: id: be33ecd5-b7a9-435b-b527-af2dbab6ab1b type: buildings links: self: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b links: self: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b/certifications/b939f005-9db2-4bef-a5fb-b03bfcd260c9 - id: 5d7cd904-bf88-4f20-8120-eca5dcde87cb type: certifications attributes: isCustomType: false certificationType: CALGreen certificationDate: '2026-01-22' expirationDate: '2026-11-22' importedAt: '2026-02-16 14:18:44' importState: CONFIRMED isWholeBuilding: false notes: some notes dataSource: MANUAL accoladeLevel: null updatedAt: '2025-10-05 16:27:28' relationships: building: data: id: be33ecd5-b7a9-435b-b527-af2dbab6ab1b type: buildings links: self: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b links: self: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b/certifications/5d7cd904-bf88-4f20-8120-eca5dcde87cb links: self: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b/certifications/?size=2&page=1 first: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b/certifications/?size=2&page=1 last: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b/certifications/?size=2&page=2 next: /portfolios/62e6603a-ecb4-4603-98af-9331712d67db/buildings/be33ecd5-b7a9-435b-b527-af2dbab6ab1b/certifications/?size=2&page=2 meta: page: number: 1 size: 2 totalPages: 2 totalElements: 3 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 1bbecc9c-36f2-469e-8ec0-c4617e998e27 in portfolio 00206cfd-8e3e-4da4-8704-7c2ffb87b33a 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/certifications/{certification_id}: delete: summary: Deletes a specific certification for a specified building tags: - Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'UUID for the parent portfolio
Example: 9adf9e65-906f-421c-a31a-752f6d581ef5' required: true schema: type: string - name: building_id in: path description: 'Example: dc1b99db-835f-4f19-a24c-76af69ddaba8' required: true schema: type: string - name: certification_id in: path description: 'Example: 886c166e-dee3-4336-96ac-0c709ac8bb97' required: true schema: type: string responses: '204': description: Certification Deleted Successfully content: application/vnd.api+json: example: '' '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' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find certification e8532e47-4566-4ce1-a3db-64e1777cbbdb in building 72daa0ad-31ba-4a63-928c-e6376fdcb541 in portfolio 07fafb58-bc23-4bba-a632-bbc063b378a5 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' '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' get: summary: Returns a specific certification for a specific building tags: - Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'UUID of either the parent portfolio or fund
Example: 21897b9b-251f-4714-9a36-75e2850c2541' required: true schema: type: string - name: building_id in: path description: 'Example: 4aa69684-4dd5-4508-8863-2ee64c332d35' required: true schema: type: string - name: certification_id in: path description: 'Example: 84424a54-cba2-4a79-b933-5a622be1e02d' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific certification content: application/vnd.api+json: example: data: id: 8f352409-3363-4588-acd7-dd630be13a53 type: certifications attributes: isCustomType: true certificationType: AirRated AirScore certificationDate: '2026-02-19' expirationDate: '2026-03-19' importedAt: '2022-09-06 11:32:27' importState: CONFIRMED isWholeBuilding: true notes: some notes dataSource: MANUAL accoladeLevel: null updatedAt: '2026-02-26 23:42:16' relationships: building: data: id: 28996107-e091-4104-9d69-8b2d822a0eee type: buildings links: self: /portfolios/b2ab271d-d4bd-4e44-9e97-96acadd91650/buildings/28996107-e091-4104-9d69-8b2d822a0eee links: self: /portfolios/b2ab271d-d4bd-4e44-9e97-96acadd91650/buildings/28996107-e091-4104-9d69-8b2d822a0eee/certifications/8f352409-3363-4588-acd7-dd630be13a53 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find certification f4c8b15a-1d17-4e4d-a621-ac07349d2711 in building 8c8d1f77-94a0-48a4-9a1b-cb119569ef3c in portfolio d29b173b-1831-4122-bea6-a17fa61bcbcd 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' patch: summary: Updates a specific certification for a specified building tags: - Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'UUID for the parent portfolio
Example: c8c8cde1-5f75-47f1-9612-a22954b9707e' required: true schema: type: string - name: building_id in: path description: 'Example: 773c9980-d70f-45ca-b25c-f5200c99cc41' required: true schema: type: string - name: certification_id in: path description: 'Example: 61bdee9d-e27f-48cc-abb6-4d053bf31a50' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building Specific Certification Updated content: application/vnd.api+json: example: data: id: 570c293d-4598-4a70-8ca1-cf18b6a21b16 type: certifications attributes: isCustomType: false certificationType: AirRated AirScore certificationDate: '2025-11-17' expirationDate: '2025-12-17' importedAt: '2023-04-19 13:44:03' importState: null isWholeBuilding: false notes: some notes dataSource: MANUAL accoladeLevel: null updatedAt: '2026-06-17 23:25:51' relationships: building: data: id: 70da3099-210a-46d2-b670-4a7975923b5d type: buildings links: self: /portfolios/93d9dfe4-7f13-4e6e-b83b-10c4647f7ed7/buildings/70da3099-210a-46d2-b670-4a7975923b5d links: self: /portfolios/93d9dfe4-7f13-4e6e-b83b-10c4647f7ed7/buildings/70da3099-210a-46d2-b670-4a7975923b5d/certifications/570c293d-4598-4a70-8ca1-cf18b6a21b16 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find certification eebee92f-bdb2-408f-876f-afb44d9b1648 for building 69b99cee-93a2-4b82-a5c5-abfef9863be0 in portfolio d105b088-9397-4dcb-bb36-867d315af75f 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: certificationDate: type: string expirationDate: type: string importState: type: string isWholeBuilding: type: boolean notes: type: string accoladeLevel: type: string required: - id - type example: data: id: 07dcbd6f-d6f0-4a35-abfd-654792c42a9a type: certifications attributes: certificationDate: '2023-04-19' expirationDate: '2024-04-18' importState: null isWholeBuilding: true notes: Updated notes accoladeLevel: null updatedAt: '2025-11-07 01:27:00' required: true description: Request body used to update a specific certification /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/certifications/{certification_id}/relationships: patch: summary: Assigns a specific certification to a specified space or list of spaces tags: - Space Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'UUID for the parent portfolio
Example: ea278d77-7232-464c-989e-ca5f3ab40b4d' required: true schema: type: string - name: building_id in: path description: 'Example: 84f34431-69df-4686-8695-ceab0841d0dd' required: true schema: type: string - name: certification_id in: path description: 'Example: 0a8ea329-70a6-4e5d-9c88-9584b5da221f' required: true schema: type: string responses: '204': description: Certification Assigned Successfully to the Specified Space content: application/vnd.api+json: example: '' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find certification da6f0bb1-f55c-4ace-827f-dd8f543ea873 for building dbc59f7f-acb4-41b9-b59e-d3baaf166104 in portfolio cef194d6-33e0-4b69-81df-72517a92c053 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: type: type: string id: type: string required: - id - type example: data: - type: spaces id: 0869c43c-9199-4e0f-a3bd-7a243454654e required: true description: Request body used to assign an existing certification to a specified space or list of spaces /core/v0/portfolios/{portfolio_id}/funds/{fund_id}/relationships: patch: summary: Assigns existing buildings to a specific fund in a specified portfolio tags: - Funds Buildings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'UUID for the parent portfolio
Example: 61b03d30-3ad8-4ddc-8fbc-b25b7d5b49d0' required: true schema: type: string - name: fund_id in: path description: 'Example: 8da040e6-5a10-4110-ba1a-af12b6eec513' required: true schema: type: string responses: '204': description: Building(s) Assigned Successfully to the Specified Fund content: application/vnd.api+json: example: '' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find fund b7392138-49cd-4a20-9571-bd15a8581318 in portfolio 72fa5225-592e-4792-a937-10fb44695246 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: type: type: string id: type: string required: - id - type example: data: - type: buildings id: b7509982-54cf-4b3e-84fd-da94ddc7e676 required: true description: Request body used to assign existing buildings to a specific fund /core/v0/portfolios/{portfolio_id}/funds: post: summary: Creates a new fund for a specified portfolio tags: - Funds security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: c56289c7-a0a9-4c30-9ca6-92246fba35c6' required: true schema: type: string responses: '200': description: Fund created content: application/vnd.api+json: example: data: id: 9e6f159b-68ab-4c92-a132-b788d9aed66c type: funds attributes: name: New Fund Name createdAt: '2026-07-16T13:21:22Z' updatedAt: '2026-07-16T13:21:22Z' 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' '500': description: An internal error has occurred 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' '401': description: Unauthorized Request content: application/vnd.api+json: example: errors: - status: '401' title: Unauthorized detail: Unauthorized AppType or Product required for this request 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' '502': description: Bad Gateway 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' '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' '404': description: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Account not found detail: The specified account does not exist 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' requestBody: content: application/json: schema: type: object properties: data: type: object properties: type: type: string attributes: type: object properties: name: type: string required: - name example: data: type: funds attributes: name: New Fund Name required: true description: Request body used to create a fund for a specified portfolio get: summary: Returns a list of all funds for a specified portfolio tags: - Funds security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: a892099b-d3e8-40be-b94e-7cffc2b0bf0c' required: true schema: type: string responses: '200': description: Return a list of all funds for a portfolio content: application/vnd.api+json: example: data: - id: 5e63ab63-dab7-4fe0-af56-88c327f39f01 type: funds attributes: name: Venture Capital & Private Equity createdAt: '2026-07-16T13:21:24Z' updatedAt: '2026-07-16T13:21:24Z' - id: 77583d84-cc62-41ce-a817-75b398b65c63 type: funds attributes: name: Management Consulting createdAt: '2026-07-16T13:21:24Z' updatedAt: '2026-07-16T13:21:24Z' - id: fc8f34b3-ef06-463d-8e97-a8be9964a7e9 type: funds attributes: name: Printing createdAt: '2026-07-16T13:21:24Z' updatedAt: '2026-07-16T13:21:24Z' - id: 99549d1d-59f0-472a-9e6a-68f529bbe57c type: funds attributes: name: Apparel & Fashion createdAt: '2026-07-16T13:21:24Z' updatedAt: '2026-07-16T13:21:24Z' meta: total_count: 4 item_count: 5000 page_count: 1 current_page: 1 prev_page: null next_page: null last_page: 1 from_record: 1 to_record: 4 links: self: /api/v1/core/accounts/2cccce28-516c-4677-a5b1-aabef3de1c7e/portfolios/76f06c43-8675-4c62-b18d-1b57f0eca633/funds prev: null next: null schema: $ref: '#/components/schemas/json_api' '400': description: Bad Request content: application/vnd.api+json: example: errors: - status: '400' title: Internal Server Error detail: Bad Request schema: $ref: '#/components/schemas/json_api' '500': description: An internal error has occurred 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' '401': description: Unauthorized Request content: application/vnd.api+json: example: errors: - status: '401' title: Unauthorized detail: Unauthorized AppType or Product required for this request 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' '502': description: Bad Gateway 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' '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' '404': description: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Account not found detail: The specified account does not exist 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' /core/v0/portfolios/{portfolio_id}/funds/{fund_id}: delete: summary: Deletes a specific fund in a specified portfolio tags: - Funds security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: 47fb960c-9087-433f-9720-08af1e9991a1' required: true schema: type: string - name: fund_id in: path description: 'Example: d2daf7f6-936f-4900-9dac-dbeba3e065f4' required: true schema: type: string responses: '204': description: Deletes a specific fund for a portfolio content: application/vnd.api+json: example: '' '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' '500': description: An internal error has occurred 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' '401': description: Unauthorized Request content: application/vnd.api+json: example: errors: - status: '401' title: Unauthorized detail: Unauthorized AppType or Product required for this request 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' '502': description: Bad Gateway 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' '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' '404': description: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Account not found detail: The specified account does not exist 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' get: summary: Returns details of a specific fund in a specified portfolio tags: - Funds security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: 8852637c-4cc2-4e00-ad68-040cd35cc9a9' required: true schema: type: string - name: fund_id in: path description: 'Example: 184b780b-65d8-458a-84f1-eac6808c6e58' required: true schema: type: string responses: '200': description: Returns a specific fund for a portfolio content: application/vnd.api+json: example: data: id: d52b600c-5a3d-4c31-9f1a-03b913e6fcc3 type: funds attributes: name: Business Supplies and Equipment createdAt: '2026-07-16T13:21:25Z' updatedAt: '2026-07-16T13:21:25Z' 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' '500': description: An internal error has occurred 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' '401': description: Unauthorized Request content: application/vnd.api+json: example: errors: - status: '401' title: Unauthorized detail: Unauthorized AppType or Product required for this request 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' '502': description: Bad Gateway 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' '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' '404': description: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Account not found detail: The specified account does not exist 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters: post: summary: Creates an energy or water meter for a specified building tags: - Energy and Water Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: f0c9271f-ca15-48b2-b489-3bbef3905da6' required: true schema: type: string - name: building_id in: path description: 'Example: 52839c1a-5b3c-49f5-93b7-768d06e7b371' required: true schema: type: string responses: '200': description: Portfolio/Building specific meter content: application/vnd.api+json: example: data: id: 787c6b27-e893-44e1-a6dd-799a908bdd1a type: meters attributes: estarMeterId: null meterType: Electric units: kWh (thousand Watt-hours) name: New Meter mode: TENANT_PAID_BY_TENANT servesExteriorAreas: false renewableOffsite: false trackingInstrument: Non-grid-connected low-carbon heat, steam, or cooling generation owned by company activationDate: '2025-10-25' deactivationDate: '2026-10-25' autoActivationDate: false currency: USD intermittent: false updatedAt: '2025-08-11 00:00:00' relationships: building: data: id: c8d5fd75-e760-4802-bf56-4ff861b2b954 type: buildings links: self: /portfolios/7db8efe8-dd9a-474c-8687-cc187b81fdf3/buildings/c8d5fd75-e760-4802-bf56-4ff861b2b954 links: self: /portfolios/7db8efe8-dd9a-474c-8687-cc187b81fdf3/buildings/c8d5fd75-e760-4802-bf56-4ff861b2b954/meters/7f9af74c-17a5-4949-8ec8-ef9beffc06ea schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 304130c0-06a7-47fb-8238-11f1403e73a6 in portfolio 2c15cd85-c6da-4c3f-be79-421346b4df13 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: type: object properties: meterType: type: string units: type: string name: type: string mode: type: string servesExteriorAreas: type: boolean renewableOffsite: type: boolean trackingInstrument: type: string activationDate: type: string deactivationDate: type: string autoActivationDate: type: boolean currency: type: string intermittent: type: boolean required: - meterType - units - name - mode - renewableOffsite - currency example: data: type: meters attributes: meterType: Electric units: kWh (thousand Watt-hours) name: New Meter mode: TENANT_PAID_BY_TENANT servesExteriorAreas: true renewableOffsite: true trackingInstrument: Non-grid-connected low-carbon heat, steam, or cooling generation owned by company activationDate: '2022-01-01' deactivationDate: null autoActivationDate: true currency: USD intermittent: false required: true description: Request body used to create a meter associated with a building get: summary: Returns a list of meters (energy or water) for a specified building tags: - Energy and Water Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 03165e30-0e76-42d5-b47e-a302b488dbdf" required: true schema: type: string - name: building_id in: path description: 'Example: 22a90c0c-df32-4591-9d35-0b50bf45a481' required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building specific meter content: application/vnd.api+json: example: data: - id: f2bccde2-3363-447f-a74d-3101220fabc9 type: meters attributes: estarMeterId: 93760805 meterType: Electric units: kBtu (thousand Btu) name: Electric Grid Meter2 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: true trackingInstrument: null activationDate: '2024-09-29' deactivationDate: null autoActivationDate: false currency: USD intermittent: false updatedAt: '2026-06-11 00:00:00' relationships: building: data: id: a29db54c-1253-4f92-be82-cabb6e42bf0b type: buildings links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters/f2bccde2-3363-447f-a74d-3101220fabc9 - id: e684f24b-6485-4114-8aa4-649667ab0001 type: meters attributes: estarMeterId: 17576231 meterType: Electric on Site Wind units: kWh (thousand Watt-hours) name: wind1 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: true renewableOffsite: false trackingInstrument: Grid-connected low-carbon electricity generation owned by company; no instruments created activationDate: '2025-04-28' deactivationDate: null autoActivationDate: true currency: USD intermittent: true updatedAt: '2026-03-17 00:00:00' relationships: building: data: id: a29db54c-1253-4f92-be82-cabb6e42bf0b type: buildings links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters/e684f24b-6485-4114-8aa4-649667ab0001 - id: cc0ffdc1-5653-43d0-8773-ab56e5419f31 type: meters attributes: estarMeterId: 72112820 meterType: District Chilled Water - Absorption Chiller using Natural Gas units: GJ name: valid3 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: false trackingInstrument: null activationDate: '2023-12-13' deactivationDate: null autoActivationDate: true currency: USD intermittent: false updatedAt: '2026-07-10 00:00:00' relationships: building: data: id: a29db54c-1253-4f92-be82-cabb6e42bf0b type: buildings links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters/cc0ffdc1-5653-43d0-8773-ab56e5419f31 - id: b32b22bf-9a6e-421b-97e0-eb2221f67904 type: meters attributes: estarMeterId: 87581006 meterType: Wood units: GJ name: Wood mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: true renewableOffsite: true trackingInstrument: null activationDate: '2023-12-11' deactivationDate: null autoActivationDate: true currency: USD intermittent: true updatedAt: '2026-06-20 00:00:00' relationships: building: data: id: a29db54c-1253-4f92-be82-cabb6e42bf0b type: buildings links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters/b32b22bf-9a6e-421b-97e0-eb2221f67904 - id: de71b945-0772-4b89-94e7-a62d85e103cc type: meters attributes: estarMeterId: 82873615 meterType: Wood units: GJ name: Wood2 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: true renewableOffsite: false trackingInstrument: null activationDate: '2024-11-26' deactivationDate: null autoActivationDate: true currency: USD intermittent: true updatedAt: '2026-06-19 00:00:00' relationships: building: data: id: a29db54c-1253-4f92-be82-cabb6e42bf0b type: buildings links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b links: self: /portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters/de71b945-0772-4b89-94e7-a62d85e103cc links: self: /core/v0/portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters?size=5&page=3 first: /core/v0/portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters?size=5&page=1 last: /core/v0/portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters?size=5&page=8 next: /core/v0/portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters?size=5&page=4 prev: /core/v0/portfolios/c8d5f56e-8ca9-4346-bc9c-8c36c2bcbbd7/buildings/a29db54c-1253-4f92-be82-cabb6e42bf0b/meters?size=5&page=2 meta: page: number: 3 size: 100 totalPages: 8 totalElements: 730 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building d7b2f3e6-8a4e-418f-bec5-e0359e57c886 in portfolio bc3a3951-4c18-4102-aadb-8db890e10461 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters/{meter_id}: delete: summary: Deletes a specific meter for a specified building tags: - Energy and Water Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: 30d9d10b-0641-49e6-a32a-6a9b015a5439' required: true schema: type: string - name: building_id in: path description: 'Example: c0ceaaed-e398-467a-824f-0d495711f823' required: true schema: type: string - name: meter_id in: path description: 'Example: 60f03d17-f43e-4ca0-9637-c1edd074fd30' required: true schema: type: string responses: '204': description: Meter Deleted Successfully content: application/vnd.api+json: example: '' '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' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find meter 970b0094-3041-49b7-9cde-deeb95c4ee2e in building 9247a193-def1-4c7c-8ebc-328764d40bc7 in portfolio 88820fb6-74a9-48bf-9de7-a35c8cf5785e 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' '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' get: summary: Returns details of a specific meter (energy or water) for a specified building tags: - Energy and Water Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 5df7c5b7-18d2-425c-ad66-6542d59654a6" required: true schema: type: string - name: building_id in: path description: 'Example: 2db61e3e-8061-469e-a4b2-4ca15caa392f' required: true schema: type: string - name: meter_id in: path description: 'Example: 545a9dcb-acf7-4c99-b7d2-4245c995cccf' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific meter content: application/vnd.api+json: example: data: id: c2d7ff32-c515-4cc9-b896-9509af49ed79 type: meters attributes: estarMeterId: 16369838 meterType: Electric units: kBtu (thousand Btu) name: Electric Grid Meter2 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: false trackingInstrument: null activationDate: '2024-11-20' deactivationDate: null autoActivationDate: false currency: USD intermittent: true updatedAt: '2026-05-11 00:00:00' relationships: building: data: id: f80b87d5-88f6-4145-98f6-67c0671cfed8 type: buildings links: self: /portfolios/165c45f7-b9fb-401e-b922-77d43767086c/buildings/f80b87d5-88f6-4145-98f6-67c0671cfed8 links: self: /portfolios/165c45f7-b9fb-401e-b922-77d43767086c/buildings/f80b87d5-88f6-4145-98f6-67c0671cfed8/meters/c2d7ff32-c515-4cc9-b896-9509af49ed79 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find meter fda52464-75b7-473d-9f87-c6b00e1ec8a2 in building 15e6430b-21e3-483b-aada-a705ef47003b in portfolio 6ce65e81-3105-41cf-8c82-2ba5de8960b2 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' patch: summary: Updates a specific meter for a specified building tags: - Energy and Water Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 7f3dea66-3051-41f5-91d0-b88e44d2cb3a" required: true schema: type: string - name: building_id in: path description: 'Example: 7467f8e5-155c-4fbf-95ab-b79e06d6ece5' required: true schema: type: string - name: meter_id in: path description: 'Example: e095d364-96c0-4521-8086-a48db78d1f8e' required: true schema: type: string responses: '200': description: Portfolio / Building Specific Meter Updated content: application/vnd.api+json: example: data: id: 570a687f-0199-4846-acbb-76b85d968169 type: meters attributes: estarMeterId: null meterType: Electric units: kBtu (thousand Btu) name: Electric Grid Meter mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: true renewableOffsite: false trackingInstrument: null activationDate: '2025-04-14' deactivationDate: null autoActivationDate: false currency: USD intermittent: false updatedAt: '2025-09-18 00:00:00' relationships: building: data: id: 65f1ea23-cc33-4234-bc60-66747997349e type: buildings links: self: /portfolios/3dc5fb4f-5c3a-4e72-9280-34c0ce055bc6/buildings/65f1ea23-cc33-4234-bc60-66747997349e links: self: portfolios/3dc5fb4f-5c3a-4e72-9280-34c0ce055bc6/buildings/65f1ea23-cc33-4234-bc60-66747997349e/meters/570a687f-0199-4846-acbb-76b85d968169 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find meter 16cd41c1-b7c1-4790-a7e0-17555df674c7 for building 189d906e-ad65-4dd6-9479-a866ed177506 in portfolio 5c16648b-3d51-4307-9871-ef8f2edb51d6 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: units: type: string name: type: string mode: type: string servesExteriorAreas: type: boolean renewableOffsite: type: boolean trackingInstrument: type: string activationDate: type: string deactivationDate: type: string autoActivationDate: type: boolean intermittent: type: boolean required: - id - type example: data: id: 37a1139b-c907-4e31-b280-786e5fcf062d type: meters attributes: units: kWh (thousand Watt-hours) name: Updated Meter mode: TENANT_PAID_BY_TENANT servesExteriorAreas: true renewableOffsite: true trackingInstrument: Non-grid-connected low-carbon heat, steam, or cooling generation owned by company activationDate: '2025-05-11' deactivationDate: '2025-12-25' autoActivationDate: false intermittent: true required: true description: Request body used to update a specific meter /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
\n Example: f9f3fc20-37f4-4fbc-9388-ed3f18fd10d5" 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters/{meter_id}/readings: post: summary: Creates an energy or water meter reading for a specified building tags: - Energy and Water Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: f314a538-5e32-49d5-9d7b-dbd6ece4159d" required: true schema: type: string - name: building_id in: path description: 'Example: 224f747d-712c-4d27-b55d-05ecad7fd14c' required: true schema: type: string - name: meter_id in: path description: 'Example: 3828dcef-0784-41cb-baf3-b5e6bd676e01' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific meter readings list content: application/vnd.api+json: example: data: id: 4cf325db-5f9e-4686-b45a-24674f410778 type: meterReadings attributes: estarMeterReadingId: null fromDate: '2027-02-17' toDate: '2027-03-17' cost: 1656 usage: 692 exported: 0 demand: null demandCharge: null estimate: false updatedAt: '2026-05-25 14:14:55' relationships: meter: data: id: 7ec4f244-bcac-42e8-b867-a73fcf7a44ea type: meters links: self: /portfolios/b5d2beb6-c011-4f0b-8a46-e13ec484d8ea/buildings/9b68d162-b605-4327-a3df-d3ecc89513e1/meters/7ec4f244-bcac-42e8-b867-a73fcf7a44ea links: self: /portfolios/b5d2beb6-c011-4f0b-8a46-e13ec484d8ea/buildings/9b68d162-b605-4327-a3df-d3ecc89513e1/meters/7ec4f244-bcac-42e8-b867-a73fcf7a44ea/readings/4cf325db-5f9e-4686-b45a-24674f410778 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find meter 15d3f8b7-56cb-4f18-ad46-26bc8aa8e2a1 in building 77220924-2de9-4193-84a8-542ca3e6f414 in portfolio 33c85134-16a2-4e79-94de-0ea400bbea44 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: type: object properties: fromDate: type: string toDate: type: string cost: type: decimal usage: type: decimal exported: type: decimal demand: type: boolean demandCharge: type: string required: - fromDate - toDate - cost - usage example: data: type: meterReadings attributes: fromDate: '2022-01-01' toDate: '2022-02-01' cost: 1200.0 usage: 1234.0 exported: 0.0 demand: null demandCharge: null required: true description: Request body used to create a meter reading associated with a meter get: summary: Returns a list of meter readings for a specified meter and building tags: - Energy and Water Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 0343323b-6de0-4cab-a39b-65fd7c614835" required: true schema: type: string - name: building_id in: path description: 'Example: 3d51e4b6-8888-4bc9-9ac6-5ce414dd7ddf' required: true schema: type: string - name: meter_id in: path description: 'Example: 73c8d8d0-7710-4b79-bbd6-fad42a4f015e' required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building specific meter readings list content: application/vnd.api+json: example: data: - id: c85e1829-f655-46d6-a3fd-4b97cbf39fd3 type: meterReadings attributes: estarMeterReadingId: null fromDate: '2018-01-01' toDate: '2018-02-01' cost: 90 usage: 412 exported: 0 demand: 6 demandCharge: 9 estimate: true updatedAt: '2025-10-13 04:27:52' relationships: meter: data: id: 6c1fd9ee-3ff6-4940-9f01-c8f816847579 type: meters links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579 links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings/c85e1829-f655-46d6-a3fd-4b97cbf39fd3 - id: 14645db3-6f10-4cea-905e-63fe1f0f985c type: meterReadings attributes: estarMeterReadingId: null fromDate: '2018-02-01' toDate: '2018-03-01' cost: 39 usage: 843 exported: 0 demand: 37 demandCharge: 15 estimate: false updatedAt: '2026-06-22 07:11:01' relationships: meter: data: id: 6c1fd9ee-3ff6-4940-9f01-c8f816847579 type: meters links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579 links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings/14645db3-6f10-4cea-905e-63fe1f0f985c - id: 704acb14-11fb-4b86-9276-93746b63cd18 type: meterReadings attributes: estarMeterReadingId: null fromDate: '2018-04-01' toDate: '2018-05-01' cost: 61 usage: 405 exported: 0 demand: 182 demandCharge: 10 estimate: true updatedAt: '2026-03-27 18:39:05' relationships: meter: data: id: 6c1fd9ee-3ff6-4940-9f01-c8f816847579 type: meters links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579 links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings/704acb14-11fb-4b86-9276-93746b63cd18 - id: 3bab3387-76f1-4eef-add0-abab5458ba09 type: meterReadings attributes: estarMeterReadingId: null fromDate: '2018-01-01' toDate: '2018-02-01' cost: 76 usage: 715 exported: 0 demand: 44 demandCharge: 11 estimate: false updatedAt: '2026-03-23 00:57:22' relationships: meter: data: id: 6c1fd9ee-3ff6-4940-9f01-c8f816847579 type: meters links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579 links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings/3bab3387-76f1-4eef-add0-abab5458ba09 - id: 0dade6f7-ec58-4bf6-8142-99ed581f1fee type: meterReadings attributes: estarMeterReadingId: null fromDate: '2018-02-01' toDate: '2018-03-01' cost: 38 usage: 168 exported: 0 demand: 56 demandCharge: 10 estimate: false updatedAt: '2025-10-22 21:44:00' relationships: meter: data: id: 6c1fd9ee-3ff6-4940-9f01-c8f816847579 type: meters links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579 links: self: /portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings/0dade6f7-ec58-4bf6-8142-99ed581f1fee links: self: /core/v0/portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings?size=5&page=3 first: /core/v0/portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings?size=5&page=1 last: /core/v0/portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings?size=5&page=5 next: /core/v0/portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings?size=5&page=4 prev: /core/v0/portfolios/2125c6a3-cda6-41ce-ad7f-2830ff185efb/buildings/5cc9a85b-87a5-487e-99cf-29261e317966/meters/6c1fd9ee-3ff6-4940-9f01-c8f816847579/readings?size=5&page=2 meta: page: number: 3 size: 100 totalPages: 5 totalElements: 420 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find meter e5cb16bc-ac90-4412-a15b-befdb51f61e4 in building db9f53c0-6e04-4c98-890e-436963b20c7d in portfolio 87771a54-a873-480d-97d8-e34efa63575f 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters/{meter_id}/readings/{meter_reading_id}: delete: summary: Deletes a specific meter reading for a specified meter and building tags: - Energy and Water Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: 89450297-c8e1-41e3-ba0e-864f6cdd9511' required: true schema: type: string - name: building_id in: path description: 'Example: ca996f17-6d4f-4bb1-8f6a-39558c38d61e' required: true schema: type: string - name: meter_id in: path description: 'Example: e8beecd1-7199-47ca-9e9c-3fc1ab4f9d4d' required: true schema: type: string - name: meter_reading_id in: path description: 'Example: 213ba4e0-430e-443d-b6de-4780b32c18bc' required: true schema: type: string responses: '204': description: Meter Reading Deleted Successfully content: application/vnd.api+json: example: '' '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' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find reading 5e71ac70-766d-4e61-9ce4-f0a8fdec146c for meter 8bbebf97-ba90-4236-8261-cf56942a2ce3 in building 85f1d2fd-8879-4bde-b526-cfa3c818f6f2 in portfolio 57f05be2-1e46-4616-b09b-e36df963b0b6 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' '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' get: summary: Returns details of a specific meter reading for a specified meter and building tags: - Energy and Water Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 38d9cb1b-dc70-47a1-9ff4-fd12ee79e13e" required: true schema: type: string - name: building_id in: path description: 'Example: 13ee4c8d-855d-4224-b788-2bf75474046c' required: true schema: type: string - name: meter_id in: path description: 'Example: 2d31add7-a309-4f77-9025-b841f24c3c34' required: true schema: type: string - name: meter_reading_id in: path description: 'Example: 17226f7b-007f-4daf-93cb-e58acc5cb201' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific meter readings list content: application/vnd.api+json: example: data: id: c86ce40f-e7ac-4a9d-a66a-573a598f5138 type: meterReadings attributes: estarMeterReadingId: null fromDate: '2027-03-30' toDate: '2027-04-30' cost: 53 usage: 2 exported: 0 demand: 73 demandCharge: 16 estimate: true updatedAt: '2026-03-25 19:11:20' relationships: meter: data: id: ae807cdc-0fc5-4963-9ffa-9845ec335f73 type: meters links: self: /portfolios/bf9fc23e-203d-44ae-b2ed-b0011f048aa0/buildings/068f273b-a567-4c82-8c52-f9b77816b7e7/meters/ae807cdc-0fc5-4963-9ffa-9845ec335f73 links: self: portfolios/bf9fc23e-203d-44ae-b2ed-b0011f048aa0/buildings/068f273b-a567-4c82-8c52-f9b77816b7e7/meters/ae807cdc-0fc5-4963-9ffa-9845ec335f73/readings/c86ce40f-e7ac-4a9d-a66a-573a598f5138 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find reading 21da3346-f685-4b29-8910-e3d8525e8bef for meter b3afd6d9-f686-4e5f-a080-8fe12320868e in building c20f4428-20ff-46af-89c3-0b86749a7755 in portfolio ebeaa220-ca0d-42e1-8c5d-02c50a1790fb 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' patch: summary: Updates a specific meter reading for a specified meter and building tags: - Energy and Water Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 157fcdaf-5323-42b3-a60b-c6fc23715a1e" required: true schema: type: string - name: building_id in: path description: 'Example: 6ae49b75-65e4-4af4-a7e5-3f5c563d804e' required: true schema: type: string - name: meter_id in: path description: 'Example: 33e000c1-ab0d-4bf2-82f6-481fd100b847' required: true schema: type: string - name: meter_reading_id in: path description: 'Example: 50d95667-6647-41c5-90d9-1a131d0deb79' required: true schema: type: string responses: '200': description: Portfolio / Building / Meter Specific Meter Reading Updated content: application/vnd.api+json: example: data: id: 702ed8d1-4d87-49c3-8ffc-be6090865679 type: meterReadings attributes: estarMeterReadingId: null fromDate: '2026-02-24' toDate: '2026-03-24' cost: 86 usage: 872 exported: 0 demand: 74 demandCharge: 17 estimate: false updatedAt: '2026-02-14 09:31:10' relationships: meter: data: id: 38f26459-f8bc-40c6-b8c7-7670014960b2 type: meters links: self: /portfolios/23b56ca5-343e-4547-ae23-3503975df296/buildings/e2411f0c-87fe-4c6c-bcbd-48f6a045b4b5/meters/38f26459-f8bc-40c6-b8c7-7670014960b2 links: self: portfolios/23b56ca5-343e-4547-ae23-3503975df296/buildings/e2411f0c-87fe-4c6c-bcbd-48f6a045b4b5/meters/38f26459-f8bc-40c6-b8c7-7670014960b2/readings/702ed8d1-4d87-49c3-8ffc-be6090865679 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find reading 05e57d97-b1d6-4c7c-bb46-1889ec8f5f3a for meter f3c1bab2-6356-4772-b9c8-b7d5060e5279 in building b7a72255-f794-4d8b-9199-3f6a7c9bc978 in portfolio bc141424-be9b-4dc5-a912-2ecbc9cd9e06 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: fromDate: type: string toDate: type: string cost: type: decimal usage: type: decimal demand: type: boolean demandCharge: type: string exported: type: decimal required: - id - type example: data: id: 4608f77e-4ca6-4d9e-9660-e61302e5c346 type: meterReadings attributes: fromDate: '2022-01-01' toDate: '2022-02-01' cost: 1200.0 usage: 1234.0 exported: 0.0 demand: null demandCharge: null required: true description: Request body used to update a specific meter reading /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters/{meter_id}/spaces: get: summary: Returns a list of spaces a specified energy or water meter serves tags: - Energy and Water Meter Spaces security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: abbc676c-47a1-4790-bf1d-a60a2ccce6c9" required: true schema: type: string - name: building_id in: path description: 'Example: 03972683-b67f-44b3-bb25-edd874e7f3c8' required: true schema: type: string - name: meter_id in: path description: 'Example: 57aa12d4-f834-4808-9eeb-512ba50338e2' required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building list of spaces the specified meter serves content: application/vnd.api+json: example: data: - id: 07911585-8dae-442e-bfc5-5537568bef75 type: spaces attributes: propertyType: Financial Office name: Office B common: true floorAreaSqFt: 9791 allocation: 25 estarSpaceId: 39613944 customized: false relationships: building: data: id: ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 type: buildings links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/spaces/07911585-8dae-442e-bfc5-5537568bef75 - id: f63f2613-1ea0-4778-99dd-4890d0b1d564 type: spaces attributes: propertyType: Office name: Building Use common: false floorAreaSqFt: 7368 allocation: 25 estarSpaceId: 99184337 customized: true relationships: building: data: id: ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 type: buildings links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/spaces/f63f2613-1ea0-4778-99dd-4890d0b1d564 - id: 6c18fcfa-f98e-41aa-8b7c-0816cc3b01a3 type: spaces attributes: propertyType: Financial Office name: Building Use A common: false floorAreaSqFt: 6725 allocation: 19 estarSpaceId: 44581940 customized: false relationships: building: data: id: ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 type: buildings links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/spaces/6c18fcfa-f98e-41aa-8b7c-0816cc3b01a3 - id: 5b4d5755-a88a-425b-a86c-9f644de7d42a type: spaces attributes: propertyType: Financial Office name: Building Use C common: true floorAreaSqFt: 9444 allocation: 6 estarSpaceId: 75962915 customized: true relationships: building: data: id: ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 type: buildings links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/spaces/5b4d5755-a88a-425b-a86c-9f644de7d42a - id: bc857b19-7902-414e-9c9a-9248d89c048e type: spaces attributes: propertyType: Financial Office name: Building Use D common: true floorAreaSqFt: 890 allocation: 14 estarSpaceId: 28715959 customized: false relationships: building: data: id: ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 type: buildings links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1 links: self: /portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/spaces/bc857b19-7902-414e-9c9a-9248d89c048e links: self: /core/v0/portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/meters/e629523f-afb0-4963-a8ba-83da537eb5d1/spaces?size=5&page=3 first: /core/v0/portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/meters/e629523f-afb0-4963-a8ba-83da537eb5d1/spaces?size=5&page=1 last: /core/v0/portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/meters/e629523f-afb0-4963-a8ba-83da537eb5d1/spaces?size=5&page=5 next: /core/v0/portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/meters/e629523f-afb0-4963-a8ba-83da537eb5d1/spaces?size=5&page=4 prev: /core/v0/portfolios/1d5cf283-59b8-4886-bc59-17208f9f44e5/buildings/ff9b7f79-8e05-42f7-b59f-bcbe15bcffd1/meters/e629523f-afb0-4963-a8ba-83da537eb5d1/spaces?size=5&page=2 meta: page: number: 3 size: 100 totalPages: 5 totalElements: 420 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find meter b379fb96-08ad-49c4-9ef2-8c025bf90a11 in building 4ba526ee-45d0-4a29-a5aa-b57049ff7168 in portfolio 611194eb-949c-421a-bb2a-af03d38baa3f 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/meters/{meter_id}/relationships: patch: summary: Assigns an existing energy or water meter to a specified space or list of spaces tags: - Energy and Water Meter Spaces security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 2b3c84b1-30e1-4e2c-bb7a-836b300e84e4" required: true schema: type: string - name: building_id in: path description: 'Example: 039e095e-4475-481e-9cfb-29b82869d8bd' required: true schema: type: string - name: meter_id in: path description: 'Example: 87c8c19d-a6cb-44f5-a1a6-37dd0aaecc64' required: true schema: type: string responses: '204': description: Meter Assigned Successfully to the Specified Space(s) content: application/vnd.api+json: example: '' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find meter 9e6fbbc3-2c48-427e-a4db-2bd583a44599 in building cd4ec81c-2327-45bf-a7c9-5f4b329da1c0 in portfolio 6bf13d77-d40a-4900-b11b-aa9fd7eda5f6 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: type: type: string id: type: string required: - id - type example: data: - type: spaces id: 11ea9df3-374a-4d65-a694-be58d06651f4 required: true description: Request body used to assign an existing meter to a specified space or list of spaces /core/v0/portfolios/{portfolio_id}/certifications: get: summary: Returns a list of certifications for a specified portfolio tags: - Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: adeb76ab-b9f2-4535-bf1f-d2821f74470b" required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund list of certifications content: application/vnd.api+json: example: data: - id: c15ce551-d25c-4e3c-ab64-9361149b1a83 type: certifications attributes: isCustomType: false certificationType: AirRated AirScore certificationDate: '2026-06-09' expirationDate: '2026-09-23' importedAt: '2025-09-02 03:01:39' importState: CONFIRMED isWholeBuilding: false notes: some notes dataSource: MANUAL accoladeLevel: null relationships: building: data: id: d6a103a6-15c6-42a2-96cf-912d6775c3da type: buildings links: self: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/buildings/d6a103a6-15c6-42a2-96cf-912d6775c3da links: self: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/buildings/d6a103a6-15c6-42a2-96cf-912d6775c3da/certifications/c15ce551-d25c-4e3c-ab64-9361149b1a83 - id: 68133b9e-e7ee-4690-a8f7-428f688715a0 type: certifications attributes: isCustomType: false certificationType: CALGreen certificationDate: '2026-03-18' expirationDate: '2027-01-03' importedAt: '2026-01-14 00:37:32' importState: CONFIRMED isWholeBuilding: false notes: some notes dataSource: MANUAL accoladeLevel: null relationships: building: data: id: d6a103a6-15c6-42a2-96cf-912d6775c3da type: buildings links: self: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/buildings/d6a103a6-15c6-42a2-96cf-912d6775c3da links: self: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/buildings/d6a103a6-15c6-42a2-96cf-912d6775c3da/certifications/68133b9e-e7ee-4690-a8f7-428f688715a0 links: self: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/certifications/?size=2&page=1 first: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/certifications/?size=2&page=1 last: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/certifications/?size=2&page=2 next: /portfolios/8b7b30c2-d19d-461b-91d6-179e052d552d/certifications/?size=2&page=2 meta: page: number: 1 size: 2 totalPages: 2 totalElements: 2 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find portfolio 17342071-b1f4-46c9-9c7c-e04194ab8b96 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' /core/v0/portfolios/{portfolio_id}/meters: get: summary: Returns a list of meters (energy or water) for a specified portfolio tags: - Energy and Water Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 8fb14065-cd01-41bb-9e90-0974d2293c60" required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund list of meters content: application/vnd.api+json: example: data: - id: e5a17bd8-e790-48c3-a948-90902c7ca420 type: meters attributes: estarMeterId: 14970793 meterType: Electric units: kBtu (thousand Btu) name: Electric Grid Meter2 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: true trackingInstrument: null activationDate: '2025-02-24' deactivationDate: null autoActivationDate: true currency: USD intermittent: false updatedAt: '2026-02-28 00:00:00' relationships: building: data: id: a001ea49-002f-4dd7-8c96-c836e910a8a5 type: buildings links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5 links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters/e5a17bd8-e790-48c3-a948-90902c7ca420 - id: 712a264c-de26-44cc-a965-a1923f393403 type: meters attributes: estarMeterId: 65023820 meterType: Electric on Site Wind units: kWh (thousand Watt-hours) name: wind1 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: false trackingInstrument: Grid-connected low-carbon electricity generation owned by company; no instruments created activationDate: '2025-02-14' deactivationDate: null autoActivationDate: false currency: USD intermittent: false updatedAt: '2025-10-27 00:00:00' relationships: building: data: id: a001ea49-002f-4dd7-8c96-c836e910a8a5 type: buildings links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5 links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters/712a264c-de26-44cc-a965-a1923f393403 - id: 3fed7ce1-a834-4caa-8ab6-04abfd80429c type: meters attributes: estarMeterId: 33768298 meterType: District Chilled Water - Absorption Chiller using Natural Gas units: GJ name: valid3 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: false trackingInstrument: null activationDate: '2023-11-26' deactivationDate: null autoActivationDate: false currency: USD intermittent: false updatedAt: '2025-11-24 00:00:00' relationships: building: data: id: a001ea49-002f-4dd7-8c96-c836e910a8a5 type: buildings links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5 links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters/3fed7ce1-a834-4caa-8ab6-04abfd80429c - id: 92d2e896-4087-4ea7-ac46-1ed94a9aef8d type: meters attributes: estarMeterId: 19693723 meterType: Wood units: GJ name: Wood mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: false trackingInstrument: null activationDate: '2023-07-29' deactivationDate: null autoActivationDate: true currency: USD intermittent: true updatedAt: '2025-08-24 00:00:00' relationships: building: data: id: a001ea49-002f-4dd7-8c96-c836e910a8a5 type: buildings links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5 links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters/92d2e896-4087-4ea7-ac46-1ed94a9aef8d - id: 24ef8a5a-cd22-42f8-b582-1c4d164392fd type: meters attributes: estarMeterId: 63092522 meterType: Wood units: GJ name: Wood2 mode: TENANT_PAID_BY_LANDLORD servesExteriorAreas: false renewableOffsite: false trackingInstrument: null activationDate: '2025-02-19' deactivationDate: null autoActivationDate: true currency: USD intermittent: true updatedAt: '2025-08-29 00:00:00' relationships: building: data: id: a001ea49-002f-4dd7-8c96-c836e910a8a5 type: buildings links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5 links: self: /portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters/24ef8a5a-cd22-42f8-b582-1c4d164392fd links: self: /core/v0/portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters?size=5&page=3 first: /core/v0/portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters?size=5&page=1 last: /core/v0/portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters?size=5&page=8 next: /core/v0/portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters?size=5&page=4 prev: /core/v0/portfolios/0ff695db-2697-4147-9d42-b96aaccea027/buildings/a001ea49-002f-4dd7-8c96-c836e910a8a5/meters?size=5&page=2 meta: page: number: 3 size: 100 totalPages: 8 totalElements: 730 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find portfolio 228df829-1e01-4c0a-aa0a-a721f1bfdd7c 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' /core/v0/portfolios/{portfolio_id}/ratings: get: summary: Returns a list of all ratings for a specified portfolio tags: - Ratings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: bb5c780e-09ab-42e0-940c-3d9d6188c2b7" required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund list of ratings content: application/vnd.api+json: example: data: - id: b084384f-3b73-40db-937c-ba2cb8faf875 type: ratings attributes: ratingType: BBC Effinergie ratingName: A Rating score: 51 ratingDate: '2026-05-08' expirationDate: '2027-01-06' notes: some notes importedAt: '2026-01-07 02:14:42' importState: CONFIRMED updatedAt: '2025-08-15 13:11:00' isWholeBuilding: true relationships: building: data: id: afab09c6-d4ab-4769-b6f1-9ffa0dd73f93 type: buildings links: self: /portfolios/0ebe9ee9-0638-4691-9403-3f74e9aeb260/buildings/afab09c6-d4ab-4769-b6f1-9ffa0dd73f93 links: self: /portfolios/0ebe9ee9-0638-4691-9403-3f74e9aeb260/buildings/afab09c6-d4ab-4769-b6f1-9ffa0dd73f93/ratings/b084384f-3b73-40db-937c-ba2cb8faf875 - id: 8ce17634-4580-46b6-b24b-0ff4e787ea37 type: ratings attributes: ratingType: OTHER ratingName: null score: 76 ratingDate: '2026-02-14' expirationDate: '2027-01-05' notes: null importedAt: null importState: null updatedAt: '2026-03-19 12:18:41' isWholeBuilding: true relationships: building: data: id: afab09c6-d4ab-4769-b6f1-9ffa0dd73f93 type: buildings links: self: /portfolios/0ebe9ee9-0638-4691-9403-3f74e9aeb260/buildings/afab09c6-d4ab-4769-b6f1-9ffa0dd73f93 links: self: /portfolios/0ebe9ee9-0638-4691-9403-3f74e9aeb260/buildings/afab09c6-d4ab-4769-b6f1-9ffa0dd73f93/ratings/b084384f-3b73-40db-937c-ba2cb8faf875 links: self: /core/v0/portfolios/0ebe9ee9-0638-4691-9403-3f74e9aeb260/buildings/afab09c6-d4ab-4769-b6f1-9ffa0dd73f93/ratings?size=2&page=2 first: /core/v0/portfolios/0ebe9ee9-0638-4691-9403-3f74e9aeb260/buildings/afab09c6-d4ab-4769-b6f1-9ffa0dd73f93/ratings?size=2&page=1 meta: page: number: 1 size: 2 totalPages: 1 totalElements: 2 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 8fb6c331-6d34-4f0c-8c62-c26f0302f35c in portfolio 3911e215-90f6-4146-83cd-532115c9122b 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' /core/v0/portfolios/{portfolio_id}/waste_meters: get: summary: Returns a list of waste meters for a specified portfolio tags: - Waste Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 2abff3f0-f8d9-4fc6-bcfe-d8214d39377f" required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund list of waste meters content: application/vnd.api+json: example: data: - id: efc5a733-114b-447c-9269-4e973b44e22c type: waste_meters attributes: estarMeterId: null meterType: Disposed - Trash units: tons name: Test waste meter 1 containerSize: null activationDate: '2026-04-29' deactivationDate: '2026-09-14' autoActivationDate: true currency: USD intermittent: true hazardous: false updatedAt: '2026-07-05 09:12:05' relationships: building: data: id: 682691d6-cad4-4f3f-8dae-82b9c06d1ba8 type: buildings links: self: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/buildings/682691d6-cad4-4f3f-8dae-82b9c06d1ba8 links: self: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/buildings/682691d6-cad4-4f3f-8dae-82b9c06d1ba8/waste_meters/efc5a733-114b-447c-9269-4e973b44e22c - id: 8be7bec3-a141-432f-8a4b-06dc3f734aff type: waste_meters attributes: estarMeterId: null meterType: Recycled - Glass units: tons name: Test waste meter 2 containerSize: null activationDate: '2026-02-16' deactivationDate: '2026-12-24' autoActivationDate: true currency: USD intermittent: false hazardous: true updatedAt: '2026-06-23 08:48:55' relationships: building: data: id: 682691d6-cad4-4f3f-8dae-82b9c06d1ba8 type: buildings links: self: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/buildings/682691d6-cad4-4f3f-8dae-82b9c06d1ba8 links: self: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/buildings/682691d6-cad4-4f3f-8dae-82b9c06d1ba8/waste_meters/8be7bec3-a141-432f-8a4b-06dc3f734aff links: self: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/waste_meters/?size=2&page=1 first: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/waste_meters/?size=2&page=1 last: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/waste_meters/?size=2&page=2 next: /portfolios/73b01d69-57a5-4bc6-bb72-2aa71cc20842/waste_meters/?size=2&page=2 meta: page: number: 1 size: 2 totalPages: 1 totalElements: 2 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find portfolio b287ca66-b539-4c56-9c0f-f535ed62d12c 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' /core/v0/portfolios: post: summary: Creates a new portfolio for a specified account tags: - Portfolios security: - OAuth2: [] parameters: [] responses: '200': description: Portfolios created content: application/vnd.api+json: example: data: id: 62e6ebc9-ceb4-4ed2-b547-c058add4451c type: portfolios attributes: name: Example Portfolio createdAt: '2026-07-16T13:21:42Z' updatedAt: '2026-07-16T13:21:42Z' schema: $ref: '#/components/schemas/json_api' '400': description: Bad Request content: application/vnd.api+json: example: errors: - status: '400' title: Internal Server Error detail: Bad Request schema: $ref: '#/components/schemas/json_api' '500': description: An internal error has occurred 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' '401': description: Unauthorized Request content: application/vnd.api+json: example: errors: - status: '401' title: Unauthorized detail: Unauthorized AppType or Product required for this request 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' '502': description: Bad Gateway 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' '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' '404': description: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Account not found detail: The specified account does not exist 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' requestBody: content: application/json: schema: type: object properties: data: type: object properties: type: type: string attributes: type: object properties: name: type: string required: - name example: data: type: portfolios attributes: name: New Portfolio Name required: true description: Request body used to create a portfolio for an account get: summary: Returns a list of portfolios for a specified account tags: - Portfolios security: - OAuth2: [] parameters: - name: page in: query schema: type: integer - name: pageSize in: query schema: type: integer responses: '200': description: Return list of account portfolios content: application/vnd.api+json: example: data: - id: 0e393177-8571-4b52-93ea-2bd16dbfc205 type: portfolios attributes: name: Test Portfolio createdAt: '2026-07-16T13:21:43Z' updatedAt: '2026-07-16T13:21:43Z' relationships: primaryUser: data: id: 62ac308d-6796-4c6a-817f-ba545db4b68f type: users included: - id: 62ac308d-6796-4c6a-817f-ba545db4b68f type: users attributes: email: erasmo@example.example firstName: ExampleUser lastName: Test createdAt: '2026-07-16T13:21:43Z' updatedAt: '2026-07-16T13:21:43Z' meta: total_count: 2 item_count: 2 page_count: 1 current_page: 1 prev_page: null next_page: null last_page: 1 from_record: 1 to_record: 2 links: self: /api/v1/core/accounts/267a1bd2-ea8f-48fb-8a82-8b5109c06908/portfolios prev: null next: null schema: $ref: '#/components/schemas/json_api' '400': description: Bad Request content: application/vnd.api+json: example: errors: - status: '400' title: Internal Server Error detail: Bad Request schema: $ref: '#/components/schemas/json_api' '500': description: An internal error has occurred 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' '401': description: Unauthorized Request content: application/vnd.api+json: example: errors: - status: '401' title: Unauthorized detail: Unauthorized AppType or Product required for this request 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' '502': description: Bad Gateway 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' '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' '404': description: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Account not found detail: The specified account does not exist 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' /core/v0/portfolios/{portfolio_id}: patch: summary: Update a specific portfolio's name for a specified account tags: - Portfolios security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: 74d75229-efad-4ef7-898e-607ad832796d' required: true schema: type: string responses: '200': description: Portfolios Updated content: application/vnd.api+json: example: data: id: 8069c37d-ba84-4109-8d86-7f4da9270a6b type: portfolios attributes: name: New Portfolio Name createdAt: '2026-07-16T13:16:44.547Z' updatedAt: '2026-07-16T13:21:44.547Z' 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' '500': description: An internal error has occurred 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' '401': description: Unauthorized Request content: application/vnd.api+json: example: errors: - status: '401' title: Unauthorized detail: Unauthorized AppType or Product required for this request 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' '502': description: Bad Gateway 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' '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' '404': description: Account not found content: application/vnd.api+json: example: errors: - status: '404' title: Account not found detail: The specified account does not exist 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' requestBody: content: application/json: schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: name: type: string required: - name example: data: id: a5750181-57f7-4e04-9bb8-8b5c092507b0 type: portfolios attributes: name: Updated Portfolio Name required: true description: Request body used to update a portfolio /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/ratings/{rating_id}: delete: summary: Deletes a specific rating assigned to a specified building tags: - Ratings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 318c4d3d-de20-4d70-bcf6-cce3812daf67" required: true schema: type: string - name: building_id in: path description: 'Example: 4c1385b9-0452-422f-92f3-3e2e3c83cfe0' required: true schema: type: string - name: rating_id in: path description: 'Example: 4d8cc3cf-ff61-4138-9437-a3132149a141' required: true schema: type: string responses: '204': description: Rating Deleted Successfully content: application/vnd.api+json: example: '' '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' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find rating 63ddc65b-5266-4fc4-82fa-77ad885618b4 in building b10cc7ff-3de9-4d72-bcdb-5d6ca12cecb4 in portfolio dc893756-24f7-4d6f-be28-930f4699f551 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' '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' get: summary: Returns a specific rating for a specified building tags: - Ratings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 3cc51c77-e386-4f25-86f3-387ba231f618" required: true schema: type: string - name: building_id in: path description: 'Example: 20445565-8aa0-4fcf-b9e5-e9c61e1f6d7e' required: true schema: type: string - name: rating_id in: path description: 'Example: 77ed95a8-65a4-4fee-b957-6af941320cec' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific Rating content: application/vnd.api+json: example: data: id: 2463e117-9b87-440d-b2dc-94de83495169 type: ratings attributes: ratingType: BBC Effinergie ratingName: A Rating score: 35 ratingDate: '2026-03-13' expirationDate: '2026-09-03' notes: some notes importedAt: '2026-04-21 21:35:25' importState: CONFIRMED updatedAt: '2026-04-11 13:19:40' isWholeBuilding: false relationships: building: data: id: 177af71c-8198-4bed-9185-f79ddba930b4 type: buildings links: self: /portfolios/2f80920d-2c8a-4350-be3d-12c975f35182/buildings/177af71c-8198-4bed-9185-f79ddba930b4 links: self: /portfolios/2f80920d-2c8a-4350-be3d-12c975f35182/buildings/177af71c-8198-4bed-9185-f79ddba930b4/ratings/2463e117-9b87-440d-b2dc-94de83495169 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find rating 904aadf7-aa20-490e-aaff-4d55a1a10ed6 in building 72f14b1c-526d-4834-a7a1-fd914f1ade4e in portfolio b0e3e50e-6f20-4ce6-ab9d-616f9c8c10f6 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/ratings: get: summary: Returns a list of ratings for the specified building tags: - Ratings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 36f897c5-f700-4dd1-8c4a-38c4ae90419e" required: true schema: type: string - name: building_id in: path description: 'Example: 8e6f99d7-f1e2-4ca7-be08-43091696d8c5' required: true schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building specific rating list content: application/vnd.api+json: example: data: - id: 3be072e9-d07f-4966-9fba-3e5522c72a61 type: ratings attributes: ratingType: BBC Effinergie ratingName: A Rating score: 12 ratingDate: '2026-01-27' expirationDate: '2026-12-27' notes: some notes importedAt: '2026-01-31 05:33:39' importState: CONFIRMED updatedAt: '2026-01-11 12:31:53' isWholeBuilding: false relationships: building: data: id: 64f31895-b292-475e-b15a-14f8770e7773 type: buildings links: self: /portfolios/94c207d7-1026-4af3-82f8-79a17436804b/buildings/64f31895-b292-475e-b15a-14f8770e7773 links: self: /portfolios/94c207d7-1026-4af3-82f8-79a17436804b/buildings/64f31895-b292-475e-b15a-14f8770e7773/ratings/3be072e9-d07f-4966-9fba-3e5522c72a61 - id: 71317f16-c012-44c3-9f09-68b9d10ed23a type: ratings attributes: ratingType: OTHER ratingName: null score: 67 ratingDate: '2026-04-19' expirationDate: '2026-08-30' notes: null importedAt: null importState: null updatedAt: '2025-12-14 16:49:22' isWholeBuilding: true relationships: building: data: id: 64f31895-b292-475e-b15a-14f8770e7773 type: buildings links: self: /portfolios/94c207d7-1026-4af3-82f8-79a17436804b/buildings/64f31895-b292-475e-b15a-14f8770e7773 links: self: /portfolios/94c207d7-1026-4af3-82f8-79a17436804b/buildings/64f31895-b292-475e-b15a-14f8770e7773/ratings/3be072e9-d07f-4966-9fba-3e5522c72a61 links: self: /core/v0/portfolios/94c207d7-1026-4af3-82f8-79a17436804b/buildings/64f31895-b292-475e-b15a-14f8770e7773/ratings?size=2&page=2 first: /core/v0/portfolios/94c207d7-1026-4af3-82f8-79a17436804b/buildings/64f31895-b292-475e-b15a-14f8770e7773/ratings?size=2&page=1 meta: page: number: 2 size: 2 totalPages: 2 totalElements: 6 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 2c44c279-c605-440d-9b62-ec75d925d12d in portfolio 3249bc8d-cd1d-4027-a288-555bc092c703 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/spaces/{space_id}/certifications: get: summary: Returns a list of certifications for a specific space in a specified building tags: - Space Certifications security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: e43e6f47-848d-47df-980f-196c8a647aad" required: true schema: type: string - name: building_id in: path description: 'Example: f043b802-268a-4ab4-955d-2a0d4c05689b' required: true schema: type: string - name: space_id in: path description: 'Example: b366eb76-5d85-4cc2-9541-0a6a1ec04cfd' required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building / Space list of certifications content: application/vnd.api+json: example: data: - id: 29fe3bd5-f331-47b5-884a-d4314b01ca45 type: certifications attributes: isCustomType: true certificationType: AirRated AirScore certificationDate: '2026-04-15' expirationDate: '2026-09-26' importedAt: '2026-07-15 08:16:37' importState: CONFIRMED isWholeBuilding: false notes: some notes dataSource: MANUAL accoladeLevel: null relationships: space: data: id: 23d6e80b-e3d7-4824-a17d-a9d42d3ce96c type: spaces links: self: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/spaces/23d6e80b-e3d7-4824-a17d-a9d42d3ce96c links: self: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/certifications/29fe3bd5-f331-47b5-884a-d4314b01ca45 - id: 304ed1da-81fc-4ae7-83ba-7d2cb0c0a2b0 type: certifications attributes: isCustomType: true certificationType: CALGreen certificationDate: '2026-06-14' expirationDate: '2026-10-15' importedAt: '2026-04-06 07:07:00' importState: CONFIRMED isWholeBuilding: true notes: some notes dataSource: MANUAL accoladeLevel: null relationships: space: data: id: 23d6e80b-e3d7-4824-a17d-a9d42d3ce96c type: spaces links: self: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/spaces/23d6e80b-e3d7-4824-a17d-a9d42d3ce96c links: self: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/certifications/304ed1da-81fc-4ae7-83ba-7d2cb0c0a2b0 links: self: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/spaces/23d6e80b-e3d7-4824-a17d-a9d42d3ce96c/certifications/?size=2&page=1 first: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/spaces/23d6e80b-e3d7-4824-a17d-a9d42d3ce96c/certifications/?size=2&page=1 last: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/spaces/23d6e80b-e3d7-4824-a17d-a9d42d3ce96c/certifications/?size=2&page=2 next: /portfolios/3e704ea1-9bf9-4d11-a2d2-bf50efacf132/buildings/e33a54a4-26b5-4e8a-bead-8559d43ff442/spaces/23d6e80b-e3d7-4824-a17d-a9d42d3ce96c/certifications/?size=2&page=2 meta: page: number: 1 size: 2 totalPages: 2 totalElements: 4 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find space 34409e48-f64e-4f51-aaa9-3bdc7f16af6e in building d9d4b108-aeee-401b-a010-491368ace6b5 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/spaces/{space_id}/ratings: get: summary: Returns a list of ratings for a specific space in a specified building tags: - Space Ratings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 0c1f567b-ba23-44b7-ada3-713c966f6f0e" required: true schema: type: string - name: building_id in: path description: 'Example: 51a8e325-4ce9-481b-a6ee-830ab1787c5e' required: true schema: type: string - name: space_id in: path description: 'Example: baa9ca58-6c28-42d4-bc7b-88f19324c3ff' required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building / Space list of ratings content: application/vnd.api+json: example: data: - id: 6218e3be-ca69-47c9-a0c4-80f0dbc5a97f type: ratings attributes: ratingType: BBC Effinergie ratingName: A Rating score: 8 ratingDate: '2026-02-01' expirationDate: '2026-09-04' notes: Some notes importedAt: '2026-05-31 23:39:56' importState: CONFIRMED updatedAt: '2025-12-17 07:42:37' isWholeBuilding: true relationships: space: data: id: 6745df8b-8f05-4afa-8526-85d0e5b899a1 type: spaces links: self: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/spaces/6745df8b-8f05-4afa-8526-85d0e5b899a1 links: self: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/ratings/6218e3be-ca69-47c9-a0c4-80f0dbc5a97f - id: 727fefb7-96b5-4fa4-8a3e-2441111ddd56 type: ratings attributes: ratingType: OTHER ratingName: null score: 80 ratingDate: '2026-06-09' expirationDate: '2026-09-17' notes: null importedAt: null importState: null updatedAt: '2025-08-27 16:25:00' isWholeBuilding: false relationships: space: data: id: 6745df8b-8f05-4afa-8526-85d0e5b899a1 type: spaces links: self: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/spaces/6745df8b-8f05-4afa-8526-85d0e5b899a1 links: self: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/ratings/727fefb7-96b5-4fa4-8a3e-2441111ddd56 links: self: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/spaces/6745df8b-8f05-4afa-8526-85d0e5b899a1/ratings/?size=2&page=1 first: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/spaces/6745df8b-8f05-4afa-8526-85d0e5b899a1/ratings/?size=2&page=1 last: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/spaces/6745df8b-8f05-4afa-8526-85d0e5b899a1/ratings/?size=2&page=2 next: /portfolios/ee66edfe-4001-42f7-be01-f4c62fbb34fb/buildings/0c4b13df-bcaf-4e58-96a7-7d09aa0a0e70/spaces/6745df8b-8f05-4afa-8526-85d0e5b899a1/ratings/?size=2&page=2 meta: page: number: 1 size: 2 totalPages: 2 totalElements: 4 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find space 8b1c6077-4e25-43a4-9454-aff398b146ec in building 635ad912-6ff1-43bd-93f4-d126a5259706 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/spaces: post: summary: Creates space for a specified building tags: - Spaces security: - OAuth2: [] parameters: - name: portfolio_id in: path description: 'Example: a5b8cf61-c294-4e59-b1fa-b4732511ef57' required: true schema: type: string - name: building_id in: path description: 'Example: 1a9e7262-8f03-46e2-96de-e384ef56175f' required: true schema: type: string responses: '200': description: Portfolio/Building specific space content: application/vnd.api+json: example: data: id: 8a698998-ec63-419b-8123-b85238facd48 type: spaces attributes: propertyType: Financial Office name: Office Space common: true floorAreaSqFt: 8639 allocation: 62 estarSpaceId: 17829744 customized: false relationships: building: data: id: 9eb479f9-2d84-4049-bd00-41c618822908 type: buildings links: self: /portfolios/9ce9e831-df37-4def-8332-d949c3bce210/buildings/9eb479f9-2d84-4049-bd00-41c618822908 links: self: /portfolios/9ce9e831-df37-4def-8332-d949c3bce210/buildings/9eb479f9-2d84-4049-bd00-41c618822908/spaces/8a698998-ec63-419b-8123-b85238facd48 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building ed29233f-1f93-4423-bc6e-34099beda236 in portfolio 8e9abf2c-80cc-4deb-9a5d-4428eac3ea3a 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: type: object properties: name: type: string propertyType: type: string common: type: boolean floorAreaSqFt: type: number required: - name - propertyType - common - floorAreaSqFt example: data: type: spaces attributes: name: New Space propertyType: Financial Office common: false floorAreaSqFt: 4108 required: true description: Request body used to create a space associated with a building get: summary: Returns a list of spaces for a specified building tags: - Spaces security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: ad838cbe-650a-4e93-8d84-58e8abd3f272" required: true schema: type: string - name: building_id in: path description: 'Example: ecc01f7d-2732-4ddf-900a-c4cc40959727' required: true schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio/Building specific space content: application/vnd.api+json: example: data: - id: f4b41ff0-c657-45c7-9c9c-4650d34fcb6e type: spaces attributes: propertyType: Financial Office name: Our Office Space common: true floorAreaSqFt: 6765 allocation: 50 estarSpaceId: 1905762 customized: false relationships: building: data: id: 9fea95f2-3b8b-4b0b-99e7-627e612506a6 type: buildings links: self: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6 links: self: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6/spaces/f4b41ff0-c657-45c7-9c9c-4650d34fcb6e - id: 5786ebf4-bc31-4c91-b3b6-7ca5db0fe51e type: spaces attributes: propertyType: Office name: Another Office Building common: false floorAreaSqFt: 920 allocation: 78 estarSpaceId: 29901759 customized: true relationships: building: data: id: 9fea95f2-3b8b-4b0b-99e7-627e612506a6 type: buildings links: self: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6 links: self: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6/spaces/5786ebf4-bc31-4c91-b3b6-7ca5db0fe51e links: self: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6/spaces/?size=2&page=1 first: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6/spaces/?size=2&page=1 last: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6/spaces/?size=2&page=2 next: /portfolios/06e3edd1-cbad-44f2-8d8e-16b016844def/buildings/9fea95f2-3b8b-4b0b-99e7-627e612506a6/spaces/?size=2&page=2 meta: page: number: 1 size: 2 totalPages: 2 totalElements: 3 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building e17dbb60-5400-4789-ac7e-10ed885ce4f5 in portfolio f986a801-1d04-4a71-b9d7-4b23ff865bec 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/spaces/{space_id}: delete: summary: Deletes a specific space for a specified building tags: - Spaces security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 3e6c2f1a-20f5-4b95-bafe-2d771b1d8b60" required: true schema: type: string - name: building_id in: path description: 'Example: bbd04c49-64a6-45f1-9b97-0b05f90d4914' required: true schema: type: string - name: space_id in: path description: 'Example: 8356a90d-bce3-447d-bb50-4eb2c70ddf7f' required: true schema: type: string responses: '204': description: Space Deleted Successfully content: application/vnd.api+json: example: '' '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' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find space 04109d30-5910-4262-9787-3ceb5e29a112 in building 47f404e1-5751-459e-9389-c75a54bb3a49 in portfolio 7fcbad76-f1c7-42ea-aecc-fa060731aee2 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' '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' get: summary: Returns details of a specific space for a specified building tags: - Spaces security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: b3488eca-a284-4c56-bdcf-a94709a49717" required: true schema: type: string - name: building_id in: path description: 'Example: 1c00f770-1600-42a9-a335-881b5b48772e' required: true schema: type: string - name: space_id in: path description: 'Example: 3e57bf30-caad-4f51-ae39-ea9a448c38ae' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific space content: application/vnd.api+json: example: data: id: 127af6c6-c3ee-4957-aab0-85a20394e1a8 type: spaces attributes: propertyType: Financial Office name: Office Space common: false floorAreaSqFt: 3795 allocation: 63 estarSpaceId: 44844188 customized: true relationships: building: data: id: 79059bb2-6fb7-4f39-b5e2-c02f941918aa type: buildings links: self: /portfolios/fafa1342-6ecc-4a4a-a9fe-7199513b9f12/buildings/79059bb2-6fb7-4f39-b5e2-c02f941918aa links: self: /portfolios/fafa1342-6ecc-4a4a-a9fe-7199513b9f12/buildings/79059bb2-6fb7-4f39-b5e2-c02f941918aa/spaces/127af6c6-c3ee-4957-aab0-85a20394e1a8 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find space 54397974-809d-4b0d-bbfc-425562857be8 in building abf30b41-8877-4249-b163-ef303b5d324e in portfolio 4782f3cd-3f21-46e4-82d4-5be44f4ae0ac 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' patch: summary: Updates a specific space for a specified building tags: - Spaces security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 02cbb0a6-ce94-42ba-919d-6cdb26f90482" required: true schema: type: string - name: building_id in: path description: 'Example: fc170ca8-d19a-4f36-b92d-7deab59a074e' required: true schema: type: string - name: space_id in: path description: 'Example: 6aef4b6d-d054-4979-a9ff-e7f80519e648' required: true schema: type: string responses: '200': description: Portfolio / Building Specific Space Updated content: application/vnd.api+json: example: data: id: d526fa46-f3ef-4b81-acd1-6fe7f603f1a1 type: spaces attributes: propertyType: Financial Office name: Office Space common: true floorAreaSqFt: 6191 allocation: 15 estarSpaceId: 32647979 customized: false relationships: building: data: id: 9903057f-e608-4a14-b67b-da92a918f0d8 type: buildings links: self: /portfolios/0871952b-6f18-4243-8396-1dbd7edd204f/buildings/9903057f-e608-4a14-b67b-da92a918f0d8 links: self: /portfolios/0871952b-6f18-4243-8396-1dbd7edd204f/buildings/9903057f-e608-4a14-b67b-da92a918f0d8/spaces/d526fa46-f3ef-4b81-acd1-6fe7f603f1a1 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find space 50bc0cb5-fc13-40d0-b205-74ffb88aa709 for building b4a307db-abf7-408d-b92a-8e5cef727a58 in portfolio 18cbe890-7d32-42af-a1f6-ac8240156c13 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: id: type: string type: object properties: name: type: string propertyType: type: string floorAreaSqFt: type: number required: - name - propertyType - common - floorAreaSqFt example: data: id: 3066bcef-b5ac-4027-9e38-f35baea768b7 type: spaces attributes: propertyType: Financial Office name: New Space floorAreaSqFt: 9840 required: true description: Request body used to create a space associated with a building /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/waste_meters: post: summary: Creates a waste meter for a specified building tags: - Waste Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 6556e062-30de-4726-bd5c-43a06cfb95d6" required: true schema: type: string - name: building_id in: path description: 'Example: e1ac370b-89cb-46a4-880f-1a9199031e15' required: true schema: type: string responses: '200': description: Portfolio / Building specific waste meter content: application/vnd.api+json: example: data: id: 979d5e17-5d1e-4476-ad4f-32857703ac40 type: wasteMeters attributes: estarMeterId: null meterType: Disposed - Trash units: TONNES (METRIC) name: Disposed - Trash containerSize: null activationDate: '2025-03-05' deactivationDate: '2025-11-21' autoActivationDate: false currency: USD intermittent: false hazardous: true updatedAt: '2026-03-22 00:00:00' relationships: building: data: id: fd400b55-e19e-46fa-82e4-f8f12e919b27 type: buildings links: self: /portfolios/8f5ecfb8-5cd7-4320-958d-89cc21254737/buildings/fd400b55-e19e-46fa-82e4-f8f12e919b27 links: self: /portfolios/8f5ecfb8-5cd7-4320-958d-89cc21254737/buildings/fd400b55-e19e-46fa-82e4-f8f12e919b27/waste-meters/16f875f5-49d2-4dd9-b0c0-4c0910137bee schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building 0b92a1c8-b722-46ae-b736-9bdff885c377 in portfolio 7bb9443a-799f-4eca-97c5-ef8c81ef7e83 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: type: object properties: meterType: type: string units: type: string name: type: string containerSize: type: decimal activationDate: type: string deactivationDate: type: string autoActivationDate: type: boolean currency: type: string intermittent: type: boolean hazardous: type: boolean required: - meterType - units - name - currency example: data: type: wasteMeters attributes: meterType: Disposed - Trash units: TONNES (METRIC) name: Disposed - Trash containerSize: null activationDate: '2019-08-01' deactivationDate: '2022-09-23' autoActivationDate: true currency: USD intermittent: false hazardous: false required: true description: Request body used to create a waste meter associated with a building get: summary: Returns a list of waste meters for a specified building tags: - Waste Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: b35ae5fe-a075-47d3-975e-50316f9a617d" required: true schema: type: string - name: building_id in: path description: 'Example: 09791d5e-98cc-4b4a-b67d-237cc8700201' required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building specific waste meter content: application/vnd.api+json: example: data: - id: a6679b91-2973-4615-8e68-de0a297e469f type: wasteMeters attributes: estarMeterId: 70361525 meterType: Disposed - Trash units: TONNES (METRIC) name: Intermittent Trash containerSize: null activationDate: '2024-03-31' deactivationDate: '2024-12-27' autoActivationDate: false currency: USD intermittent: false hazardous: false updatedAt: '2026-03-01 00:00:00' relationships: building: data: id: e12a72bc-220c-4626-8953-37cc530e6a31 type: buildings links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31 links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters/a6679b91-2973-4615-8e68-de0a297e469f - id: 11953c84-aa21-4a5f-a61e-48eaa7c6bce3 type: wasteMeters attributes: estarMeterId: 78750219 meterType: Recycled - Mixed Recyclables units: pounds name: Recycled- Mixed Recyclables containerSize: null activationDate: '2024-05-09' deactivationDate: '2025-08-25' autoActivationDate: false currency: USD intermittent: false hazardous: false updatedAt: '2026-01-15 00:00:00' relationships: building: data: id: e12a72bc-220c-4626-8953-37cc530e6a31 type: buildings links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31 links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters/11953c84-aa21-4a5f-a61e-48eaa7c6bce3 - id: 8b24e1f3-7f65-4722-8598-7262a8816926 type: wasteMeters attributes: estarMeterId: 75035732 meterType: Recycled - Batteries units: Kilogram name: Recycled - Batteries containerSize: null activationDate: '2024-02-11' deactivationDate: null autoActivationDate: false currency: USD intermittent: false hazardous: true updatedAt: '2026-05-06 00:00:00' relationships: building: data: id: e12a72bc-220c-4626-8953-37cc530e6a31 type: buildings links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31 links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters/8b24e1f3-7f65-4722-8598-7262a8816926 - id: 35431151-d0ce-41af-9c9e-8b7ec7f0dc85 type: wasteMeters attributes: estarMeterId: 7182734 meterType: Composted - Cardboard/Corrugated Containers units: TONNES (METRIC) name: Composted - Cardboard/Corrugated Containers containerSize: null activationDate: '2024-05-10' deactivationDate: null autoActivationDate: true currency: USD intermittent: true hazardous: false updatedAt: '2026-04-10 00:00:00' relationships: building: data: id: e12a72bc-220c-4626-8953-37cc530e6a31 type: buildings links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31 links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters/35431151-d0ce-41af-9c9e-8b7ec7f0dc85 - id: 7cdcae9f-d967-420f-9379-469e627ae39e type: wasteMeters attributes: estarMeterId: 31046927 meterType: Recycled - Appliances units: pounds name: Recycled - Appliances containerSize: null activationDate: '2023-08-09' deactivationDate: null autoActivationDate: true currency: USD intermittent: false hazardous: false updatedAt: '2026-06-22 00:00:00' relationships: building: data: id: e12a72bc-220c-4626-8953-37cc530e6a31 type: buildings links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31 links: self: /portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters/7cdcae9f-d967-420f-9379-469e627ae39e links: self: /core/v0/portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters?size=5&page=3 first: /core/v0/portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters?size=5&page=1 last: /core/v0/portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters?size=5&page=8 next: /core/v0/portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters?size=5&page=4 prev: /core/v0/portfolios/dcc26acf-4584-4e3d-b652-52ea108a313d/buildings/e12a72bc-220c-4626-8953-37cc530e6a31/waste-meters?size=5&page=2 meta: page: number: 1 size: 100 totalPages: 8 totalElements: 730 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find building e173c49a-9e27-49a7-92a6-0d9a81427408 in portfolio 5d4cd41a-a4f6-47be-9320-dbd7777cd9dc 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/waste_meters/{waste_meter_id}: delete: summary: Deletes a specific waste meter for a specified building description: 'Deleting the waste meter will also delete any waste meter readings associated with the waste meter. ' tags: - Waste Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: f401879f-8624-4052-b571-50c5045ed1df" required: true schema: type: string - name: building_id in: path description: 'Example: 4cbf6792-43ed-447a-a88e-a7de4ddbf182' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: 98a86bcc-babf-42e5-b17b-35eff6f8f3c6' required: true schema: type: string responses: '204': description: Waste Meter Deleted Successfully content: application/vnd.api+json: example: '' '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' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find waste meter 5afcf263-0619-4430-b991-ef50915b019f in building b4c9741a-58b8-42e5-bf61-9856fbd19300 in portfolio ae09e916-9298-45f0-8d37-19c13061fa03 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' '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' get: summary: Returns a specific waste meter for a specified building tags: - Waste Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 8926bdd6-24de-400f-a09a-08182cfa80cc" required: true schema: type: string - name: building_id in: path description: 'Example: 27e8da79-d3d9-45a3-9d68-504c2631599d' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: 9baddc4b-5702-4212-8163-6b9607ac028b' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific waste meter content: application/vnd.api+json: example: data: id: 369abb6c-6360-4cd7-94ec-6a02df2aac2e type: wasteMeters attributes: estarMeterId: 37077624 meterType: Disposed - Trash units: TONNES (METRIC) name: Intermittent Trash containerSize: null activationDate: '2024-12-01' deactivationDate: null autoActivationDate: false currency: USD intermittent: true hazardous: true updatedAt: '2026-05-27 00:00:00' relationships: building: data: id: bb34076c-c099-4d89-bb18-b99e4332f0a6 type: buildings links: self: /portfolios/a4eda804-530d-4e46-9b2a-08081255d7fe/buildings/bb34076c-c099-4d89-bb18-b99e4332f0a6 links: self: /portfolios/a4eda804-530d-4e46-9b2a-08081255d7fe/buildings/bb34076c-c099-4d89-bb18-b99e4332f0a6/waste-meters/369abb6c-6360-4cd7-94ec-6a02df2aac2e schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find waste meter a85e3252-41d8-49cb-8ad3-39d912a282f9 in building e5e4d326-ca3d-4a4c-9fd8-d13a7a008d4b in portfolio 9289e0fa-8ee9-4132-a4db-b858d06412a0 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' patch: summary: Updates a specific waste meter for a specified building tags: - Waste Meters security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 4ea32812-5af4-49ee-8e3d-f23be84ad14b" required: true schema: type: string - name: building_id in: path description: 'Example: e7927fbf-b2c9-4ae5-8712-867450195c36' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: ca7d4dc8-8326-4770-b750-897b0c276324' required: true schema: type: string responses: '200': description: Portfolio / Building Specific Waste Meter Updated content: application/vnd.api+json: example: data: id: 9fa329b0-e9ae-4851-8987-9311e76c031f type: wasteMeters attributes: estarMeterId: null meterType: Disposed - Trash units: TONNES (METRIC) name: New Name containerSize: null activationDate: '2024-10-23' deactivationDate: null autoActivationDate: false currency: USD intermittent: false hazardous: false updatedAt: '2025-11-22 00:00:00' relationships: building: data: id: f014ce08-000d-4335-b0c0-48ea7ac07af0 type: buildings links: self: /portfolios/15369f00-1608-40ee-bec1-06c70a74fb58/buildings/f014ce08-000d-4335-b0c0-48ea7ac07af0 links: self: /portfolios/15369f00-1608-40ee-bec1-06c70a74fb58/buildings/f014ce08-000d-4335-b0c0-48ea7ac07af0/waste-meters/9fa329b0-e9ae-4851-8987-9311e76c031f schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find waste meter 023489be-c116-4ee4-beae-441de41543ff in building 363eadec-1d1d-4169-9ac4-2ef42b9737f9 in portfolio fcbd8362-6029-477b-9b80-f3f51de64352 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: units: type: string name: type: string activationDate: '2019-08-01' deactivationDate: '2022-09-23' autoActivationDate: true currency: USD intermittent: true hazardous: false required: - id - type example: data: id: af606077-9cd9-4a8a-93fb-5e6fa34cab63 type: wasteMeters attributes: units: TONNES (METRIC) name: New Name activationDate: '2019-08-01' deactivationDate: '2022-09-23' autoActivationDate: true currency: USD intermittent: false hazardous: false required: true description: Request body used to update a specific waste meter /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/waste_meters/{waste_meter_id}/readings: post: summary: Creates a waste meter reading for a specified building tags: - Waste Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 50960f84-7c85-4448-a330-f743ef2ccb52" required: true schema: type: string - name: building_id in: path description: 'Example: 124c0183-645c-418b-a3b0-7a2227da5d5f' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: 7d033756-fa66-47cf-82c2-91b0f1cced9c' required: true schema: type: string responses: '200': description: Creates a Portfolio or Fund / Building specific waste meter reading content: application/vnd.api+json: example: data: id: 11ed39c9-b11f-afbb-ba22-0242ac120002 type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2026-08-19' toDate: '2026-09-19' cost: 1200.0 quantity: 1234.0 timesEmptied: null avgPercentFull: null landfillPct: 0.0 incinerationPct: 50.0 wtePct: 50.0 unknownPct: 0.0 updatedAt: '2026-02-22 16:09:23' relationships: waste-meter: data: id: 23ad90eb-ae5f-4c09-856f-c7a7d4ab922b type: wasteMeters links: self: /portfolios/c9ece25d-81cb-47a0-b997-2003a3e9fb97/buildings/c133f769-af4d-42ca-90ac-2bf3a4e09843/waste-meters/23ad90eb-ae5f-4c09-856f-c7a7d4ab922b links: self: /portfolios/c9ece25d-81cb-47a0-b997-2003a3e9fb97/buildings/c133f769-af4d-42ca-90ac-2bf3a4e09843/waste-meters/23ad90eb-ae5f-4c09-856f-c7a7d4ab922b/readings/9ab09e6e-e0cf-4082-ba11-3d435276e9de schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find waste meter 2a5e5304-ea7c-47f7-854d-08aaeb3413d0 in building f899b046-2a36-4889-910d-e707f5aae942 in portfolio beef68b8-3179-453e-a63f-7a9764e81b7d 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: type: object properties: fromDate: type: string toDate: type: string cost: type: decimal quantity: type: decimal timesEmptied: type: decimal avgPercentFull: type: decimal landfillPct: type: decimal incinerationPct: type: decimal wtePct: type: decimal unknownPct: type: decimal required: - fromDate - toDate - cost - landfillPct - incinerationPct - wtePct - unknownPct example: data: type: wasteMeterReadings attributes: fromDate: '2022-03-01' toDate: '2022-04-01' cost: 1200.0 quantity: 1234.0 timesEmptied: null avgPercentFull: null landfillPct: 0 incinerationPct: 50 wtePct: 50 unknownPct: 0 required: true description: Request body used to create a waste meter reading associated with a waste meter get: summary: Returns a list of waste meter readings for a specified waste meter and building tags: - Waste Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 1e57a075-bb0e-4ace-960c-7f659037579e" required: true schema: type: string - name: building_id in: path description: 'Example: e692b1fd-8817-433e-9369-63779ac56ea1' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: c2b5f5eb-d979-4587-b7c8-6728a2f566a7' required: true schema: type: string - name: filter in: query description: "Filter by any attribute available via the endpoint.
\n " schema: type: string - name: page in: query default: 1 schema: type: integer - name: size in: query description: The max page size is limited to 200 returned results default: 25 schema: type: integer responses: '200': description: Portfolio or Fund / Building specific waste meter readings list content: application/vnd.api+json: example: data: - id: 810e03f4-6b20-4d9f-9eb6-e0de229a5faa type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2018-01-01' toDate: '2018-02-01' cost: 43 quantity: 2.0 timesEmptied: null avgPercentFull: null landfillPct: 50.0 incinerationPct: 25.0 wtePct: 25.0 unknownPct: 0.0 updatedAt: '2026-04-01 06:07:50' relationships: waste-meter: data: id: 86752597-efb6-4f4f-9dcc-3e1222924e3f type: wasteMeters links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings/810e03f4-6b20-4d9f-9eb6-e0de229a5faa - id: c9309006-3685-45e1-9e38-7ab5060839da type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2018-02-01' toDate: '2018-03-01' cost: 3 quantity: 2.0 timesEmptied: null avgPercentFull: null landfillPct: 50.0 incinerationPct: 25.0 wtePct: 25.0 unknownPct: 0.0 updatedAt: '2025-11-26 23:52:30' relationships: waste-meter: data: id: 86752597-efb6-4f4f-9dcc-3e1222924e3f type: wasteMeters links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings/c9309006-3685-45e1-9e38-7ab5060839da - id: baf3b72b-5bd2-4725-8d99-625da7aee630 type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2018-04-01' toDate: '2018-05-01' cost: 197 quantity: 2.0 timesEmptied: null avgPercentFull: null landfillPct: 50.0 incinerationPct: 25.0 wtePct: 25.0 unknownPct: 0.0 updatedAt: '2025-10-17 03:49:52' relationships: waste-meter: data: id: 86752597-efb6-4f4f-9dcc-3e1222924e3f type: wasteMeters links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings/baf3b72b-5bd2-4725-8d99-625da7aee630 - id: c8791989-4012-4e89-b0f1-431ed0676359 type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2018-01-01' toDate: '2018-02-01' cost: 151 quantity: 2.0 timesEmptied: null avgPercentFull: null landfillPct: 50.0 incinerationPct: 25.0 wtePct: 25.0 unknownPct: 0.0 updatedAt: '2026-06-16 18:44:25' relationships: waste-meter: data: id: 86752597-efb6-4f4f-9dcc-3e1222924e3f type: wasteMeters links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings/c8791989-4012-4e89-b0f1-431ed0676359 - id: f0c6526b-df14-4c3a-b5c9-d612413d6119 type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2018-02-01' toDate: '2018-03-01' cost: 50 quantity: 2.0 timesEmptied: null avgPercentFull: null landfillPct: 50.0 incinerationPct: 25.0 wtePct: 25.0 unknownPct: 0.0 updatedAt: '2026-03-28 11:29:10' relationships: waste-meter: data: id: 86752597-efb6-4f4f-9dcc-3e1222924e3f type: wasteMeters links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f links: self: /portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings/f0c6526b-df14-4c3a-b5c9-d612413d6119 links: self: /core/v0/portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings?size=5&page=3 first: /core/v0/portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings?size=5&page=1 last: /core/v0/portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings?size=5&page=5 next: /core/v0/portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings?size=5&page=4 prev: /core/v0/portfolios/415e728a-af44-41d1-9ed3-e42052057ab1/buildings/3461bfa5-4e9e-4419-a7fa-712930a6831b/waste-meters/86752597-efb6-4f4f-9dcc-3e1222924e3f/readings?size=5&page=2 meta: page: number: 3 size: 100 totalPages: 5 totalElements: 420 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find waste meter ac845234-f165-4ddf-ba5b-c0a6c6cd610a in building 81aff2a3-a22f-468c-9e79-a7d5e31809bc in portfolio c05a3502-0990-499e-ad58-08bf6df0acd7 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' /core/v0/portfolios/{portfolio_id}/buildings/{building_id}/waste_meters/{waste_meter_id}/readings/{waste_meter_reading_id}: delete: summary: Deletes a specific waste meter reading for a specified waste meter and building tags: - Waste Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: 411bc8cc-1599-41c6-bde0-026bfa52df6b" required: true schema: type: string - name: building_id in: path description: 'Example: 13cc5e72-7a7a-4d66-b13d-2859bfbba4d0' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: d6484baa-adec-47fb-ae3d-48d2db9a6ee5' required: true schema: type: string - name: waste_meter_reading_id in: path description: 'Example: e981b586-477e-46e3-9b96-f40c1cbf9eec' required: true schema: type: string responses: '204': description: Waste Meter Reading Deleted Successfully content: application/vnd.api+json: example: '' '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' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find reading ba46d76a-2c33-4f7b-94ed-5f69592d064f for waste meter abeaf329-5fe9-4c91-9a5d-032847877643 in building 67f7dab8-ff9f-448b-b2cf-9d5ee246c676 in portfolio ba37ebbf-8974-45f3-a17b-f5ac04a2ea9a 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' '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' get: summary: Returns details of a specific waste meter reading for a specified waste meter and building tags: - Waste Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID of either the parent portfolio or fund
\n Example: 8e6f37da-2df7-4925-9724-b6fc9b8e51e3" required: true schema: type: string - name: building_id in: path description: 'Example: 86a3fc90-9373-40da-a14e-f31cc44df3d3' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: 06b69ed6-a772-4cb0-b2cb-1f62dce1d595' required: true schema: type: string - name: waste_meter_reading_id in: path description: 'Example: bbc32c66-f85c-463f-8fde-30f5a6f646f6' required: true schema: type: string responses: '200': description: Portfolio or Fund / Building specific waste meter readings list content: application/vnd.api+json: example: data: id: 1728d5b0-3f4c-4af1-a847-9f7fddee312f type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2026-11-28' toDate: '2026-12-28' cost: 39 quantity: 2.0 timesEmptied: null avgPercentFull: null landfillPct: 50.0 incinerationPct: 25.0 wtePct: 25.0 unknownPct: 0.0 updatedAt: '2025-12-23 16:39:16' relationships: waste-meter: data: id: e8e95975-53cb-497a-b756-64f69a7b2792 type: waste-meters links: self: /portfolios/1d97c3b7-3d36-4367-9b83-89a0550f8590/buildings/7a230a98-53fb-431e-afab-10c2bbc68ea1/waste-meters/e8e95975-53cb-497a-b756-64f69a7b2792 links: self: portfolios/1d97c3b7-3d36-4367-9b83-89a0550f8590/buildings/7a230a98-53fb-431e-afab-10c2bbc68ea1/waste-meters/e8e95975-53cb-497a-b756-64f69a7b2792/readings/1728d5b0-3f4c-4af1-a847-9f7fddee312f schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find reading 981dcaa7-cac0-4a77-87f4-a36791294fe1 for waste meter 662402ec-aa5b-4707-b27d-75b85f85c74f in building 80890e7a-37dc-459b-861c-b53f7ab11684 in portfolio 2a29ad3f-74e8-4402-b524-724c42742157 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' patch: summary: Updates a specific waste meter reading for a specified building tags: - Waste Meter Readings security: - OAuth2: [] parameters: - name: portfolio_id in: path description: "UUID for the parent portfolio
\n Example: fd6dbf39-a76e-4117-952c-8aa9032cca8b" required: true schema: type: string - name: building_id in: path description: 'Example: d2fa3087-b192-4042-b80d-e05a3a0879c5' required: true schema: type: string - name: waste_meter_id in: path description: 'Example: 871673d6-0b78-4938-a661-e085ee1e2207' required: true schema: type: string - name: waste_meter_reading_id in: path description: 'Example: 83c083ca-3a9c-4935-ab54-952502894c01' required: true schema: type: string responses: '200': description: Portfolio / Building / Waste Meter Specific Waste Meter Reading Updated content: application/vnd.api+json: example: data: id: 7144a6e5-b932-4b88-968c-f53814106988 type: wasteMeterReadings attributes: estarMeterReadingId: null fromDate: '2026-05-05' toDate: '2026-06-05' cost: 1200.0 quantity: 1234.0 timesEmptied: null avgPercentFull: null landfillPct: 0.0 incinerationPct: 50.0 wtePct: 50.0 unknownPct: 0.0 updatedAt: '2026-02-09 13:52:46' relationships: waste-meter: data: id: f2cce382-aca6-45e1-9a62-119939b757b4 type: wasteMeters links: self: /portfolios/863bedb7-1159-497d-a373-5783b888a5ac/buildings/3996d432-d7a4-499f-8914-fb99725b0b16/waste-meters/f2cce382-aca6-45e1-9a62-119939b757b4 links: self: /portfolios/863bedb7-1159-497d-a373-5783b888a5ac/buildings/3996d432-d7a4-499f-8914-fb99725b0b16/waste-meters/f2cce382-aca6-45e1-9a62-119939b757b4/readings/7144a6e5-b932-4b88-968c-f53814106988 schema: $ref: '#/components/schemas/json_api' '404': description: Not Found content: application/vnd.api+json: example: errors: - status: '404' title: Not Found detail: Could not find reading f3c3a089-5b4e-4ac0-99ea-6a03761ad219 for waste meter ab904681-bb52-4e87-950b-ce427ccb5687 in building a82b42f8-967a-49be-a3c8-db13ef2fd54d in portfolio d92bf499-b0d8-4f10-a44a-203077484c6e 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' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: id: type: string type: type: string attributes: type: object properties: fromDate: type: string toDate: type: string cost: type: decimal quantity: type: decimal timesEmptied: type: decimal avgPercentFull: type: decimal landfillPct: type: decimal incinerationPct: type: decimal wtePct: type: decimal unknownPct: type: decimal required: - id - type example: data: id: 2dc22960-2de3-480b-9863-f667f8d82448 type: wasteMeterReadings attributes: fromDate: '2022-03-01' toDate: '2022-04-01' cost: 1200.0 quantity: 1234.0 timesEmptied: null avgPercentFull: null landfillPct: 0 incinerationPct: 50 wtePct: 50 unknownPct: 0 required: true description: Request body used to update a specific waste meter reading associated with a waste meter