Poll a browser pairing for the machine credential
curl --request POST \
--url https://app.felan.ai/api/v1/hosts/pairings/poll \
--header 'Content-Type: application/json' \
--data '
{
"deviceCode": "<string>"
}
'import requests
url = "https://app.felan.ai/api/v1/hosts/pairings/poll"
payload = { "deviceCode": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({deviceCode: '<string>'})
};
fetch('https://app.felan.ai/api/v1/hosts/pairings/poll', 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://app.felan.ai/api/v1/hosts/pairings/poll",
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([
'deviceCode' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://app.felan.ai/api/v1/hosts/pairings/poll"
payload := strings.NewReader("{\n \"deviceCode\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://app.felan.ai/api/v1/hosts/pairings/poll")
.header("Content-Type", "application/json")
.body("{\n \"deviceCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.felan.ai/api/v1/hosts/pairings/poll")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"deviceCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"credential": "<string>",
"host": {
"id": "<string>",
"teamId": "<string>",
"userId": "<string>"
}
}{
"code": "authorization_pending",
"message": "<string>",
"supported": {
"protocol": [
4503599627370495
],
"rowSchemaVersion": [
4503599627370495
]
}
}{
"code": "authorization_pending",
"message": "<string>",
"supported": {
"protocol": [
4503599627370495
],
"rowSchemaVersion": [
4503599627370495
]
}
}Hosts
Poll a browser pairing for the machine credential
Returns the machine credential exactly once after approval, rotating and revoking any previous credential of the same machine. Membership is rechecked when the credential is issued. All responses use Cache-Control: no-store.
POST
/
hosts
/
pairings
/
poll
Poll a browser pairing for the machine credential
curl --request POST \
--url https://app.felan.ai/api/v1/hosts/pairings/poll \
--header 'Content-Type: application/json' \
--data '
{
"deviceCode": "<string>"
}
'import requests
url = "https://app.felan.ai/api/v1/hosts/pairings/poll"
payload = { "deviceCode": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({deviceCode: '<string>'})
};
fetch('https://app.felan.ai/api/v1/hosts/pairings/poll', 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://app.felan.ai/api/v1/hosts/pairings/poll",
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([
'deviceCode' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://app.felan.ai/api/v1/hosts/pairings/poll"
payload := strings.NewReader("{\n \"deviceCode\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://app.felan.ai/api/v1/hosts/pairings/poll")
.header("Content-Type", "application/json")
.body("{\n \"deviceCode\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.felan.ai/api/v1/hosts/pairings/poll")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"deviceCode\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"credential": "<string>",
"host": {
"id": "<string>",
"teamId": "<string>",
"userId": "<string>"
}
}{
"code": "authorization_pending",
"message": "<string>",
"supported": {
"protocol": [
4503599627370495
],
"rowSchemaVersion": [
4503599627370495
]
}
}{
"code": "authorization_pending",
"message": "<string>",
"supported": {
"protocol": [
4503599627370495
],
"rowSchemaVersion": [
4503599627370495
]
}
}Body
application/json
Pattern:
^[A-Za-z0-9_-]{32,128}$