List Child Clients

Returns all descendant clients of the target client as a flat list.

GET/ops/v1/clients/children#

Query Parameters

client_identityString
`client_identity` of the target client. Defaults to the signed-in member's client. Must be the signed-in client or one of its descendants; any other value returns 403 `OuterClientScopeForbidden`

Response Fields

client_identityStringrequired
`client_identity` of the target client
childrenArray of objectsrequired
All descendant clients, excluding the target client itself (breadth-first order)
client_identityString
`client_identity` of the child client
client_nameString
Child client name
parent_client_identityString
`client_identity` of the parent client. Use it to rebuild the tree
depthNumber
Depth from the target client (direct child = 1)

If there are no child clients, children is an empty array. Deleted clients are excluded. Pass a client_identity from this response as the client_identity parameter of other query APIs to fetch data for that client.

curl -X GET "https://opsapi.edutap.ai/ops/v1/clients/children" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"
import requests

res = requests.get(
    "https://opsapi.edutap.ai/ops/v1/clients/children",
    headers={"Authorization": "Bearer ${ACCESS_TOKEN}"},
)
print(res.json())
package main

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

func main() {
	req, _ := http.NewRequest("GET", "https://opsapi.edutap.ai/ops/v1/clients/children", nil)
	req.Header.Set("Authorization", "Bearer ${ACCESS_TOKEN}")
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	b, _ := io.ReadAll(res.Body)
	fmt.Println(string(b))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
  public static void main(String[] args) throws Exception {
    HttpRequest req = HttpRequest.newBuilder()
        .uri(URI.create("https://opsapi.edutap.ai/ops/v1/clients/children"))
        .header("Authorization", "Bearer ${ACCESS_TOKEN}")
        .GET()
        .build();
    HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
    System.out.println(res.body());
  }
}
const res = await fetch("https://opsapi.edutap.ai/ops/v1/clients/children", {
  method: "GET",
  headers: {"Authorization": "Bearer ${ACCESS_TOKEN}"},
});
console.log(await res.json());
Response
{
  "client_identity": "acme",
  "children": [
    {
      "client_identity": "acme_kr",
      "client_name": "ACME KR",
      "parent_client_identity": "acme",
      "depth": 1
    },
    {
      "client_identity": "acme_kr_seoul",
      "client_name": "ACME 서울",
      "parent_client_identity": "acme_kr",
      "depth": 2
    }
  ]
}