# Arcadia MCP connector

The Arcadia connector brings utility accounts, statements, payments, and the credentials behind them into Claude, ChatGPT, Cursor, or any MCP client, so each person can ask about live billing records inside their own Arcadia access.

Source: https://elaichi.ai/connectors/arcadia/

## Facts

| | |
| --- | --- |
| Application | Arcadia |
| Category | BI |
| AI tools | 114 |
| Authentication | App credentials |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 114 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Arcadia is connected

- List Arcadia accounts with failed payments this month.
- Summarize plug credential events from the last seven days.
- Which Arcadia accounts have no payments recorded yet?

## Connect Arcadia in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Arcadia.
2. Optionally set Share with, then press Connect.
3. Paste your Arcadia app credentials. Arcadia authenticates the app rather than a person. One person supplies the credentials once, and everyone else works through Share with.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Arcadia tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Arcadia to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Arcadia to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Arcadia to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Arcadia to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Arcadia tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Arcadia through Elaichi

### Reconcile utility payments against statements

Finance. Pull the latest statements and payments for a set of utility accounts and check that every bill landed and every payment cleared before month-end close.

### Gather usage data for carbon reporting

Sustainability. List the accounts and statement details behind each site and assemble the figures a quarterly emissions report needs without logging into every utility portal.

### Fix a utility login that stopped syncing

Operations. See which utility credentials have gone stale, generate a fresh connect link for the account owner, and trigger a refresh once they have signed in again.

### Check every site's account is connected

Facilities. Count the utility accounts under management, spot any site that is missing, and request a download of account details for the ones that need review.

### Export billing history for a dashboard

Analytics. Request a download of account and statement data for a group of properties and hand it to the reporting team as a clean starting file.

### Answer a customer question about a bill

Customer success. Look up the customer's utility account, find the statement they are asking about, and confirm the payment status while they are still on the call.

## Frequently asked questions

### How do I connect Arcadia to Claude?

Connect Arcadia in Elaichi first by entering the app credentials Arcadia already gives your organization. There is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in with your Elaichi account and Arcadia is available in your next conversation.

### Does Arcadia work with ChatGPT and Cursor as well as Claude?

Yes. Once Arcadia is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Arcadia once and every client picks it up.

### What can an AI agent actually do with my Arcadia data?

With Arcadia connected, an agent can list your utility accounts and their details, pull statements and payments, check how many accounts are connected, and request a download of account data. It can also see which utility credentials need attention, create a connect link for someone to sign in again, and trigger a refresh. Because Arcadia exposes many actions, short concrete asks such as "show unpaid statements for the Denver sites" work better than long paragraphs.

### Does connecting Arcadia give the AI every account in my organization?

No. The agent only sees the Arcadia accounts, statements, and payments that the person who signed in can already see in Arcadia. Elaichi can narrow that further by team or by action, but it can never widen what Arcadia itself allows.

### Can my team share one Arcadia connection?

Yes. One person connects Arcadia in Elaichi and shares the connection with a team, and nobody else ever handles the Arcadia app credentials. Each teammate still signs in to Elaichi as themselves, so every request against Arcadia is logged under the person who made it.

### Can I stop an agent from deleting or changing things in Arcadia?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Arcadia accounts and statements while blocking anything that deletes a resource, disables an account, or edits a credential. A blocked action is never shown to Claude, ChatGPT, or any other client, so no prompt can reach it.

### What happens to an Arcadia connection when someone leaves?

Offboarding a person in Elaichi ends their access to Arcadia at once, across every client they used. A shared Arcadia connection keeps working for everyone else on the team. If you disconnect Arcadia in Elaichi, it disappears from Claude, ChatGPT, Cursor, and every other client in one step.

## All 114 Arcadia tools

Every tool below is callable through https://api.elaichi.ai/mcp once Arcadia is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Create a Arcadia oauth 2 token** (Create). Create an Arcadia access token using client credentials. Returns: access_token, token_type, expires_in. Tokens are valid for one hour. Required: client_id, client_secret, grant_type (must be "client_credentials").
- **List all Arcadia accounts details** (List). List detailed accounts in the Arcadia system. Returns per-account fields including id, accountNumber, status, statusDetail, provider, createdAt, lastModifiedAt, meterCount, serviceTypes, gapSummary, and more. Supports optional search and globalSearch query filters for narrowing results.
- **Create a Arcadia accounts download** (Create). Initiate an account statements download in arcadia as step 1 of a 2-step process. Prepares a CSV file containing high-level summary information for accounts, statements, and associated metadata, then returns a URL to retrieve the generated file via a subsequent GET request. Returns: url.
- **List all Arcadia details** (List). Retrieve a detailed account record from arcadia by account ID. Returns the detailed account object with account-specific fields; consult the arcadia API documentation for the full field-level breakdown. Required: account_id.
- **Arcadia details list 2** (List). Retrieve a detailed statement record from arcadia by statement ID. Returns the detailed statement object with statement-specific fields; consult the arcadia API documentation for the full field-level breakdown. Required: statement_id.
- **Arcadia details list 3** (List). Retrieve a specific detailed version of an arcadia statement. Returns the detailed statement version object with statement-specific fields; consult the arcadia API documentation for the full field-level breakdown. Required: statement_id, version_id.
- **List all Arcadia payments** (List). List payments for an arcadia account. A payment is a transaction made by the account holder that decreases the account balance. Returns: id, amount, currency, paymentDate, createdAt. Required: account_id.
- **List all Arcadia plug credentials** (List). List all Arcadia plug credentials in the system. Returns: credentialId, status, isActive, isAccessible, isCustomerActionRequired, username, provider, createdAt, lastModifiedAt, totalAccounts, accountIds, siteIds. Supports field-level filtering via search and full-text filtering via globalSearch.
- **Create a Arcadia plug credential** (Create). Create a new Arcadia plug credential for a utility provider. Returns: credentialId, status, isActive, isAccessible, username, provider, createdAt, accountIds, totalAccounts. Required: providerId, username, password.
- **Get single Arcadia plug credential by ID** (Get). Retrieve a single Arcadia plug credential by id. Returns: credentialId, status, isActive, isAccessible, isCustomerActionRequired, username, provider, createdAt, lastModifiedAt, accountIds, siteIds, totalAccounts. Required: id.
- **Update a Arcadia plug credential by ID** (Update). Update an existing Arcadia plug credential by id. Returns: credentialId, status, isActive, username, provider, createdAt, lastModifiedAt, accountIds, totalAccounts. Required: id. At least one body field must be provided.
- **Arcadia plug credentials list events** (List). List the event history for an Arcadia plug credential, such as when it was created and by whom. Returns: eventType, fieldName, createdAt. Required: credential_id.
- **Create a Arcadia credentials encoded connect URL** (Create). Generate an encoded Arcadia Connect submission URL that prevents parameter tampering and can be shared with users to track credential submissions. Returns: url. Optionally supply correlationId to tag credentials submitted through the link and isCreatorAttributed to attribute the link creator as createdBy on those credentials. Generated URLs expire after 30 days.
- **List all Arcadia counts** (List). Get the count of associated account, meter, and statement resources obtained by a specific credential in arcadia. Returns: accounts, meters, statements. Required: credential_id.
- **Arcadia counts list 2** (List). Get the count of associated account, meter, and statement resources obtained by a specific file in arcadia. Returns: accounts, meters, statements. Required: file_id.
- **Update a Arcadia disable resource by ID** (Update). Disable an Arcadia credential along with its associated accounts. The credential must have no running jobs before it can be disabled. Returns: id, attributes. Required: credential_id.
- **Create a Arcadia new statement** (Create). Generate a new statement for a sandbox credential in arcadia. Triggers statement generation for the specified credential; applicable only in sandbox mode. Returns a 202 Accepted response with no body on success. Required: credential_id.
- **Update a Arcadia one time passcode by ID** (Update). Submit a one-time passcode for an arcadia credential's current MFA verification job after selecting a multi-factor authentication method. Returns: id, attributes (credential fields per arcadia's PublicCredentialResource schema). Required: credential_id, oneTimePasscode.
- **List all Arcadia passwords** (List). Retrieve sensitive credential passwords for a given credential in arcadia. Returns the credential secrets object including id, password, and credential_id for the specified credential. Required: credential_id.
- **Create a Arcadia refresh** (Create). Initiate an MFA session refresh for an Arcadia credential. Starts a background job that logs in to the credential so its MFA session can be refreshed; only supported for Providers that Arcadia has MFA support for. Returns an empty 202 Accepted response on success. Required: credential_id.
- **List all Arcadia refresh URLS** (List). Generate an Arcadia Connect URL that allows a user to refresh their multi-factor authentication (MFA) session for a specified credential. The generated URL is valid for 72 hours. Returns: url. Required: credential_id.
- **Delete a Arcadia resource by ID** (Delete). Delete a Credential in Arcadia along with its associated Accounts, Meters, and Statements resources; this action is permanent and cannot be recovered. Returns the deletion log including id, which can be used to poll the deletion status. Required: credential_id.
- **Arcadia resources delete 2** (Delete). Delete a File in Arcadia along with its associated Accounts, Meters, and Statements resources; this action is permanent and cannot be recovered. Returns the deletion log including id, which can be used to poll the deletion status. Required: file_id.
- **List all Arcadia update URLS** (List). Generate a Connect URL in Arcadia that allows a user to update their password for a specified credential. Returns: url (the generated Connect URL, valid for 72 hours). Required: credential_id.
- **Update a Arcadia verification method by ID** (Update). Submit the MFA verification method for a credential in arcadia, selecting how multi-factor authentication should be completed for the credential's current job. Returns the updated credential resource including id. Required: credential_id.
- **Get single Arcadia plug deletion log by ID** (Get). Get a deletion log entry in arcadia by id, returning the details of a specific deletion request after it has been performed. The full response shape is defined by arcadia's PublicDeletionLogResource schema; consult the upstream arcadia docs for the complete field-level breakdown. Required: id.
- **List all Arcadia plug discovered statements** (List). List discovered statements in Arcadia. Returns: id, statementId, status, statementDate, periodStartDate, periodEndDate, accountIds, credentialIds, and provider details. Supports filtering via search or globalSearch.
- **Get single Arcadia plug discovered statement by ID** (Get). Retrieve a single discovered statement from Arcadia by id. Returns: id, statementId, status, statementDate, periodStartDate, periodEndDate, accountIds, credentialIds, invoiceNumber, hasValidAccountStatus, dataIngestionMethod, and provider details. Required: id.
- **List all Arcadia sources** (List). Download the source file for a discovered statement in arcadia. Returns a binary PDF file stream whose content is the raw source document. Required: discovered_statement_id.
- **Arcadia sources list 2** (List). Stream a prepared download in arcadia as the second step of a 2-step process; returns accounts, meters, statements, or associated metadata as CSV or JSON when ready. Required: download_request_webhook_id (formed by appending the token from the first-step prepare-download response to the downloadId without any space).
- **Arcadia sources list 3** (List). Download the source PDF for a specific file in arcadia. Returns a binary file stream containing the raw source document. Required: file_id.
- **Arcadia sources list 4** (List). Download the source file for a specific statement in arcadia; the file is typically a structured PDF or a PDF rendering of a portion of the utility website. Returns a binary PDF file stream. Required: statement_id.
- **List all Arcadia versions** (List). List all versions of a specific Discovered Statement in arcadia. Returns a paged collection of discovered statement versions; each record includes id. Required: discovered_statement_id.
- **Arcadia versions list 2** (List). Retrieve a specific version of a Discovered Statement in arcadia. Returns: id. Required: discovered_statement_id, discovered_statement_version_id.
- **Arcadia versions list 3** (List). List all versions of a specific Statement in arcadia. Returns a paged collection of statement version summaries; each record includes id. Required: statement_id.
- **Get single Arcadia version by ID** (Get). Retrieve a specific version of a Statement in arcadia. Returns: id. Required: statement_id, id.
- **Create a Arcadia downloads CSV** (Create). Create a CSV download request in arcadia that generates a report for a specified entity type (Account and Statement Gap, Credential, File, Meter, Site, or Statement). Returns the download request resource including id, status, entityType, and downloadMethod. When downloadMethod is IN_BROWSER, use the id from the response to poll the Get DownloadRequest endpoint to retrieve the file. Required: entityType.
- **Get single Arcadia plug download by ID** (Get). Get a specific download request in arcadia by its downloadRequestWebhookId. Returns the download request object including id. Required: id (constructed by appending the authentication token from the initial step to the downloadId with no space in between).
- **List all Arcadia plug expected accounts** (List). List expected accounts in Arcadia. Returns: id, expectedAccountNumber, normalizedExpectedAccountNumber, providerId, providerName. Optionally filter results using search (by expectedAccountNumber, normalizedExpectedAccountNumber, providerId, or providerName) or globalSearch.
- **Create a Arcadia plug expected account** (Create). Create a new expected account in Arcadia. Returns: id, expectedAccountNumber, normalizedExpectedAccountNumber, providerId, providerName. Required: expectedAccountNumber, providerId.
- **List all Arcadia plug files** (List). List utility statement PDF files in Arcadia that have been uploaded for OCR processing. Returns: fileId, fileName, status, statusDetails, createdAt, organizationId, transferMethod, correlationId, accountNumbers, statementId, discoveredStatementId, provider. Filter with `search` (supports accountNumbers, correlationId, status, and more) or `globalSearch` query parameters.
- **Create a Arcadia plug file** (Create). Upload one or more utility statement PDF files to Arcadia for OCR processing. Returns: fileId, fileName, status, createdAt, organizationId, transferMethod, correlationId, accountNumbers. Required: files (multipart/form-data). Maximum 75 files per upload; combined size must be under 1 GB; each file must contain a single statement.
- **Get single Arcadia plug file by ID** (Get). Retrieve the details of a specific Arcadia file by id. Returns: fileId, fileName, status, statusDetails, createdAt, organizationId, correlationId, transferMethod, accountNumbers, normalizedAccountNumbers, statementId, discoveredStatementId, provider. Required: id.
- **Update a Arcadia plug file by ID** (Update). Update an Arcadia file by id. Currently only the correlationId field can be updated. Returns: fileId, fileName, status, statusDetails, createdAt, organizationId, correlationId, transferMethod, accountNumbers, statementId, discoveredStatementId, provider. Required: id.
- **Arcadia plug files list events** (List). List the event history for an Arcadia file, such as when it was created and by whom. Returns: eventType, fieldName, createdAt for each event. Supports filtering via `search` (searchable fields: createdAt, eventType, fieldName). Required: file_id.
- **Get single Arcadia intervals meter by ID** (Get). Get utility-provided electric interval readings for a specific meter in Arcadia. Returns time-series energy data for granular analysis (solar/storage modelling, Demand Response validation) covering up to 1 year of historical data. Returns: meterId, intervals. Required: id. Optionally filter the range with startAt and endAt; each window spans at most 1 year.
- **List all Arcadia plug meters** (List). List Arcadia meters retrieved from utility providers using submitted credentials. Returns: id, meterNumber, status, serviceType, providerId, siteId, accountId, createdAt. Use `search` to filter by over 50 fields including accountNumber, siteId, serviceType, and more.
- **Create a Arcadia plug meter** (Create). Create an Arcadia meter for providers supporting intervals third-party portals for indirect account access. The end user receives an email to approve provider access before Arcadia can read data. Returns: id, meterNumber, status, serviceType, providerId, siteId, accountId.
- **Get single Arcadia plug meter by ID** (Get). Retrieve a specific Arcadia meter by id. Returns the meter record including id, meterNumber, status, serviceType, providerId, siteId, accountId, serviceAddress, and more. If the associated account is not activated, limited data is returned. Required: id.
- **Update a Arcadia plug meter by ID** (Update). Fully replace an Arcadia meter's fields using PUT; all fields must be provided for a complete update. Supports up to 10 custom data fields (customData1–customData10) for tying meters back to records in your own system. Returns: id, meterNumber, status, serviceType, siteId, customData1. Required: id.
- **Arcadia plug meters update 2** (Update). Partially update an Arcadia meter by id using PATCH. Supports up to 10 custom data fields (customData1–customData10) for tying meters back to records in your own system. Returns: id, meterNumber, status, serviceType, siteId, customData1. Required: id.
- **Arcadia plug meters list events** (List). List the event history for an Arcadia meter, showing when changes occurred and who triggered them. Returns: createdAt, eventType, fieldName. Required: meter_id.
- **Arcadia plug meters partial update** (Update). Partially update an Arcadia meter by id using PATCH. Supports up to 10 custom data fields (customData1–customData10) for tying meters back to records in your own system. Returns: id, meterNumber, status, serviceType, siteId, customData1. Required: id.
- **Create a Arcadia downloads interval** (Create). Prepare a meter intervals CSV download in arcadia. Initiates the first step of a 2-step download process: the response provides a url that can be used with a subsequent GET request to stream the generated CSV file. Returns: url. Required: meter_ids. Maximum 500 meter IDs per request.
- **Arcadia downloads intervals create 2** (Create). Prepare a site meter intervals CSV download in arcadia grouped by site. Initiates the first step of a 2-step download process: the response provides a url that can be used with a subsequent GET request to stream the generated CSV file. Returns: url. Required: site_ids. Maximum 500 meters per request.
- **Create a Arcadia downloads usage** (Create). Prepare an arcadia meter usage CSV download by submitting up to 500 meter IDs. This first step accepts the meter IDs and returns a URL to use in a subsequent GET request to stream the generated CSV file. Returns: url. Required: meter_ids. Max 500 meter IDs per request.
- **Arcadia downloads usages create 2** (Create). Prepare an arcadia sites usage CSV download by submitting up to 500 site IDs. This first step accepts the site IDs and returns a URL to use in a subsequent GET request to stream the generated CSV file. Returns: url. Required: site_ids. Max 500 site IDs per request.
- **Get single Arcadia normalized intervals meter by ID** (Get). Get normalized 15-minute interval data for a specific meter in Arcadia. Returns the interval data object for the meter, including meterId, startAt, endAt, and intervals (array of normalized 15-minute energy readings). Required: id. The API returns up to 1 year of data per request; use startAt and endAt to scope the range.
- **List all Arcadia plug organizations** (List). Retrieve the Arcadia organization details. Returns: name, accountCustomData, meterCustomData (the organization name and all account- and meter-level custom data field names configured for your org).
- **Update a Arcadia plug organization by ID** (Update). Set organization custom data field names in Arcadia via a full PUT replacement — all fields must be provided to ensure a complete update. Returns: name, accountCustomData, meterCustomData. Supports up to 25 account-level and 10 meter-level custom data fields.
- **Arcadia plug organizations update 2** (Update). Update organization custom data field names in Arcadia. Returns: name, accountCustomData, meterCustomData. Supports up to 25 account-level and 10 meter-level custom data fields.
- **Arcadia plug organizations partial update** (Update). Partially update organization custom data field names in Arcadia. Returns: name, accountCustomData, meterCustomData. Supports up to 25 account-level and 10 meter-level custom data fields.
- **List all Arcadia organization events** (List). List organization events in arcadia, returning the history of changes made to your organization's custom data fields. Returns: createdAt, createdBy, eventType, fieldName, newValue, oldValue. Supports filtering via search or globalSearch, and sorting by any event field.
- **List all Arcadia plug sites** (List). List all Arcadia sites available in your organization. Returns site records including id, siteName, city, state, postalCode, createdAt, accountIds, and meterIds, along with building and HVAC metadata. Optionally narrow results using search or globalSearch query parameters.
- **Create a Arcadia plug site** (Create). Create a new Arcadia site for grouping credentials, accounts, meters, and statements by location or logical grouping. Returns the created site object including id, siteName, city, state, postalCode, createdAt, accountIds, meterIds, and building/HVAC metadata.
- **Get single Arcadia plug site by ID** (Get). Retrieve a single Arcadia site by id. Returns the full site object including id, siteName, city, state, postalCode, streetLine1, createdAt, accountIds, meterIds, and building/HVAC metadata. Required: id.
- **Update a Arcadia plug site by ID** (Update). Fully update an Arcadia site by id using PUT. All fields must be provided to ensure a complete replacement of the existing resource. Returns the updated site object including id, siteName, city, state, postalCode, createdAt, accountIds, meterIds, and building/HVAC metadata. Required: id.
- **Arcadia plug sites update 2** (Update). Partially update an Arcadia site by id using PATCH; only the provided fields are modified. Returns the updated site object including id, siteName, city, state, postalCode, createdAt, accountIds, meterIds, and building/HVAC metadata. Required: id.
- **Delete a Arcadia plug site by ID** (Delete). Delete an Arcadia site by id. Does not delete related entities, but removes their references to the deleted site (e.g. assigned meters become unassigned). Returns a deletion log object with id that can be used to poll deletion status via the deletion log endpoint. Required: id.
- **Arcadia plug sites list events** (List). List the event history for a specific Arcadia site, such as when the site was created or modified. Returns event records including eventType, fieldName, and createdAt. Optionally filter by createdAt, eventType, or fieldName using the search parameter. Required: site_id.
- **Arcadia plug sites partial update** (Update). Partially update an Arcadia site by id using PATCH; only the provided fields are modified. Returns the updated site object including id, siteName, city, state, postalCode, createdAt, accountIds, meterIds, and building/HVAC metadata. Required: id.
- **Update a Arcadia meter by ID** (Update). Add meters to an Arcadia site by associating a non-empty list of meter IDs with the specified site. Returns a paged list of meter objects including id. Required: site_id, meterIds.
- **Delete a Arcadia meter by ID** (Delete). Remove meters from an Arcadia site by disassociating a non-empty list of meter IDs; the meters themselves are not deleted, only the site association is removed. Returns an empty 200 response on success. Required: site_id, meterIds.
- **List all Arcadia plug statements** (List). List statements in Arcadia. Returns: id, accountIds, amountDue, statementDate, periodStartDate, periodEndDate, totalCharges, outstandingBalance, type, versionId, and isLatestVersion. Does not include line item charges or usages. Supports optional search and globalSearch query parameters.
- **Get single Arcadia plug statement by ID** (Get). Retrieve a single Arcadia statement by id. Returns: id, accountIds, amountDue, statementDate, periodStartDate, periodEndDate, totalCharges, outstandingBalance, type, versionId, isLatestVersion, providerId, dueDate, and more. Required: id.
- **List all Arcadia statements details** (List). List detailed statements in the Arcadia system. Returns: id, statementDate, periodStartDate, periodEndDate, totalCharges, amountDue, outstandingBalance, dueDate, invoiceNumber, type, providerId, versionId, isLatestVersion, hasValidAccountStatus, createdAt, lastModifiedAt, and related account, meter, and site identifiers. Supports field-level filtering via search and globalSearch.
- **Create a Arcadia statements download** (Create). Initiate a statement CSV download in arcadia as the first step of a two-step process — submits statement IDs to prepare the file and returns a URL for use in the subsequent download step. Returns: url. Maximum of 500 statement IDs per request; make multiple requests to download more.
- **List all Arcadia webhooks** (List). List all webhooks in Arcadia. Returns: id, eventType, status, webhookUrl, createdAt, lastAttemptedSendAt, nextScheduledSendAt, numberOfAttempts, resource, message, createdBy, and lastModifiedBy. Webhooks are automatically deleted 30 days after their last send attempt (RTCV and MFA webhooks are deleted sooner). Supports filtering with the search query parameter.
- **Get single Arcadia webhook by ID** (Get). Retrieve a single Arcadia webhook by id. Returns: id, eventType, status, webhookUrl, message, resource, numberOfAttempts, createdAt, lastAttemptedSendAt, nextScheduledSendAt, createdBy, and lastModifiedBy. Required: id.
- **Create a Arcadia resend** (Create). Resend a webhook in arcadia by asynchronously rescheduling it to be sent to the current webhook URL configured for your organization. Returns the webhook object including id and url. Required: webhook_id.
- **List all Arcadia plug providers** (List). List all Providers available in the Arcadia system. Returns: id, name, country, region, website, isHistorySupported, isMultiFactorAuthenticationSupported, isInstantIntervalsSupported, and nested intervals, statements, and multiFactorAuthentication support objects. Optionally filter results using search or globalSearch.
- **Get single Arcadia plug provider by ID** (Get). Retrieve a single Arcadia Provider by id. Returns: id, name, country, region, website, isHistorySupported, isMultiFactorAuthenticationSupported, isInstantIntervalsSupported, and nested intervals, statements, and multiFactorAuthentication support objects. Required: id.
- **List all Arcadia account details** (List). List details for a specific account in arcadia. Returns: accountId, isStatementsProductActive. Required: account_id.
- **List all Arcadia account payments** (List). List payments associated with a specific arcadia account. Returns payment records including id. Required: account_id.
- **List all Arcadia credential counts** (List). List counts for a specific Arcadia credential, returning aggregated account totals associated with it. Returns: credential_id, accounts, active_accounts. Required: credential_id.
- **Update a Arcadia credential disable resource by ID** (Update). Disable resources associated with a specific Arcadia credential. Returns an empty 204 response on success. Required: credential_id.
- **Create a Arcadia credential new statement** (Create). Create a new statement request for a credential in Arcadia, triggering retrieval of updated utility statements for that credential. Returns: type, payload (containing utilityCredentialId on submission or status on completion). Required: credential_id.
- **Update a Arcadia credential one time passcode by ID** (Update). Update the one-time passcode associated with a specific Arcadia credential. Required: credential_id. Returns an empty 204 response on success.
- **List all Arcadia credential passwords** (List). List passwords associated with a given Arcadia credential. Returns id and attributes for each password record. Required: credential_id.
- **Create a Arcadia credential refresh** (Create). Refresh an Arcadia credential by credential ID, triggering re-validation or re-fetching of utility account data. Returns an empty 204 response on success. Required: credential_id.
- **List all Arcadia credential refresh URLS** (List). Get the refresh Connect URL for an existing Arcadia credential, enabling re-authentication or re-linking of the credential via the Connect flow. Returns: url. Required: credential_id.
- **Delete a Arcadia credential resource by ID** (Delete). Delete resources associated with a credential in Arcadia. Returns an empty 204 response on success. Required: credential_id.
- **List all Arcadia credential update URLS** (List). List the update URL for a specific arcadia credential. Returns: url. Required: credential_id.
- **Update a Arcadia credential verification method by ID** (Update). Update the verification method for an Arcadia credential identified by credential_id. Returns: type, payload (containing utilityCredentialId on submission, or status of LOGIN_SUCCESS or PENDING on completion). Required: credential_id.
- **List all Arcadia discovered statement sources** (List). List source records associated with a discovered statement in Arcadia. Returns source objects including id and provider-specific attributes for the given statement. Required: discovered_statement_id.
- **List all Arcadia discovered statement versions** (List). List all versions of a discovered statement in Arcadia. Returns: id, discovered_statement_id, version. Required: discovered_statement_id.
- **Get single Arcadia discovered statement version by ID** (Get). Get a single version of a discovered statement in Arcadia by id. Returns: id, discovered_statement_id, version. Required: discovered_statement_id, id.
- **List all Arcadia download sources** (List). Poll for the prepared CSV download source for an Arcadia download request. Returns a streamable CSV file when the download is ready (HTTP 200), or a 202 response while the file is still being prepared — continue polling until a 200 is received. Required: download_request_webhook_id.
- **Create a Arcadia download CSV** (Create). Create a CSV download request for meter-level usage data across a selection of sites in Arcadia. Returns: url (extract the id segment from the url and pass it to the Stream Download endpoint to poll for or retrieve the completed file). Required: meterIds. Maximum 500 meterIds per request; submit multiple requests for larger datasets.
- **List all Arcadia file counts** (List). List count statistics for a specific file in arcadia, summarizing the bulk file processing results. Returns: total, errors, warnings. Required: file_id.
- **Delete a Arcadia file resource by ID** (Delete). Delete resources associated with a specific file in arcadia. Returns an empty 204 response on success. Required: file_id.
- **List all Arcadia file sources** (List). List source records associated with a file in arcadia. Returns the source record object with content-specific fields whose shape depends on the file type. Required: file_id.
- **Create a Arcadia meter downloads interval** (Create). Create a download request for meter-level interval usage data in Arcadia. Returns: url (the polling URL used to stream the resulting CSV via the Stream Download endpoint). Required: meterIds. Maximum of 500 meterIds per request; submit multiple requests for larger datasets.
- **Create a Arcadia meter downloads usage** (Create). Create a meter-level usage data download request in Arcadia for a set of meters. Returns: url (the download request URL from which you extract the ID to poll the Stream Download endpoint until the CSV is ready). Required: meterIds. Maximum of 500 meter IDs per request; make multiple requests for larger sets.
- **Create a Arcadia site downloads interval** (Create). Create a download request for site meter usage data intervals in Arcadia. Returns: url (a link to the generated download resource, whose embedded ID can be used with the Stream Download endpoint to poll for readiness). Required: meterIds. Maximum 500 meter IDs per request; submit multiple requests for larger datasets.
- **Create a Arcadia site downloads usage** (Create). Create a site-level usage download request in Arcadia to prepare a CSV file of meter usages across one or more sites. Returns: url (extract the ID segment from this URL to use with the Stream Download endpoint for polling; the file will also be emailed when ready). Required: siteIds.
- **Update a Arcadia site meter by ID** (Update). Update meters associated with a specific site in arcadia. Required: site_id.
- **Delete a Arcadia site meter by ID** (Delete). Delete meters associated with a specific site in arcadia. Returns an empty 204 response on success. Required: site_id.
- **List all Arcadia statement details** (List). List detail line items for an Arcadia statement. Returns: id. Required: statement_id.
- **List all Arcadia statement sources** (List). List source records associated with a specific statement in Arcadia. Returns: id, statement_id. Required: statement_id.
- **List all Arcadia statement version details** (List). List detail records for a specific version of an Arcadia statement. Returns: id. Required: statement_id, version_id.
- **List all Arcadia statement versions** (List). List all versions of a statement in Arcadia. Returns: id, statement_id. Required: statement_id.
- **Get single Arcadia statement version by ID** (Get). Get a specific version of a statement in Arcadia by id. Returns: id, statement_id. Required: statement_id, id.
- **Create a Arcadia webhook resend** (Create). Trigger a resend of a webhook event in Arcadia for the specified webhook. Returns an empty 204 response on success. Required: webhook_id.
