curl --request GET \
--url https://api.generalvalidation.com/api/v1/organization-members/{memberUuid} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}', 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.generalvalidation.com/api/v1/organization-members/{memberUuid}",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}"
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))
}HttpResponse<String> response = Unirest.get("https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}")
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{
"createdAt": "<string>",
"displayName": "<string>",
"email": "<string>",
"entraRole": "reader",
"externalSubject": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberUuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 2,
"role": "reader",
"roleSource": "invited",
"status": "active",
"updatedAt": "<string>",
"userPrincipalName": "<string>"
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}Get an Organization member
The ETag response header is the If-Match value for changing or removing this member.
Requires the GV.APIOwner application role, or a higher role (Owner > Contributor > Reader).
curl --request GET \
--url https://api.generalvalidation.com/api/v1/organization-members/{memberUuid} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}', 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.generalvalidation.com/api/v1/organization-members/{memberUuid}",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}"
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))
}HttpResponse<String> response = Unirest.get("https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.generalvalidation.com/api/v1/organization-members/{memberUuid}")
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{
"createdAt": "<string>",
"displayName": "<string>",
"email": "<string>",
"entraRole": "reader",
"externalSubject": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberUuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"revision": 2,
"role": "reader",
"roleSource": "invited",
"status": "active",
"updatedAt": "<string>",
"userPrincipalName": "<string>"
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}{
"code": "<string>",
"detail": "<string>",
"instance": "<string>",
"requestId": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"diagnostics": {}
}Authorizations
Microsoft Entra application token issued by the caller's Organization tenant for this multitenant API. Request the .default scope and assign the application the required GV.APIReader, GV.APIContributor, or GV.APIOwner role.
Path Parameters
The member's memberUuid.
Response
Current member state.
Email from the person's Microsoft Entra account, or null when it has none.
Role from the member's Entra application role assignment at their latest sign-in, if any.
reader, contributor, owner The person's Microsoft Entra object ID in the Organization's directory.
Version of the membership; each role or status change increases it. The ETag header of GET /api/v1/organization-members/{memberUuid} is built from it.
x >= 1Role the member holds. While roleSource is entra, it follows the Entra assignment. An active member acts with the higher of this role and the Entra application role on their token.
reader, contributor, owner Whether an invitation or Owner edit governs the role, or an Entra application role assignment alone.
invited, entra disabled means an Owner removed the member, or the member joined through a Microsoft Entra assignment that is gone. A disabled member cannot call the API.
active, disabled The person's Microsoft Entra sign-in name.