# Assets Collects asset inventory data from the runZero platform. **Sync Type: Incremental** ## Prerequisites Before connecting Monad to runZero, you need: 1. An active runZero account with access to the target organization 2. The **Organization ID** (UUID) of the runZero organization you want to collect data from 3. One of the following credential types: - A runZero **Export API Token** (recommended for read-only data export), or - An **OAuth 2.0 Client ID and Client Secret** (for service-account-style access) ## Authentication runZero supports two authentication methods. Choose the one that best fits your organization's access model. ### Option A — API Token runZero Export API Tokens are scoped to export operations and are the simplest way to grant Monad read-only access. 1. Log in to the [runZero Console](https://console.runzero.com). 2. Navigate to **Account** > **API Tokens**. 3. Click **Generate Export Token** (or **Generate Account API Token** if broader access is required). 4. Copy the token and store it securely — it is only shown once. Required permission: the token must have at minimum **Export** access for the target organization. ### Option B — OAuth 2.0 Client Credentials 1. Log in to the [runZero Console](https://console.runzero.com). 2. Navigate to **Account** > **API Clients**. 3. Click **Create Client**. 4. Provide a descriptive name (e.g., `monad-assets`). 5. Copy the **Client ID** and **Client Secret** and store them securely. Required scope: the client must have read access to the assets export endpoint for the target organization. ### Finding your Organization ID 1. In the runZero Console, navigate to **Organizations**. 2. Click the target organization. 3. The UUID in the page URL (or displayed in the organization details) is your **Organization ID**. ## Configuration The following configuration defines the input parameters. ### Settings | Setting | Type | Required | Description | | ------- | ---- | -------- | ----------- | | Organization ID | string | Yes | The UUID of the runZero organization to collect asset inventory from. | | Authentication Method | one-of | Yes | The authentication method to use. Select **API Token** or **OAuth 2** and supply the corresponding credentials. | | Cron | string | Yes | Cron expression that controls how often the connector runs. Example: `0 0 * * *` for daily at midnight. | | API Rate Limit | object | No | Optional limit on the connector's outbound request rate to the source API. Leave blank to use the connector's default behavior. See [API Rate Limiting](../../../guides/rate-limiting) for the field format, limits, and how to choose a value. | ### Authentication Method — API Token | Field | Type | Required | Description | | ----- | ---- | -------- | ----------- | | API Token | secret | Yes | The runZero API token (Export Token or Account API Token). | ### Authentication Method — OAuth 2 | Field | Type | Required | Description | | ----- | ---- | -------- | ----------- | | Client ID | secret | Yes | The OAuth 2.0 client ID for the runZero API. | | Client Secret | secret | Yes | The OAuth 2.0 client secret for the runZero API. | ## Setup Walk-through 1. **Obtain credentials** — follow the Authentication section above to generate either an Export API Token or an OAuth 2.0 client. 2. **Find your Organization ID** — in the runZero Console navigate to **Organizations**, open the target organization, and copy the UUID. 3. **Create the input in Monad**: - Open your Monad workspace and navigate to **Inputs**. - Click **Add Input** and select **runZero — Assets**. 4. **Fill in the configuration**: - Paste the **Organization ID** UUID into the *Organization ID* field. - Under *Authentication Method*, choose **API Token** or **OAuth 2** and enter the corresponding secret value(s). - Set the *Cron* schedule to control how frequently the connector syncs (e.g., `0 0 * * *` for once daily). 5. **Save and test** — click **Test Connection**. Monad will call the runZero assets export endpoint and confirm the credentials are valid. 6. **Activate** — once the connection test passes, enable the input. Monad will begin paging through your runZero asset inventory on the configured schedule. ## Troubleshooting ### Common Issues 1. **Authentication Errors (401 / 403)** - Confirm the API Token or OAuth 2 credentials are correct and have not been revoked. - For API Tokens, verify the token has Export permission for the organization. - For OAuth 2, ensure the Client ID and Client Secret match exactly (no extra whitespace). - Regenerate credentials if you suspect they may have been compromised. 2. **Organization Not Found** - Verify the Organization ID is the correct UUID for the target organization. - Ensure the credentials used have access to that organization in runZero. 3. **Empty Results** - Confirm the target organization has assets recorded in the runZero Console. - Check the pipeline logs for any parse errors on the API response. 4. **Rate Limiting (429)** - Reduce the connector run frequency by updating the cron expression. - Check whether other processes are using the same API credentials concurrently. 5. **Invalid Cron Expression** - Ensure the cron expression is valid. Refer to [Cron Expression Syntax](https://crontab.guru/) for guidance. ## Related Articles - [runZero API Documentation](https://www.runzero.com/docs/leveraging-the-api/) - [runZero Export Tokens](https://help.runzero.com/docs/leveraging-the-api/#authentication) - [runZero Organizations](https://www.runzero.com/docs/organizations/) ## Sync frequency This input runs on a cron schedule (default hourly, `0 * * * *`), which you can configure on the pipeline. See [Input Sync Frequency](../../guides/sync-frequency) for details.