List products
curl --request GET \
--url https://api.1password.eu/v1/distributor-products \
--header 'Authorization: Bearer <token>'const url = 'https://api.1password.eu/v1/distributor-products';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.1password.eu/v1/distributor-products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.1password.eu/v1/distributor-products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using RestSharp;
var options = new RestClientOptions("https://api.1password.eu/v1/distributor-products");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.get("https://api.1password.eu/v1/distributor-products")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.1password.eu/v1/distributor-products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$response = Invoke-WebRequest -Uri 'https://api.1password.eu/v1/distributor-products' -Method GET -Headers $headersrequire 'uri'
require 'net/http'
url = URI("https://api.1password.eu/v1/distributor-products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": [
{
"name": "1Password MSP",
"product_id": "1p-msp-us"
}
],
"next_page_token": ""
}{
"code": "invalid_argument",
"message": "The 'email' field must be a valid email address."
}{
"code": "unauthenticated",
"message": "Authentication required. Please provide a valid bearer token."
}{
"code": "not_found",
"message": "The requested resource was not found."
}"Too Many Requests"{
"code": "internal",
"message": "An internal error occurred. Please try again later."
}Products
List products
Retrieve the 1Password products a distributor can provision.
GET
/
v1
/
distributor-products
List products
curl --request GET \
--url https://api.1password.eu/v1/distributor-products \
--header 'Authorization: Bearer <token>'const url = 'https://api.1password.eu/v1/distributor-products';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://api.1password.eu/v1/distributor-products"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.1password.eu/v1/distributor-products"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}using RestSharp;
var options = new RestClientOptions("https://api.1password.eu/v1/distributor-products");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.get("https://api.1password.eu/v1/distributor-products")
.header("Authorization", "Bearer <token>")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.1password.eu/v1/distributor-products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$response = Invoke-WebRequest -Uri 'https://api.1password.eu/v1/distributor-products' -Method GET -Headers $headersrequire 'uri'
require 'net/http'
url = URI("https://api.1password.eu/v1/distributor-products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": [
{
"name": "1Password MSP",
"product_id": "1p-msp-us"
}
],
"next_page_token": ""
}{
"code": "invalid_argument",
"message": "The 'email' field must be a valid email address."
}{
"code": "unauthenticated",
"message": "Authentication required. Please provide a valid bearer token."
}{
"code": "not_found",
"message": "The requested resource was not found."
}"Too Many Requests"{
"code": "internal",
"message": "An internal error occurred. Please try again later."
}Retrieve all products available to your distributor account. Use the
product_id returned by this endpoint when creating or linking entitlements.
This endpoint supports pagination.Authorizations
Bearer token authentication. When a distributor is registered, they receive an opaque bearer token (prefixed op_b_). Include it in the Authorization header of every request as Bearer <token>.
Query Parameters
The maximum number of products to return per page. Defaults to 100 when omitted or set to 0. Values greater than 100 are clamped to 100. Negative values return an invalid_argument error.
Required range:
x >= 0The pagination token that identifies the page of results to return. Tokens don't expire and must be treated as opaque.
Response
A paginated list of products available to the distributor.
Was this page helpful?