Skip to content

Account reference

The plan, its allowances and what this caller can do.

Every route below follows the conventions in Work with the BI Pixie API. You can also download the OpenAPI document.

Get the account #

GET /v1/account

Returns the plan, the account's status and region, and every allowance with what has been used and what the plan allows. It also says whether a call that starts work would be accepted from this caller right now and, when it would not, the errorCode it would meet. Reading the account spends no allowance.

Scope
BIPixie.Read.All
Plan
Every plan
Counts against
Calls that read, 300 a minute

Responses

200. The account.

Headers of the 200 response to Get the account
Header Description
x-ms-request-id The id of this request. Quote it to support.
The 200 response to Get the account, Account
Field Type Always present Description
accountId string Yes
plan string Yes
status string Yes
region string or null No
allowances Allowances Yes What the plan allows and what has been used. used is null when it could not be read. limit is null when the plan sets no limit.
trackedItems Allowance Yes
used integer or null Yes
limit integer or null Yes
assessments PeriodAllowance Yes
used integer or null Yes
limit integer or null Yes
period string Yes One of Day, Month, Lifetime, Unlimited.
optimizationApplies PeriodAllowance Yes
used integer or null Yes
limit integer or null Yes
period string Yes One of Day, Month, Lifetime, Unlimited.
benchmarkRuns PeriodAllowance No
used integer or null Yes
limit integer or null Yes
period string Yes One of Day, Month, Lifetime, Unlimited.
firstLooks Allowance No
used integer or null Yes
limit integer or null Yes
scheduledAssessments boolean Yes Whether the plan includes assessments that run on a schedule.
settings object Yes What an administrator of the account chose in Account settings.
features object Yes
addPixies boolean Yes Whether Pixies can be added to reports. While false, a call that adds Pixies answers 403 FeatureTurnedOff, and a call that removes Pixies is still accepted.
capacityDetails boolean Yes Whether BI Pixie reads capacities, to check whether one is paused and to list them for Admin Monitoring.
aiFeatures boolean Yes Whether AI Readiness, benchmarks, A/B tests and data agents are offered. While false, those routes answer 403 FeatureTurnedOff.
definitionCopies string Yes None, the usual value, when BI Pixie keeps no copy of report and semantic model definitions after adding, updating or removing Pixies. Keep30Days while BI Pixie support has turned on a 30-day copy for the account, at the account's request, to investigate a run that failed. An account whose data stays in its own tenant never gets a copy. One of Keep30Days, None.
api object Yes
writesAllowed boolean Yes Whether a call that starts work would be accepted from this caller now.
writeRefusal one of ErrorCode, null Yes The errorCode such a call would meet, or null when it would be accepted.
scopes array of string Yes
role string Yes One of admin, member.

Errors

Every refusal is an ErrorResponse with a stable errorCode. See Errors for what each HTTP status means and every code the API can return.

This is an example of a refusal. Every refusal has the same fields.

Example refusal
HTTP/1.1 404 Not Found
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "errorCode": "ItemNotFound",
  "message": "No item with this id is visible to the signed-in person in this workspace, or it is not of the type the route takes.",
  "isRetriable": false,
  "moreDetails": [],
  "relatedResource": {
    "resourceId": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa",
    "resourceType": "SemanticModel"
  },
  "parameters": [
    {
      "name": "itemId",
      "value": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa"
    }
  ],
  "requestId": "cbf21b6d-b661-4b52-88cb-d79712e504fc"
}

Example

Request
curl -i -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://api.bipixie.com/v1/account"

An example of what the call answers. The values are fictional.

Response, 200
HTTP/1.1 200 OK
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "accountId": "4230a877-3802-46a8-b288-a30965e9009a",
  "plan": "pro",
  "status": "active",
  "region": "eastus",
  "allowances": {
    "trackedItems": {
      "used": 12,
      "limit": 100
    },
    "assessments": {
      "used": 12,
      "limit": 100,
      "period": "Day"
    },
    "optimizationApplies": {
      "used": 12,
      "limit": 100,
      "period": "Day"
    },
    "benchmarkRuns": {
      "used": 12,
      "limit": 100,
      "period": "Day"
    },
    "firstLooks": {
      "used": 12,
      "limit": 100
    },
    "scheduledAssessments": true
  },
  "settings": {
    "features": {
      "addPixies": true,
      "capacityDetails": true,
      "aiFeatures": true
    },
    "definitionCopies": "Keep30Days"
  },
  "api": {
    "writesAllowed": true,
    "writeRefusal": null,
    "scopes": [
      "BIPixie.Read.All",
      "BIPixie.ReadWrite.All"
    ],
    "role": "admin"
  }
}

List the permissions you have given BI Pixie #

GET /v1/account/permissions

The permissions BI Pixie asks for to act on your behalf, whether you have given each one, what each is for, and, for each one not given, the page in the BI Pixie portal that grants it. The first, Fabric, is needed by every call that reads or changes your workspaces, reports and semantic models; the other three are needed only for what each one names. BI Pixie asks Microsoft for each permission as you call, so the answer is as of now. Reading it spends nothing.

Scope
BIPixie.Read.All
Plan
Every plan
Counts against
Calls that read, 300 a minute

Responses

200. The permissions.

Headers of the 200 response to List the permissions you have given BI Pixie
Header Description
x-ms-request-id The id of this request. Quote it to support.
The 200 response to List the permissions you have given BI Pixie, PermissionList
Field Type Always present Description
value array of Permission Yes
name string Yes The permission's key, the same in every answer. One of fabric, usage, storage, agent.
permission string Yes The permission as Microsoft names it, such as Dataset.Read.All.
access string Yes Granted when you have given it, ConsentRequired when you have not, and Unavailable when Microsoft did not answer or your organization's sign-in policy did not allow it just now. One of Granted, ConsentRequired, Unavailable.
required boolean Yes True for the one permission every call that reads Fabric needs.
neededFor string Yes What BI Pixie does with the permission, in a sentence.
message string or null No Why the permission is not available, in a sentence. Null when it is granted.
consentUrl string or null (uri) No The BI Pixie portal page that grants this permission. Null unless access is ConsentRequired.

Errors

Every refusal is an ErrorResponse with a stable errorCode. See Errors for what each HTTP status means and every code the API can return.

This is an example of a refusal. Every refusal has the same fields.

Example refusal
HTTP/1.1 404 Not Found
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "errorCode": "ItemNotFound",
  "message": "No item with this id is visible to the signed-in person in this workspace, or it is not of the type the route takes.",
  "isRetriable": false,
  "moreDetails": [],
  "relatedResource": {
    "resourceId": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa",
    "resourceType": "SemanticModel"
  },
  "parameters": [
    {
      "name": "itemId",
      "value": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa"
    }
  ],
  "requestId": "cbf21b6d-b661-4b52-88cb-d79712e504fc"
}

Example

Request
curl -i -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://api.bipixie.com/v1/account/permissions"

An example of what the call answers. The values are fictional.

Response, 200
HTTP/1.1 200 OK
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "value": [
    {
      "name": "fabric",
      "permission": "Contoso Sales",
      "access": "Granted",
      "required": true,
      "neededFor": "Contoso Sales",
      "message": "The semantic model could not be read.",
      "consentUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?client_id=ebc40edd-1874-4e14-a1e5-e21b45f6286a&response_type=code"
    }
  ]
}

List the account's licenses #

GET /v1/licenses

The account's licenses, as the portal's Licenses page lists them: every license for an account admin, and their own for a member. Each says the tracked items it holds and the tracked items allocated to it (null when the plan sets no allocation), how many members it has, its region, and where it keeps its results. An account holds a handful of licenses, so the list is never paged. Reading it spends nothing.

Scope
BIPixie.Read.All
Plan
Every plan
Counts against
Calls that read, 300 a minute

Responses

200. The licenses.

Headers of the 200 response to List the account's licenses
Header Description
x-ms-request-id The id of this request. Quote it to support.
The 200 response to List the account's licenses, LicenseList
Field Type Always present Description
value array of License Yes
licenseId string Yes
label string or null No
isDefault boolean Yes Whether this is the account's primary license.
status string or null No
region string or null No The Azure region the license's data is processed in.
provisioningStatus string or null No
trackedItems object Yes
used integer or null Yes The tracked items this license holds.
allocated integer or null Yes The tracked items allocated to this license. Null when the plan sets no allocation.
members integer or null No How many members are on this license.
dataResidency object Yes
location string Yes Where the license keeps its results: BIPixie, CustomerOneLake, CustomerStorage, or Unknown when that could not be read. One of BIPixie, CustomerOneLake, CustomerStorage, Unknown.
createdAtUtc string or null (date-time) No

Errors

Every refusal is an ErrorResponse with a stable errorCode. See Errors for what each HTTP status means and every code the API can return.

This is an example of a refusal. Every refusal has the same fields.

Example refusal
HTTP/1.1 404 Not Found
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "errorCode": "ItemNotFound",
  "message": "No item with this id is visible to the signed-in person in this workspace, or it is not of the type the route takes.",
  "isRetriable": false,
  "moreDetails": [],
  "relatedResource": {
    "resourceId": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa",
    "resourceType": "SemanticModel"
  },
  "parameters": [
    {
      "name": "itemId",
      "value": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa"
    }
  ],
  "requestId": "cbf21b6d-b661-4b52-88cb-d79712e504fc"
}

Example

Request
curl -i -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://api.bipixie.com/v1/licenses"

An example of what the call answers. The values are fictional.

Response, 200
HTTP/1.1 200 OK
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "value": [
    {
      "licenseId": "da8ba1ab-3ead-4748-9693-f27175096ee6",
      "label": "With AI instructions",
      "isDefault": true,
      "status": "Active",
      "region": "eastus",
      "provisioningStatus": "Succeeded",
      "trackedItems": {
        "used": 12,
        "allocated": 3
      },
      "members": 3,
      "dataResidency": {
        "location": "BIPixie"
      },
      "createdAtUtc": "2026-06-03T14:12:00Z"
    }
  ]
}

List the account's tracked items #

GET /v1/trackedItems

Every unit of the account's tracked-item count, named: the reports with Pixies, the semantic models and data agents BI Pixie tracks, and the ones since removed or deleted, because the count does not go down when an item goes and a number nobody can itemize reads as a mystery. An account whose plan sets no cap lists its active items only. An account admin sees every license's items and a member their own license's, as the portal's Usage tab shows them. Paged. Reading the list spends nothing.

Scope
BIPixie.Read.All
Plan
Every plan
Counts against
Calls that read, 300 a minute

Parameters

Parameters for List the account's tracked items
Name In Type Required Description
maxResults query integer No The largest number of rows to return in one page.
continuationToken query string No The token the previous page answered with.

Responses

200. The tracked items.

Headers of the 200 response to List the account's tracked items
Header Description
x-ms-request-id The id of this request. Quote it to support.
The 200 response to List the account's tracked items, TrackedItemList
Field Type Always present Description
value array of TrackedItem Yes
id string or null Yes The report's, the semantic model's or the data agent's id.
itemType string or null Yes One of Report, SemanticModel, DataAgent.
workspaceId string or null No
displayName string or null No
workspaceName string or null No
status string Yes Tracked for an item BI Pixie tracks today. Removed for a report whose Pixies were removed, Deleted for one the customer deleted, and ResultsDeleted for a semantic model whose results were deleted: each still counts, because the count does not go down. One of Tracked, Removed, Deleted, ResultsDeleted.
trackedSinceUtc string or null (date-time) No When the item started counting. Null for a claim made before the time was recorded.
deletedAtUtc string or null (date-time) No
licenseId string or null Yes The license the item is assigned to.
claimedVia string or null No For a semantic model or data agent, what claimed it: readiness, assessment, agent_assessment or benchmark. Null for a report, and for a claim made before this was recorded.
continuationToken string No
continuationUri string (uri) No

Errors

Every refusal is an ErrorResponse with a stable errorCode. See Errors for what each HTTP status means and every code the API can return.

This is an example of a refusal. Every refusal has the same fields.

Example refusal
HTTP/1.1 404 Not Found
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "errorCode": "ItemNotFound",
  "message": "No item with this id is visible to the signed-in person in this workspace, or it is not of the type the route takes.",
  "isRetriable": false,
  "moreDetails": [],
  "relatedResource": {
    "resourceId": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa",
    "resourceType": "SemanticModel"
  },
  "parameters": [
    {
      "name": "itemId",
      "value": "d972b3f5-a2fa-47ec-94ff-0403a4d159fa"
    }
  ],
  "requestId": "cbf21b6d-b661-4b52-88cb-d79712e504fc"
}

Example

Request
curl -i -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://api.bipixie.com/v1/trackedItems"

An example of what the call answers. The values are fictional.

Response, 200
HTTP/1.1 200 OK
Content-Type: application/json
x-ms-request-id: cbf21b6d-b661-4b52-88cb-d79712e504fc

{
  "value": [
    {
      "id": "3f4bc9c2-b27e-49df-9de1-a78801b93655",
      "itemType": "Report",
      "workspaceId": "e17c1b59-7a2e-491e-acdd-11434854bbb0",
      "displayName": "Contoso Sales",
      "workspaceName": "Contoso Sales Analytics",
      "status": "Tracked",
      "trackedSinceUtc": "2026-06-03T14:12:00Z",
      "deletedAtUtc": "2026-09-14T09:42:17Z",
      "licenseId": "da8ba1ab-3ead-4748-9693-f27175096ee6",
      "claimedVia": "readiness"
    }
  ],
  "continuationToken": "eyJza2lwIjoxMDB9",
  "continuationUri": "https://api.bipixie.com/v1/trackedItems?continuationToken=eyJza2lwIjoxMDB9"
}

What's next