Authentication
The Hubbl API uses HTTP Basic Authentication to secure all API requests. You must include your API credentials in the Authorization header of every request.
Getting your API key
API keys are created in the Hubbl app and require an account admin. Open Settings (the Account Settings page), scroll to the API Keys section, and click Create API Key to generate your API Key ID and API Key Secret.
Credentials
- Username: Your API Key ID
- Password: Your API Key Secret
Example Request
Here is how to authenticate using cURL:
curl -X GET "https://api.hubbl.com/v1/orgs/{orgId}" \
-u "YOUR_API_KEY_ID:YOUR_API_KEY_SECRET"Or using the Authorization header directly:
curl -X GET "https://api.hubbl.com/v1/orgs/{orgId}" \
-H "Authorization: Basic BASE64_ENCODED_CREDENTIALS"Note: Replace BASE64_ENCODED_CREDENTIALS with the Base64-encoded value of YOUR_API_KEY_ID:YOUR_API_KEY_SECRET.
Encoding your credentials
Run the command for your operating system, substituting your actual API Key ID and API Key Secret. The output is the value you pass after Basic in the Authorization header.
Mac and Linux
echo -n "YOUR_API_KEY_ID:YOUR_API_KEY_SECRET" | base64Windows (PowerShell)
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("YOUR_API_KEY_ID:YOUR_API_KEY_SECRET"))Account
getAccountQuota
Returns the calling account's current rate-limit state — the daily and monthly request ceilings, how many requests remain in each window, and when each window resets. Quota is account-level, so the numbers cover every user and org under the account. Use it as a pre-flight check before large fan-out workflows. This endpoint is not itself rate-limited, so checking quota does not consume quota.
/v1/account/quota
Parameters
Responses
Status: 200 - The calling account's rate-limit state.
Status: 401 - Authentication failed.
Status: 403 - The caller is impersonating, is not provisioned into an account, or has access
Orgs
getOrgById
Returns a summary of information about an organization.
/v1/orgs/{orgId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
Responses
Status: 200 - Org details
Status: 404 - Org not found
getOrgClassTypesList
Retrieves a paginated list of Apex class-type classifications scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
classFamily
/v1/orgs/{orgId}/classTypes
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Apex class-type classifications scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgCloudUsage
Returns the cloud-usage summary for an org — a per-cloud adoption breakdown (record counts, record share, object-utilization %) plus an overall usage summary (active users, object / record counts, last-used date). Powers the Adoption "Cloud" tab. Read-only, computed from the org's latest scan.
/v1/orgs/{orgId}/cloudUsage
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
Responses
Status: 200 - The cloud-usage summary for the org.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgCodeCount
Retrieves a single code-count record (full per-item line-count breakdown) by its ID for a specific organization.
/v1/orgs/{orgId}/codeCounts/{codeCountId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| codeCountId* |
String
Internal Hubbl integer primary key ID for the code-count record (per-scan internal id). Required
|
Responses
Status: 200 - Successful response containing the requested code-count record.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or code count not found.
getOrgCodeCountsList
Retrieves a paginated list of per-item code line-count metrics scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
-total
/v1/orgs/{orgId}/codeCounts
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of code line-count metrics scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgConnectedAppAssignmentsList
Retrieves a list of connected-app assignments for an organization — junction rows linking a connected
app to a profile or permission set. Defaults to sort connectedAppId when no
sort query parameter is supplied. No default filter is applied.
/v1/orgs/{orgId}/connectedAppAssignments
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||
| offset |
Integer
Number of items to skip |
|||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
|
|||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of connected-app assignments for an organization.
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization not found.
getOrgConnectedAppById
Retrieves a single connected app by its ID for a specific organization.
/v1/orgs/{orgId}/connectedApps/{connectedAppId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| connectedAppId* |
String
Internal Hubbl integer primary key ID Required
|
Responses
Status: 200 - Successfull response containing the requested connected app.
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization or connected app not found
getOrgConnectedAppsList
Retrieves a list of apps registered against an organization. Defaults to sort
-lastUsedDate when no sort query parameter is supplied. No default filter is
applied.
/v1/orgs/{orgId}/connectedApps
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip |
||||||||||||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
|
||||||||||||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of connected apps registered against an organization.
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization not found.
getOrgEsLint
Retrieves a single ESLint finding (full record) by its ID for a specific organization.
/v1/orgs/{orgId}/esLints/{esLintId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| esLintId* |
String
Internal Hubbl integer primary key ID for the ESLint finding (per-scan internal id). Required
|
Responses
Status: 200 - Successful response containing the requested ESLint finding record.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or ESLint finding not found.
getOrgEsLintsList
Retrieves a paginated list of ESLint findings reported against LWC / Aura JavaScript source in an org. If no sort preference is provided, the API defaults to:
- Sort:
-severity
/v1/orgs/{orgId}/esLints
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of ESLint findings scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgFieldById
Retrieves a single Salesforce field by its ID for a specific organization.
/v1/orgs/{orgId}/fields/{fieldId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| fieldId* |
String
Internal Hubbl integer primary key ID for the field Required
|
Responses
Status: 200 - Successful response containing the requested field record.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or field not found.
getOrgFieldsList
Retrieves a paginated list of Salesforce fields scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
-percentPopulated
/v1/orgs/{orgId}/fields
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Salesforce fields scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgFlowById
Retrieves a single Salesforce flow by its ID for a specific organization.
/v1/orgs/{orgId}/flows/{flowId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| flowId* |
String
Internal Hubbl integer primary key ID for the flow. Required
|
Responses
Status: 200 - Successful response containing the requested flow record.
Status: 401 - Missing or invalid authentication.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found or flow not found within the org.
getOrgFlowsList
Retrieves a paginated list of Salesforce flows scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
-updatedAt
/v1/orgs/{orgId}/flows
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Salesforce flows scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 401 - Missing or invalid authentication.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgInstalledPackageById
Retrieves a single installed package by its ID for a specific organization.
/v1/orgs/{orgId}/installedPackages/{installedPackageId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| installedPackageId* |
String
Internal Hubbl integer primary key ID Required
|
Responses
Status: 200 - Successfull response containing the requested installed package.
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization or installed package not found
getOrgInstalledPackagesList
Retrieves a list of managed and unmanaged packages installed in an organization.
/v1/orgs/{orgId}/installedPackages
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip |
|||||||||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
|
|||||||||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a |
Responses
Status: 200 - List of installed packages in an organization.
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization not found.
getOrgIssues
Retrieves a list of issues for the organization's latest scan. Defaults to sort
-priority,effort (highest priority first, then lowest effort) when no
sort query parameter is supplied. No default filter is applied.
/v1/orgs/{orgId}/issues
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description |
|---|---|
| limit |
Integer
Number of items to return. Default is 50. Maximum is 200. |
| offset |
Integer
Number of items to skip |
| fields |
String
A comma-separated list of fields to include in the response. If omitted, all fields are
returned. Example: |
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Supported Operators:
Examples:
|
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of issues for the organization
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization not found or no scans available
getOrgItem
Retrieves a single metadata item (full record) by its ID for a specific organization.
/v1/orgs/{orgId}/items/{itemId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| itemId* |
String
Internal Hubbl integer primary key ID for the metadata item (per-scan internal id). Required
|
Responses
Status: 200 - Successful response containing the requested metadata item record.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or metadata item not found.
getOrgItemsList
Retrieves a paginated list of metadata items (code files and directories) scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
name
/v1/orgs/{orgId}/items
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of metadata items scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgLicenseUsageByApiName
Retrieves a single license usage entry (provisioned / used / remaining license counts for one license type) by its stable apiName.
/v1/orgs/{orgId}/licenseUsages/{apiName}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| apiName* |
String
The license type's stable apiName, constant across scans. This MUST be Base64URL encoded to avoid routing conflicts with special characters. Required
|
Responses
Status: 200 - The license usage entry.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or license usage not found.
getOrgLicenseUsagesList
Retrieves a paginated list of license usage entries (provisioned / used / remaining license counts per license type) for an org. If no sort preference is provided, the API defaults to:
- Sort:
name
/v1/orgs/{orgId}/licenseUsages
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of license usage entries for the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgLimit
Retrieves a single org limit by its stable name, with its cap, remaining headroom, and derived percent used. The record is identical in shape to a getOrgLimitsList record. Use getOrgLimitsList to discover available limit names.
/v1/orgs/{orgId}/orgLimits/{name}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| name* |
String
The org limit's stable natural key (a Salesforce limit key, e.g. DailyApiRequests).
Matches the Required
|
Responses
Status: 200 - The org limit record.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or org limit not found.
getOrgLimitsList
Retrieves a paginated list of org limits for an org, each with its cap, remaining headroom, and derived percent used. This is a small dataset (one row per limit); the full set fits in a single page. If no sort preference is provided, the API defaults to:
- Sort:
-percentUsed
/v1/orgs/{orgId}/orgLimits
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of org limits for the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgLoginActivityList
Retrieves a paginated list of per-user Salesforce login activity for an org — one row per user with 30/90/365-day login counts. If no sort preference is provided, the API defaults to:
- Sort:
-last30DaysLoginCount
/v1/orgs/{orgId}/loginActivity
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50, max 200. |
||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of per-user login-activity rows for the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgLoginActivityOverview
Returns the login-activity adoption rollup for an org — total licensed users plus logged-in / did-not-log-in / adoption % over the trailing 30, 90, and 365 days. Powers the Adoption "Salesforce Login Activity" summary card. Read-only, computed from the org's latest scan.
/v1/orgs/{orgId}/loginActivity/overview
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description |
|---|---|
| license |
String
One or more Salesforce license names to scope the rollup to (e.g.
Repeat the parameter ( |
Responses
Status: 200 - The login-activity overview for the org.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgObjectById
Retrieves a single Salesforce object by its ID for a specific organization.
/v1/orgs/{orgId}/objects/{objectId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| objectId* |
String
Internal Hubbl integer primary key ID Required
|
Responses
Status: 200 - Successful response containing the requested object.
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization or object not found
getOrgObjectFieldsList
Retrieves a paginated list of Salesforce fields belonging to a specific parent SObject within an
organization. The parent is pinned by the objectId path parameter, so callers do not need
to filter by sobjectId themselves.
If no sort preference is provided, the API defaults to:
- Sort:
-percentPopulated
/v1/orgs/{orgId}/objects/{objectId}/fields
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| objectId* |
String
Internal Hubbl integer primary key ID of the parent SObject. Required
|
| Name | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. The parent object is already pinned
by the Supported Fields:
Combine with |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Salesforce fields belonging to the parent object.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or object not found.
getOrgObjectUsagesList
Retrieves a paginated list of per-object adoption/usage metrics scanned in an org — record counts, active users, automations, field counts, and last-used dates per object. If no sort preference is provided, the API defaults to:
- Sort:
-recordCount
/v1/orgs/{orgId}/objectUsages
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of per-object usage metrics for the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgObjectsList
Retrieves a paginated list of Salesforce objects scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
-lastUsedDate
/v1/orgs/{orgId}/objects
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Salesforce objects scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgPermissionSet
Retrieves a single permission set by its internal Hubbl ID, including the risky-permission flags and the
long description free text (which the list endpoint omits).
/v1/orgs/{orgId}/permissionSets/{permissionSetId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| permissionSetId* |
String
Internal Hubbl integer ID of the permission set (from the list response). Required
|
Responses
Status: 200 - The requested permission set.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or permission set not found.
getOrgPermissionSetsList
Retrieves a paginated list of permission sets scanned in an org, including the risky-permission flags
shown on the Profiles & Permission Sets dashboard tab. The list subset omits the long
description free text — use the by-id endpoint for that. If no sort preference is provided,
the API defaults to:
- Sort:
-count
/v1/orgs/{orgId}/permissionSets
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of permission sets scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgPmdViolation
Retrieves a single PMD static-analysis violation (full record) by its ID for a specific organization.
/v1/orgs/{orgId}/pmds/{pmdId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| pmdId* |
String
Internal Hubbl integer primary key ID for the PMD violation (per-scan internal id). Required
|
Responses
Status: 200 - Successful response containing the requested PMD violation record.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or PMD violation not found.
getOrgPmdViolationsList
Retrieves a paginated list of PMD static-analysis violations reported against Apex source in an org. If no sort preference is provided, the API defaults to:
- Sort:
priority
/v1/orgs/{orgId}/pmds
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of PMD static-analysis violations scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgSfProfile
Retrieves a single Salesforce profile by its internal Hubbl ID, including the risky-permission flags shown on the Profiles & Permission Sets dashboard tab.
/v1/orgs/{orgId}/sfProfiles/{sfProfileId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| sfProfileId* |
String
Internal Hubbl integer ID of the Salesforce profile (from the list response). Required
|
Responses
Status: 200 - The requested Salesforce profile.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or Salesforce profile not found.
getOrgSfProfilesList
Retrieves a paginated list of Salesforce profiles scanned in an org, including the risky-permission flags shown on the Profiles & Permission Sets dashboard tab. If no sort preference is provided, the API defaults to:
- Sort:
-count
/v1/orgs/{orgId}/sfProfiles
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Salesforce profiles scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgTriggerById
Retrieves a single Salesforce trigger by its ID for a specific organization.
/v1/orgs/{orgId}/triggers/{triggerId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| triggerId* |
String
Internal Hubbl integer primary key ID for the trigger. Required
|
Responses
Status: 200 - Successful response containing the requested trigger record.
Status: 401 - Missing or invalid authentication.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found or trigger not found within the org.
getOrgTriggersList
Retrieves a paginated list of Salesforce triggers scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
-updatedAt
/v1/orgs/{orgId}/triggers
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | |||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Apex triggers scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 401 - Missing or invalid authentication.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found or no scans available.
getOrgWorkflowById
Retrieves a single Salesforce workflow rule by its ID for a specific organization.
/v1/orgs/{orgId}/workflows/{workflowId}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| workflowId* |
String
Internal Hubbl integer primary key ID for the workflow rule. Required
|
Responses
Status: 200 - Successful response containing the requested workflow rule record.
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization or workflow not found.
getOrgWorkflowsList
Retrieves a paginated list of Salesforce Workflow rules scanned in an org. If no sort preference is provided, the API defaults to:
- Sort:
-updatedAt
/v1/orgs/{orgId}/workflows
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| Name | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
||||||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
||||||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
||||||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Salesforce workflow rules scanned in the org.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - User is not authorized to access this organization.
Status: 404 - Organization not found.
getOrgsList
Retrieves a paginated list of the Salesforce orgs the caller can access — the same orgs visible from the dashboard. An empty result set is a valid 200, not a 404 (this is a collection root, not scoped to a single org). If no sort preference is provided, the API defaults to:
- Sort:
-lastScanDate
/v1/orgs
Parameters
| Name | Description | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| limit |
Integer
Number of items to return. Default is 50. |
|||||||||||||||||||||
| offset |
Integer
Number of items to skip. |
|||||||||||||||||||||
| filter |
String
Resource Query Language (RQL) formatted filter criteria. Supported Fields:
Combine with |
|||||||||||||||||||||
| sort |
String
JSON:API Sort string (see https://jsonapi.org/format/#fetching-sorting). Supported Fields:
Use a Examples:
|
Responses
Status: 200 - List of Salesforce orgs the caller can access.
Status: 400 - Invalid query parameters (e.g., malformed RQL filter or unsupported field).
Status: 403 - Caller is not authorized (no provisioned user, or impersonation attempted).
getRecommendationByKey
Retrieves rich context for a given recommendation in an organization based on issueKey.
/v1/orgs/{orgId}/issues/{issueKey}
Parameters
| Name | Description |
|---|---|
| orgId* |
String
Salesforce Organization ID Required
|
| issueKey* |
String
The unique key assigned to the issue that is constant across scans. This MUST be Base64URL encoded to avoid routing conflicts with special characters. Required
|
Responses
Status: 200 - Contextual Recommendation data
Status: 403 - User is not authorized to access this organization
Status: 404 - Organization or recommendation not found
Was this page helpful?