Grupos de reporte
Crear un enlace mágico de descarga de agente
Crea un enlace mágico para descargar el instalador del agente en un grupo de reporte. Esta funcionalidad solo está disponible para el producto FXXOne. Ponte en contacto con el equipo de Flexxible para más información.
POST
/
v1
/
organizations
/
{organization_id}
/
reporting-groups
/
{reporting_group_id}
/
magic-links
Crear un enlace mágico de descarga de agente
curl --request POST \
--url https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"expires_at": "2026-03-15T12:00:00.000Z",
"installer": {
"version": "latest",
"platform": "windows",
"arch": "x64",
"type": "fxxone"
}
}
'import requests
url = "https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links"
payload = {
"expires_at": "2026-03-15T12:00:00.000Z",
"installer": {
"version": "latest",
"platform": "windows",
"arch": "x64",
"type": "fxxone"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
expires_at: '2026-03-15T12:00:00.000Z',
installer: {version: 'latest', platform: 'windows', arch: 'x64', type: 'fxxone'}
})
};
fetch('https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'expires_at' => '2026-03-15T12:00:00.000Z',
'installer' => [
'version' => 'latest',
'platform' => 'windows',
'arch' => 'x64',
'type' => 'fxxone'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links"
payload := strings.NewReader("{\n \"expires_at\": \"2026-03-15T12:00:00.000Z\",\n \"installer\": {\n \"version\": \"latest\",\n \"platform\": \"windows\",\n \"arch\": \"x64\",\n \"type\": \"fxxone\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"expires_at\": \"2026-03-15T12:00:00.000Z\",\n \"installer\": {\n \"version\": \"latest\",\n \"platform\": \"windows\",\n \"arch\": \"x64\",\n \"type\": \"fxxone\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"expires_at\": \"2026-03-15T12:00:00.000Z\",\n \"installer\": {\n \"version\": \"latest\",\n \"platform\": \"windows\",\n \"arch\": \"x64\",\n \"type\": \"fxxone\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "507f1f77bcf86cd799439099",
"token": "2ab46558-3c40-4b72-8fce-08b7b596f624",
"link": "https://portal.example.com/magic-link?key=2ab46558-3c40-4b72-8fce-08b7b596f624"
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}Autorizaciones
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Parámetros de ruta
El identificador único de la organización
Maximum string length:
24Pattern:
^[0-9a-f]{24}$El identificador único del Grupo de reporte
Maximum string length:
24Pattern:
^[0-9a-f]{24}$Cuerpo
application/json
Cuerpo de solicitud para crear un enlace mágico de Grupo de reporte.
Respuesta
Enlace mágico creado correctamente.
Identificador del enlace mágico
Ejemplo:
"507f1f77bcf86cd799439099"
Token asociado con el enlace mágico.
Ejemplo:
"2ab46558-3c40-4b72-8fce-08b7b596f624"
URL del enlace mágico.
Ejemplo:
"https://portal.example.com/magic-link?key=2ab46558-3c40-4b72-8fce-08b7b596f624"
⌘I
Crear un enlace mágico de descarga de agente
curl --request POST \
--url https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"expires_at": "2026-03-15T12:00:00.000Z",
"installer": {
"version": "latest",
"platform": "windows",
"arch": "x64",
"type": "fxxone"
}
}
'import requests
url = "https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links"
payload = {
"expires_at": "2026-03-15T12:00:00.000Z",
"installer": {
"version": "latest",
"platform": "windows",
"arch": "x64",
"type": "fxxone"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
expires_at: '2026-03-15T12:00:00.000Z',
installer: {version: 'latest', platform: 'windows', arch: 'x64', type: 'fxxone'}
})
};
fetch('https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'expires_at' => '2026-03-15T12:00:00.000Z',
'installer' => [
'version' => 'latest',
'platform' => 'windows',
'arch' => 'x64',
'type' => 'fxxone'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links"
payload := strings.NewReader("{\n \"expires_at\": \"2026-03-15T12:00:00.000Z\",\n \"installer\": {\n \"version\": \"latest\",\n \"platform\": \"windows\",\n \"arch\": \"x64\",\n \"type\": \"fxxone\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"expires_at\": \"2026-03-15T12:00:00.000Z\",\n \"installer\": {\n \"version\": \"latest\",\n \"platform\": \"windows\",\n \"arch\": \"x64\",\n \"type\": \"fxxone\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.staging.flxwvdexternal.com/v1/organizations/{organization_id}/reporting-groups/{reporting_group_id}/magic-links")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"expires_at\": \"2026-03-15T12:00:00.000Z\",\n \"installer\": {\n \"version\": \"latest\",\n \"platform\": \"windows\",\n \"arch\": \"x64\",\n \"type\": \"fxxone\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "507f1f77bcf86cd799439099",
"token": "2ab46558-3c40-4b72-8fce-08b7b596f624",
"link": "https://portal.example.com/magic-link?key=2ab46558-3c40-4b72-8fce-08b7b596f624"
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"details": "<string>"
}
}