PingDirectory API Reference

Get an Entry (Exclude SN)

GET {{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn

By default, endpoints that retrieve and list entry data return all user attributes and no operational attributes (unless the server is configured to return specified operational attributes by default). The GET /directory/v1/{{dn}} endpoint also supports fine-tuning the response data through the following query parameters:

  • includeAttributes

    Specifies the attribute or attributes in the entry that should be included in the response.

  • excludeAttributes

    Specifies the attribute or attributes in the entry that should be excluded in the response.

These query parameters accept a comma-separated list of attributes to either include or exclude from the response entries. They also support the following aliases as values:

  • *

    Refers to all user attributes of the resource.

  • _operationalAttributes

    Refers to all operational attributes of the resource.

If the same attribute is provided in both includeAttributes and excludeAttributes, an error is returned. When the alias is used, the excludeAttributes parameter takes precedence. For example, includeAttributes=&excludeAttributes=sn returns all user attributes except sn, but excludeAttributes=*&includeAttributes=sn returns no attributes (except DN).

The sample shows the GET /directory/v1/{{dn}} operation to return the base entry and all user attributes for the entry, but exclude sn.

Headers

Authorization      Bearer {{accessToken}}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn' \
--header 'Authorization: Bearer {{accessToken}}'
var options = new RestClientOptions("{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer {{accessToken}}");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
GET /directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn HTTP/1.1
Host: {{apiPath}}
Authorization: Bearer {{accessToken}}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
var settings = {
  "url": "{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{accessToken}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
var request = require('request');
var options = {
  'method': 'GET',
  'url': '{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn',
  'headers': {
    'Authorization': 'Bearer {{accessToken}}'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
import requests

url = "{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn"

payload = {}
headers = {
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'Bearer {{accessToken}}'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
require "uri"
require "net/http"

url = URI("{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {{accessToken}}"

response = http.request(request)
puts response.read_body
var request = URLRequest(url: URL(string: "{{apiPath}}/directory/v1/{{dn}}?includeAttributes=*&excludeAttributes=sn")!,timeoutInterval: Double.infinity)
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()

Example Response

200 OK

{
    "_dn": "uid=lindajones,ou=people,dc=example,dc=com",
    "uid": [
        "lindajones"
    ],
    "cn": [
        "Linda Jones",
        "Linda F. Jones"
    ],
    "objectClass": [
        "top",
        "person",
        "organizationalPerson",
        "inetOrgPerson"
    ],
    "createTimestamp": "2018-05-01T15:04:49.866Z",
    "modifyTimestamp": "2018-05-01T15:04:51.591Z",
    "_links": {
        "schemas": [
            {
                "href": "https://ds.example.com/directory/v1/schemas/inetOrgPerson"
            }
        ],
        "self": {
            "href": "https://ds.example.com/directory/v1/entryUUID=a4fbd3ca-f7a0-42f2-af66-13f2c0dd8cd1,ou=people,dc=example,dc=com"
        }
    }
}