### Fetch Intervals Success Response Example Source: https://docs.arcadia.com/docs/api-quick-start-guide This snippet illustrates a successful response from the Arcadia API when fetching interval data. It includes metadata about the intervals, such as start and end times, meter details, and a list of readings with consumption data (kwh and kw). ```json { "correlationIds": [ {correlationId} ], "credentialIds": [ "crd_11111111-ca5c-dfc4-9dd3-ba7ee6dbebcb" ], "earliestIntervalAt": "2024-05-01T07:00:00.000+00:00", "electricMeterMultiplier": 1, "intervalsCreatedAt": "2024-12-12T23:24:50.000+00:00", "intervalsUpdatedAt": "2024-12-12T23:24:50.000+00:00", "latestIntervalAt": "2024-12-11T07:00:00.000+00:00", "localTimezone": "America/Los_Angeles", "meterId": "mtr_11111111-5614-d734-bf5e-867dc2fc6afd", "meterNumber": "1011195820", "providerId": "prv_36e14462-ea0a-11e0-b6bb-12313d2b6294", "providerName": "Pacific Gas and Electric (PG&E)", "readType": null, "readings": [ { "startAt": "2024-05-01T07:00:00.000+00:00", "endAt": "2024-05-01T08:00:00.000+00:00", "direction": "net", "kwh": 0.0744, "kw": 0.0744 }, { "startAt": "2024-05-01T07:00:00.000+00:00", "endAt": "2024-05-01T08:00:00.000+00:00", "direction": "import", "kwh": 0.0744, "kw": null }, { "startAt": "2024-05-01T08:00:00.000+00:00", "endAt": "2024-05-01T09:00:00.000+00:00", "direction": "net", "kwh": 0.0738, "kw": 0.0738 }, { "startAt": "2024-05-01T08:00:00.000+00:00", "endAt": "2024-05-01T09:00:00.000+00:00", "direction": "import", "kwh": 0.0738, "kw": null }, ... } ``` -------------------------------- ### Example API Response for Meter Activation Source: https://docs.arcadia.com/docs/api-quick-start-guide This JSON object represents a successful API response after attempting to activate a meter. It includes meter details and confirms the activation status as 'INTERVALS_IN_PROGRESS'. ```json { "page": { "size": 20, "totalElements": 1, "totalPages": 1, "number": 0 }, "meters": [ { "accounts": [ { "accountNumber": "111111111", "id": "act_11111111-52b9-d118-bf5e-867dc2fc6afd" } ], "bulbType": null, "correlationIds": [ {correlationId} ], "createdAt": "2024-12-12T23:07:18.000+00:00", "createdBy": "system", "currentTariff": null, "customData": {}, "earliestIntervalAt": null, "generalDescriptionAsPrinted": null, "id": "mtr_11111111-5614-d734-bf5e-867dc2fc6afd", "isIntervalsProductActive": true, "isIntervalsThirdPartyPortalMeter": false, "isLocationRecommendationIgnored": false, "isStandalone": false, "lastModifiedAt": "2024-12-12T23:19:18.000+00:00", "lastModifiedBy": "Name", "latestIntervalAt": null, "latestStatementDate": null, "localTimezone": null, "meterConstantMultiplier": null, "meterNumber": "11111111", "nextExpectedPostDate": null, "normalizedMeterNumber": "11111111", "normalizedPointOfDeliveryNumber": "11111111", "pipeType": null, "pointOfDeliveryNumber": "1111111", "previousMeterConstantMultiplier": null, "previousMeterNumber": null, "provider": { "country": null, "id": "prv_36e14462-ea0a-11e0-b6bb-12313d2b6294", "isIntervalDataSupported": true, "isRealTimeCredentialValidationSupported": false, "name": "Pacific Gas and Electric (PG&E)" }, "serviceAddress": { "addressType": "FULL", "city": "ArcadiaVille", "country": null, "fullAddress": "Jane Doe, 123 Happy St, ArcadiaVille CA 96401", "postalCode": "93619-5349", "recipient": null, "state": "CA", "streetLine1": "123 Happy St", "streetLine2": null }, "serviceType": "electric", "serviceTypeClassification": "CORE", "site": null, "status": "INTERVALS_IN_PROGRESS", "statusDetail": "INTERVALS_EXTRACTION_IN_PROGRESS" } ] } ``` -------------------------------- ### Statements Response Example (JSON) Source: https://docs.arcadia.com/docs/api-quick-start-guide This JSON object represents a typical response from the Arcadia API when fetching statements. It includes pagination details and a list of statements, each containing account and meter data. ```json { "page": { "number": 0, "size": 0, "totalElements": 0, "totalPages": 0 }, "statements": [ { "accountData": [ { "accountId": "string", "accountNumber": "string", "amountDue": 0, "dueDate": "2024-12-12", "meterData": [ { "amountDue": 0, "currencyCode": "USD", "meterId": "string", "meterNumber": "string", "meterReadDate": "2024-12-12", "normalizedMeterNumber": "string", "normalizedPointOfDeliveryNumber": "string", "outstandingBalance": 0, "pointOfDeliveryNumber": "string", "previousReadDate": "2024-12-12", "serviceType": "string", "serviceTypeClassification": "CORE", "totalCharges": 0, "totalUsage": 0, "totalUsageUnit": "string" } ], "normalizedAccountNumber": "string", "outstandingBalance": 0, "provider": { "classification": "PUBLISHER", "id": "string", "name": "string", "publisherProviderAccountId": "string" }, "totalCharges": 0 } ], "amountDue": 0, "correlationIds": [ "string" ], "createdAt": "2024-12-12T22:33:14.975Z", "currencyCode": "USD", "dataIngestionMethod": "UTILITY_WEBSITE_ACCESS", "discoveredAt": "2024-12-12T22:33:14.975Z", "dueDate": "2024-12-12", "id": "string", "invoiceNumber": "string", "normalizedSummaryAccountNumber": "string", "outstandingBalance": 0, "periodEndDate": "2024-12-12", "periodStartDate": "2024-12-12", "provider": { "country": "string", "id": "string", "isIntervalDataSupported": true, "isRealTimeCredentialValidationSupported": true, "name": "string" }, "statementDate": "2024-12-12", "summaryAccountNumber": "string", "totalCharges": 0, "type": "BILL" } ] } ``` -------------------------------- ### GET /plug/intervals/meters/{Meter.id} Source: https://docs.arcadia.com/docs/api-quick-start-guide Fetches interval data for a specified meter. Use this endpoint to poll for data after activation or check its readiness. The response includes detailed interval readings, meter information, and timestamps. ```APIDOC ## GET /plug/intervals/meters/{Meter.id} ### Description Fetches interval data for a specified meter. Use this endpoint to poll for data after activation or check its readiness. The response includes detailed interval readings, meter information, and timestamps. ### Method GET ### Endpoint /plug/intervals/meters/{Meter.id} ### Parameters #### Path Parameters - **Meter.id** (string) - Required - The unique identifier of the meter for which to fetch interval data. #### Headers - **Arcadia-Version** (string) - Required - The API version, e.g., "2024-02-21". - **accept** (string) - Required - Specifies the expected response format, e.g., "application/json". - **authorization** (string) - Required - Bearer token for authentication, e.g., "Bearer {accessToken}". ### Request Example ```curl curl --request GET \ --url https://api.arcadia.com/plug/intervals/meters/{Meter.id} \ --header 'Arcadia-Version: 2024-02-21' \ --header 'accept: application/json' \ --header 'authorization: Bearer {accessToken}' ``` ### Response #### Success Response (200) - **correlationIds** (array) - A list of correlation IDs associated with the request. - **credentialIds** (array) - A list of credential IDs. - **earliestIntervalAt** (string) - The timestamp of the earliest interval data, formatted as ISO 8601. - **electricMeterMultiplier** (number) - A multiplier for electric meter readings. - **intervalsCreatedAt** (string) - The timestamp when interval data was created. - **intervalsUpdatedAt** (string) - The timestamp when interval data was last updated. - **latestIntervalAt** (string) - The timestamp of the latest interval data, formatted as ISO 8601. - **localTimezone** (string) - The local timezone of the meter. - **meterId** (string) - The unique identifier of the meter. - **meterNumber** (string) - The meter's identification number. - **providerId** (string) - The unique identifier of the data provider. - **providerName** (string) - The name of the data provider. - **readType** (string) - The type of reading (can be null). - **readings** (array) - An array of interval reading objects. - **startAt** (string) - The start timestamp of the interval. - **endAt** (string) - The end timestamp of the interval. - **direction** (string) - The direction of energy flow (e.g., 'net', 'import'). - **kwh** (number) - The energy consumption in kilowatt-hours. - **kw** (number) - The peak power demand in kilowatts (can be null). #### Response Example ```json { "correlationIds": [ "{correlationId}" ], "credentialIds": [ "crd_11111111-ca5c-dfc4-9dd3-ba7ee6dbebcb" ], "earliestIntervalAt": "2024-05-01T07:00:00.000+00:00", "electricMeterMultiplier": 1, "intervalsCreatedAt": "2024-12-12T23:24:50.000+00:00", "intervalsUpdatedAt": "2024-12-12T23:24:50.000+00:00", "latestIntervalAt": "2024-12-11T07:00:00.000+00:00", "localTimezone": "America/Los_Angeles", "meterId": "mtr_11111111-5614-d734-bf5e-867dc2fc6afd", "meterNumber": "1011195820", "providerId": "prv_36e14462-ea0a-11e0-b6bb-12313d2b6294", "providerName": "Pacific Gas and Electric (PG&E)", "readType": null, "readings": [ { "startAt": "2024-05-01T07:00:00.000+00:00", "endAt": "2024-05-01T08:00:00.000+00:00", "direction": "net", "kwh": 0.0744, "kw": 0.0744 }, { "startAt": "2024-05-01T07:00:00.000+00:00", "endAt": "2024-05-01T08:00:00.000+00:00", "direction": "import", "kwh": 0.0744, "kw": null }, { "startAt": "2024-05-01T08:00:00.000+00:00", "endAt": "2024-05-01T09:00:00.000+00:00", "direction": "net", "kwh": 0.0738, "kw": 0.0738 }, { "startAt": "2024-05-01T08:00:00.000+00:00", "endAt": "2024-05-01T09:00:00.000+00:00", "direction": "import", "kwh": 0.0738, "kw": null } ] } ``` #### Error Response (400) - **errors** (array) - An array of error objects. - **details** (object) - Contains specific error details. - **errorId** (string) - A unique identifier for the error. - **message** (string) - A human-readable error message indicating that interval data is not yet ready. - **param** (null) - Indicates no specific parameter is associated with this error. - **type** (string) - The type of error, e.g., "invalidParameter". #### Error Response Example ```json { "errors": [ { "details": { "errorId": "err_3jhGDQGoVICPV56566Hng" }, "message": "Interval data is not yet ready for Meter mtr_111111_1111_11111", "param": null, "type": "invalidParameter" } ] } ``` ``` -------------------------------- ### Pagination Examples Source: https://docs.arcadia.com/v2024-07-01-Synthetics-Beta/reference/pagination Provides practical examples of how to use pagination parameters in API requests. ```APIDOC ## Pagination Examples ### Description Examples demonstrating how to utilize pagination parameters in API requests. ### Request Example * Getting the second page of size 100: `https://api.arcadia.com/v2/utility/providers?size=100&page=1` * Sorting providers by 'providerName' ascending: `https://api.arcadia.com/v2/utility/providers?page=0&sort=providerName,asc` * Sorting a result set by two different fields: `https://api.arcadia.com/v2/utility/accounts?page=0&sort=providerName,asc&sort=accountNumber,desc` ``` -------------------------------- ### Access Token Response (JSON) Source: https://docs.arcadia.com/docs/api-quick-start-guide This is an example of a successful response when requesting an access token from the Arcadia API. It includes the 'access_token' which should be copied for subsequent API calls, along with token validity and type information. ```json { "access_token": "abcd_123", // Copy your access token for future steps "expires_in": 300, "refresh_expires_in": 0, "token_type": "Bearer", "not-before-policy": 0, "scope": "profile email" } ``` -------------------------------- ### Query Utility Providers Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/utility-cloud-api-quickstart Search for utility providers using RSQL queries. ```APIDOC ## GET /utility/providers ### Description Search for utility providers using RSQL (Rapidly Searchable Query Language) to filter results. ### Method GET ### Endpoint /utility/providers ### Parameters #### Query Parameters - **search** (string) - Required - An RSQL query string to filter providers. For example, `providerName==Virginia*` to find providers with 'Virginia' in their name. ### Request Example (Python) ```python providerquery = 'providerName==Virginia*' providers = requests.get( baseurl+'utility/providers?search='+providerquery, headers = headers ) ``` ### Response #### Success Response (200) - **providers** (array) - A list of matching utility providers, each with their details including a unique identifier. #### Response Example (Example response structure not provided in source text) ``` -------------------------------- ### Get Snowflake Organization and Account Names Source: https://docs.arcadia.com/v2024-07-01-Synthetics-Beta/docs/datahub-foundational-tables-getting-started-guide This SQL query retrieves your current Snowflake organization name and account name. This information is required by Arcadia to set up the Data Share for your account. ```sql select current_organization_name(), current_account_name(); ``` -------------------------------- ### Retrieve Sites Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/utility-cloud-api-quickstart Retrieves a list of sites, with options to filter by various criteria using RSQL. ```APIDOC ## GET /utility/sites ### Description Retrieves a list of sites. Supports filtering using RSQL for various fields like siteName. ### Method GET ### Endpoint `/utility/sites` ### Parameters #### Query Parameters - **search** (string) - Optional - RSQL query string to filter sites. For example, `siteName==Campus_`. ### Response #### Success Response (200) - **sites** (array) - A list of site objects, each containing site details. - **siteId** (string) - The unique identifier of the site. - **siteName** (string) - The name of the site. - **location** (string) - The location of the site. #### Response Example ```json { "sites": [ { "siteId": "siteXYZ", "siteName": "Main Campus", "location": "123 University Ave" } ] } ``` ``` -------------------------------- ### Get All Load Serving Entities (LSEs) Source: https://docs.arcadia.com/v2022-12-21-Signal/docs/quick-start Retrieves a list of all Load Serving Entities (LSEs) available in the system. This endpoint is useful for getting an overview of available utilities and their basic information. ```APIDOC ## GET /rest/v1/lses ### Description Retrieves a list of all Load Serving Entities (LSEs). ### Method GET ### Endpoint /rest/v1/lses ### Parameters #### Query Parameters - **fields** (string) - Optional - Specifies which fields to include in the response. For example, `fields=ext` to include extended fields. ### Request Example ``` GET https://api.genability.com/rest/v1/lses?fields=ext ``` ### Response #### Success Response (200) - **results** (array) - A list of LSE objects, each containing details about a utility. - **lseId** (integer) - The unique identifier for the Load Serving Entity. - **name** (string) - The name of the Load Serving Entity. - **lseCode** (string) - A code representing the Load Serving Entity. - **websiteHome** (string) - The website URL for the Load Serving Entity. - **offeringType** (string) - The type of offering provided by the LSE (e.g., 'Bundle'). - **ownership** (string) - The ownership type of the LSE (e.g., 'COOP'). - **serviceTypes** (string) - The types of services offered (e.g., 'ELECTRICITY'). - **totalRevenues** (number) - Total revenues associated with the LSE. - **totalSales** (number) - Total sales associated with the LSE. - **totalCustomers** (number) - Total customers served by the LSE. - **residentialServiceTypes** (string) - Residential service types. - **residentialRevenues** (number) - Residential revenues. - **residentialSales** (number) - Residential sales. - **residentialCustomers** (number) - Residential customers. - **commercialServiceTypes** (string) - Commercial service types. - **commercialRevenues** (number) - Commercial revenues. - **commercialSales** (number) - Commercial sales. - **commercialCustomers** (number) - Commercial customers. - **industrialServiceTypes** (string) - Industrial service types. - **industrialRevenues** (number) - Industrial revenues. - **industrialSales** (number) - Industrial sales. - **industrialCustomers** (number) - Industrial customers. - **transportationServiceTypes** (string) - Transportation service types. - **transportationRevenues** (number) - Transportation revenues. - **transportationSales** (number) - Transportation sales. - **transportationCustomers** (number) - Transportation customers. - **billingPeriodRepresentation** (object) - Information about the billing period representation. #### Response Example ```json { "status": "success", "count": 3, "type": "LoadServingEntity", "results": [ { "lseId": 100773, "name": "CleanPowerSF", "lseCode": "CPSF", "code": "", "websiteHome": "http://sfwater.org/index.aspx", "offeringType": "Bundle", "ownership": "COOP", "serviceTypes": "ELECTRICITY", "totalRevenues": 1, "totalSales": 1, "totalCustomers": 1, "residentialServiceTypes": "ELECTRICITY", "residentialRevenues": 1, "residentialSales": 1, "residentialCustomers": 1, "commercialServiceTypes": "ELECTRICITY", "commercialRevenues": 1, "commercialSales": 1, "commercialCustomers": 1, "industrialServiceTypes": "ELECTRICITY", "industrialRevenues": 1, "industrialSales": 1, "industrialCustomers": 1, "transportationServiceTypes": null, "transportationRevenues": 1, "transportationSales": 1, "transportationCustomers": 1, "billingPeriodRepresentation": { "fromDateOffset": 0, "toDateOffset": -1, "style": "InclusiveToDate" } } ], "pageCount": 25, "pageStart": 0 } ``` ``` -------------------------------- ### Example LSE Response Structure Source: https://docs.arcadia.com/v2022-12-21-Signal/docs/quick-start Illustrates the JSON structure of a response when requesting data for a single LSE. This example shows key fields like `lseId`, `name`, `code`, and `websiteHome`. ```JSON { "status": "success", "count": 1, "type": "LoadServingEntity", "results": [ { "lseId": 734, "name": "Pacific Gas & Electric Co", "code": "14328", "websiteHome": "http://www.pge.com/" }] } ``` -------------------------------- ### Create a New Site Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/utility-cloud-api-quickstart This endpoint facilitates the creation of new sites, which are used to organize and aggregate utility data based on real-world locations. Sites can be associated with meter-level service addresses. ```APIDOC ## POST /utility/sites ### Description Creates a new site to organize and aggregate utility data by location. ### Method POST ### Endpoint /utility/sites ### Parameters #### Request Body - **city** (string) - Required - The city of the site address. - **country** (string) - Required - The country of the site address. - **facilityType** (string) - Optional - The type of facility. - **postalCode** (string) - Required - The postal code of the site address. - **region** (string) - Optional - The region of the site address. - **siteCode** (string) - Optional - A custom code for the site. - **siteName** (string) - Required - The name of the site. - **siteNumber** (string) - Optional - A number for the site. - **subRegion** (string) - Optional - The sub-region of the site address. - **state** (string) - Required - The state of the site address. - **streetLine1** (string) - Required - The first line of the street address. - **streetLine2** (string) - Optional - The second line of the street address. ### Request Example ```json { "city": "yourcity", "country": "yourcountry", "facilityType": "", "postalCode": "yourzip", "region": "", "siteCode": "", "siteName": "yoursitename", "siteNumber": "", "subRegion": "", "state": "yourstate", "streetLine1": "yourstreet", "streetLine2": "" } ``` ### Response #### Success Response (201) - **siteId** (string) - The unique identifier for the newly created site. - **message** (string) - Confirmation message. #### Response Example ```json { "siteId": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "message": "Site created successfully." } ``` ``` -------------------------------- ### Submit Credentials Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/utility-cloud-api-quickstart Programmatically submit utility account credentials to Arcadia for processing. ```APIDOC ## POST /utility/credentials ### Description Submit utility account credentials to Arcadia for onboarding and management. Requires utility provider identifier and necessary access fields. ### Method POST ### Endpoint /utility/credentials ### Parameters #### Request Body - **correlationId** (string) - Required - An identifier to associate utility account credentials with a user account in a CRM or customer database. - **interactive** (boolean) - Required - Indicates if the credential submission requires interactive user confirmation. - **providerId** (string) - Required - The unique identifier for the utility provider. - **username** (string) - Required - The username for the utility web portal account. - **username2** (string) - Optional - Additional username field. - **username3** (string) - Optional - Additional username field. - **username4** (string) - Optional - Additional username field. - **password** (string) - Required - The password for the utility web portal account. - **password2** (string) - Optional - Additional password field. - **password3** (string) - Optional - Additional password field. - **password4** (string) - Optional - Additional password field. ### Request Example ```json { "correlationId": "CUST123", "interactive": true, "providerId": "yourproviderId", "username": "yourusername", "password": "yourpassword" } ``` ### Response #### Success Response (200) - **credentialId** (string) - URL of the created credential. - **responseUri** (string) - URI for challenge response if needed. - **created** (string) - Timestamp of credential creation. - **correlationId** (string) - The correlation ID provided during submission. - **eventType** (string) - The status event type (e.g., LOGIN_SUCCESS). #### Response Example ```json { "credentialId":"https://api.urjanet.com/utility/credentials/{yourcredentialID}", "responseUri":"https://api.urjanet.com/utility/credentials//{yourcredentialID}/challengeResponse", "created":"2023-0428T13:33:27.545+00:00", "correlationId":"{yourcorrelationID}", "eventType":"LOGIN_SUCCESS" } ``` ``` -------------------------------- ### Get List of Load Serving Entities (LSEs) Source: https://docs.arcadia.com/v2022-12-21-Signal/docs/quick-start Demonstrates how to make a GET request to the root endpoint for LSEs to retrieve a list of all instances. The response includes details for each LSE, such as ID, name, code, and website. ```HTTP GET /rest/v1/lses ``` -------------------------------- ### Create Sites Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/api-quick-start-guide Enables the creation of new sites, which represent real-world locations used for organizing and aggregating information. Sites can be associated with meter-level service addresses and have optional custom data fields. ```APIDOC ## POST /utility/sites ### Description Creates a new site to organize and aggregate information, potentially associating it with meter-level service addresses. ### Method POST ### Endpoint /utility/sites ### Parameters #### Request Body - **city** (string) - Optional - The city of the site. - **country** (string) - Optional - The country of the site. - **facilityType** (string) - Optional - The type of facility. - **postalCode** (string) - Optional - The postal code of the site. - **region** (string) - Optional - The region of the site. - **siteCode** (string) - Optional - A custom code for the site. - **siteName** (string) - Required - The name of the site. - **siteNumber** (string) - Optional - A number identifying the site. - **subRegion** (string) - Optional - The sub-region of the site. - **state** (string) - Optional - The state of the site. - **streetLine1** (string) - Required - The primary street address line for the site. - **streetLine2** (string) - Optional - The secondary street address line for the site. ### Request Example ```json { "city": "yourcity", "country": "yourcountry", "facilityType": "", "postalCode": "yourzip", "region": "", "siteCode": "", "siteName": "yoursitename", "siteNumber": "", "subRegion": "", "state": "yourstate", "streetLine1": "yourstreet", "streetLine2": "" } ``` ### Response #### Success Response (200) - **siteId** (string) - The unique identifier for the newly created site. #### Response Example ```json { "siteId": "generated-site-id" } ``` ``` -------------------------------- ### Example of getting statement data using Plug API Source: https://docs.arcadia.com/v2022-10-13/docs/plug-1 This example demonstrates how to retrieve statement data using the Plug API. It assumes you have already integrated with Connect and have the necessary user data. Note that not all fields are available for every utility. ```bash curl -X GET \ 'https://api.arcadia.com/v1/statements?client_user_id=12345' \ -H 'Authorization: Bearer YOUR_API_KEY' ``` -------------------------------- ### User Management API Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/utility-cloud-api-quickstart Manage user accounts within your Utility Cloud tenant, including creating new users and updating their roles. ```APIDOC ## POST /users ### Description Creates a new user account within the UC tenant. ### Method POST ### Endpoint `/users` ### Parameters #### Request Body - **accountEnabled** (boolean) - Required - Whether the account is enabled. - **autoGeneratePassword** (boolean) - Required - Whether to auto-generate a password. - **credentialsExpired** (boolean) - Required - Whether user credentials have expired. - **email** (string) - Required - The user's email address. - **name** (string) - Required - The user's full name. - **organization** (string) - Required - The ID of the organization the user belongs to. - **password** (string) - Required if `autoGeneratePassword` is false - The user's password. - **passwordConfirm** (string) - Required if `autoGeneratePassword` is false - Confirmation of the user's password. - **roles** (string) - Required - The ID of the user's role. - **username** (string) - Required - The user's unique username. ### Request Example ```json { "accountEnabled": true, "autoGeneratePassword": false, "credentialsExpired": false, "email": "youremail@domain.com", "name": "yourname", "organization": "yourorganizationID", "password": "yourpassword", "passwordConfirm": "yourpassword", "roles": "yourroleID", "username": "yourusername" } ``` ### Response #### Success Response (201) - Details of the created user account (structure not specified in source). #### Response Example ```json { "message": "User created successfully." } ``` ``` -------------------------------- ### GET /plug/statements Source: https://docs.arcadia.com/docs/api-quick-start-guide Fetches statements associated with a given correlation ID. This is useful for polling the API to list statements after credentials have been submitted. ```APIDOC ## GET /plug/statements ### Description Fetches statements associated with a given correlation ID. This is useful for polling the API to list statements after credentials have been submitted. ### Method GET ### Endpoint `https://api.arcadia.com/plug/statements?search=correlationIds=={correlationId}&page=0&size=20` ### Parameters #### Query Parameters - **search** (string) - Required - Used to filter statements by `correlationIds`. - **page** (integer) - Optional - The page number for pagination. - **size** (integer) - Optional - The number of items per page. #### Request Headers - **Arcadia-Version** (string) - Required - The version of the Arcadia API (e.g., `2024-02-21`). - **accept** (string) - Required - Specifies the accepted response format, typically `application/json`. - **authorization** (string) - Required - Bearer token for authentication (e.g., `Bearer {accessToken}`). ### Request Example ``` curl --request GET \ --url 'https://api.arcadia.com/plug/statements?search=correlationIds%3D%3D{correlationId}&page=0&size=20' \ --header 'Arcadia-Version: 2024-02-21' \ --header 'accept: application/json' \ --header 'authorization: Bearer {accessToken}' ``` ### Response #### Success Response (200) Returns a paginated list of statements. Each statement includes account data, meter data, and other relevant details. - **page** (object) - Pagination information. - **number** (integer) - Current page number. - **size** (integer) - Number of items per page. - **totalElements** (integer) - Total number of elements across all pages. - **totalPages** (integer) - Total number of pages. - **statements** (array) - An array of statement objects. - **accountData** (array) - Account-specific data. - **amountDue** (number) - The total amount due for the statement. - **correlationIds** (array of strings) - IDs associated with the statement's data correlation. - **createdAt** (string) - Timestamp when the statement was created. - **currencyCode** (string) - The currency code for amounts (e.g., `USD`). - **dataIngestionMethod** (string) - The method used for data ingestion. - **discoveredAt** (string) - Timestamp when the data was discovered. - **dueDate** (string) - The due date for the statement. - **id** (string) - The unique identifier for the statement. - **invoiceNumber** (string) - The invoice number. - **normalizedSummaryAccountNumber** (string) - Normalized account number for summary purposes. - **outstandingBalance** (number) - The outstanding balance for the statement. - **periodEndDate** (string) - The end date of the billing period. - **periodStartDate** (string) - The start date of the billing period. - **provider** (object) - Information about the data provider. - **statementDate** (string) - The date the statement was issued. - **summaryAccountNumber** (string) - Account number for summary purposes. - **totalCharges** (number) - The total charges on the statement. - **type** (string) - The type of the statement (e.g., `BILL`). #### Response Example ```json { "page": { "number": 0, "size": 0, "totalElements": 0, "totalPages": 0 }, "statements": [ { "accountData": [ { "accountId": "string", "accountNumber": "string", "amountDue": 0, "dueDate": "2024-12-12", "meterData": [ { "amountDue": 0, "currencyCode": "USD", "meterId": "string", "meterNumber": "string", "meterReadDate": "2024-12-12", "normalizedMeterNumber": "string", "normalizedPointOfDeliveryNumber": "string", "outstandingBalance": 0, "pointOfDeliveryNumber": "string", "previousReadDate": "2024-12-12", "serviceType": "string", "serviceTypeClassification": "CORE", "totalCharges": 0, "totalUsage": 0, "totalUsageUnit": "string" } ], "normalizedAccountNumber": "string", "outstandingBalance": 0, "provider": { "classification": "PUBLISHER", "id": "string", "name": "string", "publisherProviderAccountId": "string" }, "totalCharges": 0 } ], "amountDue": 0, "correlationIds": [ "string" ], "createdAt": "2024-12-12T22:33:14.975Z", "currencyCode": "USD", "dataIngestionMethod": "UTILITY_WEBSITE_ACCESS", "discoveredAt": "2024-12-12T22:33:14.975Z", "dueDate": "2024-12-12", "id": "string", "invoiceNumber": "string", "normalizedSummaryAccountNumber": "string", "outstandingBalance": 0, "periodEndDate": "2024-12-12", "periodStartDate": "2024-12-12", "provider": { "country": "string", "id": "string", "isIntervalDataSupported": true, "isRealTimeCredentialValidationSupported": true, "name": "string" }, "statementDate": "2024-12-12", "summaryAccountNumber": "string", "totalCharges": 0, "type": "BILL" } ] } ``` ``` -------------------------------- ### Upload Utility Statement Files Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/utility-cloud-api-quickstart Upload utility statement files programmatically via the API. ```APIDOC ## POST /utility/files ### Description Upload utility statement files (PDF format) when web portal access credentials are not available or preferred. ### Method POST ### Endpoint /utility/files ### Parameters #### Request Body - **files** (file) - Required - The PDF formatted utility statement file(s) to upload. ### Request Example (Python) ```python uploadfile = {'upload_file': open(‘yourfilename.pdf', rb')} newfile = requests.post(baseurl+'/utility/files', headers = headers, files=uploadfile) ``` ### Request Example (cURL) ```bash curl --location ' \ --header 'Content-Type: multipart/form-data' \ --header 'Authorization: Bearer ' \ --form 'files=@""' ``` ### Response #### Success Response (200) Details about the uploaded file(s) will be returned. Specific fields depend on the implementation. #### Response Example (Example response structure not provided in source text) ``` -------------------------------- ### Get Lookup Stats API Request Examples Source: https://docs.arcadia.com/v2022-12-21-Switch/reference/get-lookup-stats Provides example code for making the 'Get Lookup Stats' API request in various programming languages. These examples demonstrate how to format the request and handle the response. ```shell curl --request GET \ --url https://api.genability.com/rest/public/properties/hourlyPricingRealTimeERCOT/stats \ --header 'accept: application/json' ``` ```node // Node.js example (using fetch API) fetch('https://api.genability.com/rest/public/properties/hourlyPricingRealTimeERCOT/stats', { method: 'GET', headers: { 'accept': 'application/json' } }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); ``` ```ruby # Ruby example (using Net::HTTP) require 'net/http' require 'uri' uri = URI.parse('https://api.genability.com/rest/public/properties/hourlyPricingRealTimeERCOT/stats') request = Net::HTTP::Get.new(uri) request['accept'] = 'application/json' response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http| http.request(request) end puts response.body ``` ```php // PHP example (using cURL) $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'https://api.genability.com/rest/public/properties/hourlyPricingRealTimeERCOT/stats'); curl_setopt($curl, CURLOPT_HTTPHEADER, array('accept: application/json')); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($curl); if (curl_errno($curl)) { echo 'Error:' . curl_error($curl); } else { echo $response; } curl_close($curl); ``` ```python # Python example (using requests library) import requests url = 'https://api.genability.com/rest/public/properties/hourlyPricingRealTimeERCOT/stats' headers = {'accept': 'application/json'} response = requests.get(url, headers=headers) if response.status_code == 200: print(response.json()) else: print(f"Error: {response.status_code} - {response.text}") ``` -------------------------------- ### Create New Sites via API (Python) Source: https://docs.arcadia.com/v1.0-Utility-Cloud/docs/utility-cloud-api-quickstart This example shows how to create a new site using the Arcadia API with a Python script. It sends a POST request to the '/utility/sites' endpoint, providing site details such as city, country, postal code, and street information. ```python import requests import json sitefields = { "city": "yourcity", "country": "yourcountry", "facilityType": "", "postalCode": "yourzip", "region": "", "siteCode": "", "siteName": "yoursitename", "siteNumber": "", "subRegion": "", "state": "yourstate", "streetLine1": "yourstreet", "streetLine2": "" } baseurl = 'YOUR_BASE_URL' headers = {'Authorization': 'Bearer YOUR_TOKEN'} newsite = requests.post( baseurl+'utility/sites', headers=headers, data=json.dumps(sitefields) ) ```