Automatizaciones con API

Obtención de la clave de API

El primer paso es obtener la clave de la API en el menú de Configuración del portal de administración.

También es posible generar claves de autenticación basadas en permisos, de modo que el administrador pueda generar claves que permitan el acceso únicamente a un subconjunto de los endpoints.

Administración de usuarios mediante la API

La documentación de la API puede consultarse aquí Utilizando la ruta GET /api/user podemos realizar un listado de los usuarios del sistema.

Bash
curl -X 'GET' \  'https://api.powerembedded.com.br/api/user' \  -H 'accept: application/json' \  -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik'

Ejemplo de respuesta del servidor, donde la propiedad "reports" tiene asociado un array con todos los IDs de los informes a los que mi usuario tiene acceso y "groups" apunta a un array con todos los grupos de los que mi usuario forma parte.

JSON
{  "pageIndex": 1,  "totalPages": 2,  "hasNextPage": true,  "hasPreviousPage": false,  "data": [    {      "id": "dd668e6d-4f83-4715-a155-b55213677dd8",      "email": "usuario@empresa.com",      "name": "Usuário Xpto",      "role": 3,      "reports": [        "c3aa3e62-7c43-4c0f-ab1d-3f9e0fbbad0e",        "57e23242-ad69-455b-8955-1a0b4e35e6ed",        "359a3241-08e2-45d1-b046-78c3c9c7ea8f",        "7c8a79ec-23d0-4edc-8299-89461e134c34",        "48dc89e1-240d-4b25-bba2-e8cb2d3d16d4",        "9339a616-9d09-49dd-a848-3289161b2c2a"      ],      "companies": [],      "groups": [        "5d47cdd0-bd05-4e27-a87a-45b45da4360e",        "833e6b83-f157-47ef-9f1f-7545d705c5a1"      ],      "reportLandingPage": null,      "department": "BI ",      "expirationDate": null,      "windowsAdUser": null,      "canEditReport": true,      "canCreateReport": false,      "canOverwriteReport": false    }  ]}

Para filtrar la lista de usuarios por nombre y correo electrónico, basta con utilizar los parámetros de consulta "name" y "email", respectivamente.

Bash
curl -X 'GET' \  'https://api.powerembedded.com.br/api/user?name=Usuario%20Xpto&email=usuario%40empresa.com' \  -H 'accept: application/json' \  -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik'

Para crear un nuevo usuario en el sistema, utilice la ruta POST /api/user. Donde la clave "role" define la función de usuario siendo:

  1. Administrador
  2. Colaborador
  3. Visualizador
  4. Colaborador de workspace
Bash
curl -X 'POST' \  'https://api.powerembedded.com.br/api/user' \  -H 'accept: */*' \  -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik' \  -H 'Content-Type: application/json' \  -d '{  "email": "usuario@empresa.com",  "name": "Usuário Xpto",  "role": 1}'

Para eliminar un usuario del sistema, utilice la ruta DELETE /api/user/{userEmail}, donde "userEmail" es el correo electrónico del usuario que se eliminará.

Bash
curl -X 'DELETE' \  'https://api.powerembedded.com.br/api/user/usuario%40empresa.com' \  -H 'accept: */*' \  -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik'

Control de permisos en informes mediante la API

También puede otorgar permiso de acceso a uno o más informes a un usuario utilizando la ruta POST /api/user/link-reports. Basta con pasar los IDs de los informes en el array "reports" y el correo electrónico del usuario en "userEmail".

Bash
curl -X 'PUT' \  'https://api.powerembedded.com.br/api/user/link-reports' \  -H 'accept: */*' \  -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik' \  -H 'Content-Type: application/json' \  -d '{  "userEmail": "usuario@empresa.com",  "reports": [    "3fa85f64-5717-4562-b3fc-2c963f66afa6",    "2fa8bf64-3615-5162-b3fb-1c963f66afa5"  ]}'

Para eliminar el permiso de acceso a uno o más informes, basta con utilizar la ruta POST /api/user/unlink-reports.

Bash
curl -X 'PUT' \  'https://api.powerembedded.com.br/api/user/unlink-reports' \  -H 'accept: */*' \  -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik' \  -H 'Content-Type: application/json' \  -d '{  "userEmail": "usuario@empresa.com",  "reports": [    "3fa85f64-5717-4562-b3fc-2c963f66afa6"  ]}'

Listado de los informes existentes en Power Embedded

Además de listar usuarios, también es posible listar informes. De esta forma es posible tener acceso a algunos metadatos, como los IDs de los informes. Para ello, basta con utilizar la ruta GET /api/report.

Bash
curl -X 'GET' \  'https://api.powerembedded.com.br/api/report' \  -H 'accept: application/json' \  -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik'

Ejemplo de respuesta del servidor.

JSON
{  "pageIndex": 1,  "totalPages": 3,  "hasNextPage": true,  "hasPreviousPage": false,  "data": [    {      "id": "f8dd3f97-be3a-423b-91d5-923da88f5ec6",      "name": "Relatório de vendas",      "description": "Relatório com informações de vendas",      "datasetId": "b6bd5b2b-8983-41b1-970e-aa95bec52f39",      "embedUrl": "https://app.powerbi.com/reportEmbed?reportId=f8dd3f97-be3a-423b-91d5-923da88f5ec6&groupId=d397e342-a1a0-47e4-94ee-acd6f23ddc52&w=2&config=eyJjbHVzdGVyVXJsIjoiaHR0cHM6Ly9XQUJJLUJSQVpJTC1TT1VUSC1yZWRpcmVjdC5hbmFseXNpcy53aW5kb3dzLm5ldCIsImVtYmVkRmVhdHVyZXMiOnsidXNhZ2VNZXRyaWNzVk5leHQiOnRydWV9fQ%3d%3d",      "workspaceId": "d397e342-a1a0-47e4-94ee-acd6f23ddc52",      "reportType": 1,      "folderId": null,      "workspaceName": "BI",      "userOwner": null    }  ]}

Al igual que en el endpoint de usuarios, también es posible filtrar el informe mediante parámetros de consulta. En el ejemplo siguiente, utilizo los parámetros "reportName" y "workspaceName".

Bash
curl -X 'GET' \  'https://api.powerembedded.com.br/api/report?reportName=Atendimento%20laboratorial&workspaceName=BI' \  -H 'accept: application/json' \  -H 'X-API-Key: d397e342-a1a0-47e4-94ee-acd6f23ddc52'

Respuesta del servidor.

JSON
{  "pageIndex": 1,  "totalPages": 1,  "hasNextPage": false,  "hasPreviousPage": false,  "data": [    {      "id": "cb56555d-546c-40a2-b988-b1903cbbe39c",      "name": "Atendimento Laboratorial",      "description": null,      "datasetId": "693527e8-d0d6-4ef0-a570-7213e9ba59bc",      "embedUrl": "https://app.powerbi.com/reportEmbed?reportId=cb56555d-546c-40a2-b988-b1903cbbe39c&groupId=d397e342-a1a0-47e4-94ee-acd6f23ddc52&w=2&config=eyJjbHVzdGVyVXJsIjoiaHR0cHM6Ly9XQUJJLUJSQVpJTC1TT1VUSC1yZWRpcmVjdC5hbmFseXNpcy53aW5kb3dzLm5ldCIsImVtYmVkRmVhdHVyZXMiOnsidXNhZ2VNZXRyaWNzVk5leHQiOnRydWV9fQ%3d%3d",      "workspaceId": "d397e342-a1a0-47e4-94ee-acd6f23ddc52",      "reportType": 1,      "folderId": null,      "workspaceName": "BI",      "userOwner": null    }  ]}

Row-Level Security (RLS) utilizando la API

Para listar todos los roles vinculados a sus datasets, basta con utilizar la ruta GET /api/datasets/rls.

Bash
curl -X 'GET' \  'https://api.powerembedded.com.br/api/datasets/rls' \  -H 'accept: application/json' \  -H 'X-API-Key: d397e342-a1a0-47e4-94ee-acd6f23ddc52'

Respuesta del servidor.

JSON
{  "pageIndex": 1,  "totalPages": 2,  "hasNextPage": true,  "hasPreviousPage": false,  "data": [    {      "id": "213cb3bd-ddf6-4e7b-9707-37859200f938",      "name": "Admin",      "users": [        "b3569847-98af-4d3d-837c-b679afed8f64",        "ca506817-6bff-4564-81ae-7e3d40c27947",        "22672557-bb9d-49bd-8f97-e6341390cca0"      ],      "groups": [],      "datasetId": "a57cae24-1073-41e3-818b-b7a82b76cc88",      "userEmails": [        "rafael.mendonca@powertuning.com.br",        "alison.pezzott@powertuning.com.br",        "dirceu.resende@powertuning.com.br"      ]    }  ]}

También es posible el uso de parámetros de consulta. En el ejemplo siguiente, informé el ID de un dataset en el parámetro "datasetId".

Bash
curl -X 'GET' \  'https://api.powerembedded.com.br/api/datasets/rls?datasetId=c07dce01-f9b3-4a5c-be5d-dae7dc39a4fe' \  -H 'accept: application/json' \  -H 'X-API-Key: d397e342-a1a0-47e4-94ee-acd6f23ddc52'

Respuesta del servidor.

JSON
{  "pageIndex": 1,  "totalPages": 1,  "hasNextPage": false,  "hasPreviousPage": false,  "data": [    {      "id": "58f4a4ae-d85e-4c60-afdc-e0e26f6f96d5",      "name": "Geral",      "users": [],      "groups": [],      "datasetId": "c07dce01-f9b3-4a5c-be5d-dae7dc39a4fe",      "userEmails": []    },    {      "id": "95050ddf-b0c5-4631-9aa8-56eebece752b",      "name": "Recepcionista15",      "users": [        "fabff0b5-73f3-44c8-885d-34445a8df76a",        "2d60d03d-6bcf-435d-acad-0a3900ce0f6c"      ],      "groups": [],      "datasetId": "c07dce01-f9b3-4a5c-be5d-dae7dc39a4fe",      "userEmails": [        "usuario@empresa.com",        "outro@empresa.com"      ]    }  ]}

Para vincular una función RLS a un usuario o grupo, pueden utilizarse las rutas PUT /api/datasets/rls/link-users y PUT /api/datasets/rls/link-groups, respectivamente. Para desvincular, /unlink-users y /unlink-groups.

A continuación, un ejemplo con PUT /api/datasets/rls/link-users.

Bash
curl -X 'PUT' \  'https://api.powerembedded.com.br/api/datasets/rls/link-users' \  -H 'accept: */*' \  -H 'X-API-Key: d397e342-a1a0-47e4-94ee-acd6f23ddc52' \  -H 'Content-Type: application/json' \  -d '{  "usersEmails": [    "usuario@empresa.com"  ],  "datasetId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",  "role": "Admin"}'

Consulta del registro de accesos a informes de Power Embedded mediante la API

También puede utilizar la ruta GET /api/report-audit para acceder al registro de auditoría de informes, consultando todos los accesos a informes realizados por los usuarios de Power Embedded.

Bash
curl -X 'GET' \  'https://api.powerembedded.com.br/api/report-audit' \  -H 'accept: application/json' \  -H 'X-API-Key: d397e342-a1a0-47e4-94ee-acd6f23ddc52'

Respuesta del servidor.

JSON
{  "pageIndex": 1,  "totalPages": 184,  "hasNextPage": true,  "hasPreviousPage": false,  "data": [    {      "id": "fd00daf2-15b4-42f7-b929-3e1a593558ee",      "createdAt": "2025-10-10T14:09:58.372834Z",      "organizationId": "4b532635-a0c6-48ae-bea8-a5197c63f057",      "userId": "c3bc257a-b32b-4979-922e-832ce61b205b",      "userEmail": "francisco.neto@powertuning.com.br",      "reportId": "cb56555d-546c-40a2-b988-b1903cbbe39c",      "reportName": "Atendimento Laboratorial",      "action": 1,      "actionName": "TokenRequested"    }  ]}

También es posible filtrar por parámetros de consulta, como "userEmail", "reportName", "pageNumber", entre otros.

Cómo mostrar los informes de Power BI en su aplicación

Para saber más sobre la visualización de informes en aplicaciones externas, acceda a la página Mostrar informes en su sistema.

Documentación

Documentación completa de la API:
Swagger UI (powerembedded.com.br)

Página de demostración de la API para incrustar (embeddar) los informes:
Demo – PowerPortal.IntegrationDemo (powerembedded.com.br)

Actualizado