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.
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.
{ "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.
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:
- Administrador
- Colaborador
- Visualizador
- Colaborador de workspace
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á.
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".
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.
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.
curl -X 'GET' \ 'https://api.powerembedded.com.br/api/report' \ -H 'accept: application/json' \ -H 'X-API-Key: HNhlHXAG1g21NyIsIkFwaUtleSI6Ik'Ejemplo de respuesta del servidor.
{ "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".
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.
{ "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.
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.
{ "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".
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.
{ "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.
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.
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.
{ "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)