Clever Developer Docs

Suggest Edits

Schema & Data Validation

API Version 1.2, published 3/15/2017

 

Clever guarantees required fields are always present in the given resource. Clever guarantees fields with validation will only contain the possible values or formats listed. All other data is shown as it exists in the source system.

Data availability is subject to the decision of schools or districts to share their data.

Resource availability depends on your application's scopes.

Schema

Our API Explorer (below!) allows you to test out endpoints. In addition, the /{record type}/{id} endpoints contain the detailed list of fields for each record type. Information that is guaranteed, as well as data that is validated or normalized by Clever, will be marked on that endpoint.

Testing the API Explorer

Use your API token here if you have one, or you can use 'DEMO_TOKEN' to explore the API.

For relationships between records, check out Clever's Data Model.

Field formats

In our documentation on each endpoint, we'll refer to a few field formats. Here's what they mean and important information about each one!

ObjectID

All Clever IDs take the ObjectID format. We guarantee that ObjectIDs are globally unique across districts and user types.

String

Clever's strings have no maximum length - if you have to set maximum character lengths for fields, we recommend setting the max to 255 characters for safety.

Date

When a district provides Clever with term start and end dates, we validate that the field is some kind of expression of time but do not yet normalize that to a consistent representation.

Because of this, you may encounter strings like:

  • "2015-08-25"
  • "2015-08-25T00:00:00.000Z"
  • "2015-08-25 00:00:00.000000"

For best results, your application should consider all of these strings as equivalent to "2015-08-25"

Boolean

Booleans have a value of either:

  • Y
  • N

Link

Relative links are one way to discover and navigate to related data.

Let's examine the tail end of the JSON response to /me while using a student instant login token. Here's an example links node:

"links":
  [
    { "rel":"self","uri":"/me" },
    { "rel":"canonical","uri":"/v1.1/students/4fee004cca2e43cf2700028b" },
    { "rel":"district","uri":"/v1.1/districts/4feecb637de9810111e000002" }
  ]

Each relative link is structured:

rel - a string containing a keyword describing why you might be interested in the uri part
uri - a string containing the path component of a Clever API request

The rel keyword you're most interested in while handling this step is canonical. This is a fancy way of saying that the primary way to retrieve information about the object described in your API request is by requesting the path in the uri key.

To use that uri, you would attach the path component to https://api.clever.com. In the above canonical example, that would be https://api.clever.com/v1.1/students/4fee004cca2e43cf2700028b. This path will be accessible using the same instant login token or the appropriate district bearer token.

We strongly recommend following relative links to access related pieces of data. Constructing URLs by hand can be prone to errors and by following relative links, you'll be more resilient to access pattern changes in the Clever API.

Paging

Queries on the Clever API can return large numbers of results. To improve performance and make the data more consumable, the Clever API supports paginating large responses.

To iterate through results, you should follow the rel:next link contained with every set of results. For example, querying the /students endpoint with a district bearer token you might see the following:

"links": [
    {
      "rel": "next",
      "uri": "/v1.1/students?starting_after=530e5961049e75a9262cffe4"
    }
  ]

The link uses the starting_after parameter to jump to the next page of results. This form of pagination is called range-based pagination. Elements are returned sorted with ascending IDs (based on create time).

Using relative links for pagination

If there are more results to consume, the response's links object will have a rel link called next, that lets you query the next page of results. Similarly, there may be a prev link for the previous page of results.

Example links object for request GET /v1.2/districts?starting_after=53ced71e65a64d5918157c04:

"links": [
    {
        "rel": "self",
        "uri": "/v1.1/districts?starting_after=53ced71e65a64d5918157c04"
    },
    {
        "rel": "next",
        "uri": "/v1.1/districts?starting_after=56fad73b82c6fd818c6b48cc"
    },
    {
        "rel": "prev",
        "uri": "/v1.1/districts?ending_before=53ced71e65a64d5918157c04"
    }
]

starting_after queries may have prev links even when there are no previous results. Following such links will return an empty array of data. Similarly, ending_before queries may have next links even when there are no more results, and following those links will return an empty array.

Limits

Rather than serving every result at once, by default the Clever API limits the number of entries in responses to 100 per page. You can change the number of results returned by setting the limit parameter. For instance, GET /v1.1/districts?limit=30 returns at most 30 districts

The maximum limit is 10000 records per page.

Suggest Edits

API Responses and Error Handling

 
HTTP Response Code
Meaning
Action to take

200

Success

Process the response.

400

Bad request

Check your API token and request body. Do not retry request. The troubleshooting pages for each API also have tips for what to look for!

401

Invalid auth

Check your API token and request body. Do not retry request. The troubleshooting pages for each API also have tips for what to look for!

404

Resource not available

Check your API token and request URL - you may be using the wrong token or the resource may have been unshared with your application or deleted.

413

Request entity too large

Your limit parameter may be over 10000; reduce accordingly.

429

Rate limit exceeded

Try again after rate limit period expires.

500, 502, 503

Clever API failure

Wait and retry request. If you see these regularly, reach out to tech-support@clever.com.

501

Not implemented

Your client is attempting an unsupported request. Try an alternative request. Do not retry request.

Rate Limiting

Requests to Clever are rate-limited. Requests are limited to 1200 requests per minute per Bearer Token (instant login or district). These limits are not averages; rather, the allowed count of requests resets every minute.

Rate-limited requests contain these HTTP response headers:

  • X-RateLimit-Reset: Unix timestamp when the rate limit counter will be reset.
  • X-RateLimit-Limit: The total number of requests allowed in a time period.
  • X-RateLimit-Remaining: Number of requests that can be made until the reset time.
  • X-RateLimit-Bucket: Name of the rate-limit bucket for this request

Request:

HOST api.clever.com
GET /v1.2/students/123
AUTHORIZATION Bearer ABCD

Response headers:

Status: 200 OK
X-RateLimit-Limit: 1200
X-RateLimit-Remaining: 1199
X-RateLimit-Reset: 1394506274
X-RateLimit-Bucket: abc123

In case the client hits a rate limit, an empty response with a 429 Too Many Requests status code is returned.

Request:

HOST api.clever.com
GET /v1.2/students/123
AUTHORIZATION Bearer ABC

Response headers:

Status: 429 Too Many Requests
X-RateLimit-Limit: 1200
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1394506274
X-RateLimit-Bucket: abc123

Retrying requests after errors

When a request against the Clever API fails, use a retry strategy with exponential backoff (i.e. wait 1 second after first error, then 2, then 4, etc.). If you are unable to receive a successful response after five retries, you may want to cease the sync and resume at a later time.

See example exponential backoff implementations in PHP and C#.

Is Clever down?

It's unlikely that our APIs are down, but parts of the API naturally have outages here and there. Check status.clever.com to see how Clever is doing or review past outages. You can even subscribe to notifications so you'll always know what's going on.

Suggest Edits

clever.com/oauth/tokens

 
gethttps://clever.com/oauth/tokens
curl --request GET \
  --url 'https://clever.com/oauth/tokens?owner_type=district'
var request = require("request");

var options = { method: 'GET',
  url: 'https://clever.com/oauth/tokens',
  qs: { owner_type: 'district' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://clever.com/oauth/tokens?owner_type=district")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://clever.com/oauth/tokens?owner_type=district");

xhr.send(data);
import requests

url = "https://clever.com/oauth/tokens"

querystring = {"owner_type":"district"}

response = requests.request("GET", url, params=querystring)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

owner_type
string
required

This parameter is required, and "district" is the only supported value

Headers

Authorization
string

This endpoint requires HTTP Basic authentication with the username set to your client_id and the password your client_secret. You can do this manually by constructing a string in this format: "<client id>:<client secret>", then encoding the string in Base64.

 

Set your Authorization HTTP header to this encrypted string preceded by the keyword Basic and a space:

basic_auth_header = "Authorization: Basic " + Base64.encode(client_id + ":" client_secret)

Suggest Edits

clever.com/oauth/tokens

 
posthttps://clever.com/oauth/tokens
curl --request POST \
  --url https://clever.com/oauth/tokens
var request = require("request");

var options = { method: 'POST', url: 'https://clever.com/oauth/tokens' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://clever.com/oauth/tokens")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://clever.com/oauth/tokens");

xhr.send(data);
import requests

url = "https://clever.com/oauth/tokens"

response = requests.request("POST", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

code
string
grant_type
string
redirect_uri
string

Headers

Authorization
string
 
Suggest Edits

clever.com/oauth/tokeninfo

 
gethttps://clever.com/oauth/tokeninfo
curl --request GET \
  --url https://clever.com/oauth/tokeninfo
var request = require("request");

var options = { method: 'GET', url: 'https://clever.com/oauth/tokeninfo' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://clever.com/oauth/tokeninfo")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://clever.com/oauth/tokeninfo");

xhr.send(data);
import requests

url = "https://clever.com/oauth/tokeninfo"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Headers

Authorization
string
 
Suggest Edits

api.clever.com/v1.2/me

 
gethttps://api.clever.com/v1.2/me
curl -H 'Authorization: Bearer il_DEMO_BASIC_STUDENT_TOKEN' -X GET https://api.clever.com/v1.2/me
A binary file was returned

You couldn't be authenticated

Try the API to see results

Headers

Authorization
string
 
Suggest Edits

Districts

 
Suggest Edits

/districts

Returns a list of districts

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts
curl --request GET \
  --url https://api.clever.com/v1.2/districts
var request = require("request");

var options = { method: 'GET', url: 'https://api.clever.com/v1.2/districts' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Response

OK Response

dataarray
Suggest Edits

/districts/{id}

Returns a specific district

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts/id
curl --request GET \
  --url https://api.clever.com/v1.2/districts/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/districts/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

include
string

Response

OK Response

dataobject
data.idstring
data.mdr_numberstring
data.namestring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable Clever id for the district

ObjectID

name

District (or CMO) name

String

Optional fields

Field name
Description
Format

mdr_number

MDR number (used for matching district records)

String

Suggest Edits

/districts/{id}/admins

Returns the admins for a district

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts/id/admins
curl --request GET \
  --url https://api.clever.com/v1.2/districts/id/admins
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/districts/id/admins' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts/id/admins")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts/id/admins"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts/id/admins",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts/id/admins")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts/id/admins"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/districts/{id}/schools

Returns the schools for a district

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts/id/schools
curl --request GET \
  --url https://api.clever.com/v1.2/districts/id/schools
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/districts/id/schools' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts/id/schools")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts/id/schools"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts/id/schools",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts/id/schools")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts/id/schools"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/districts/{id}/sections

Returns the sections for a district

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts/id/sections
curl --request GET \
  --url https://api.clever.com/v1.2/districts/id/sections
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/districts/id/sections' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts/id/sections")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts/id/sections"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts/id/sections",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts/id/sections")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts/id/sections"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/districts/{id}/status

Returns the status of the district

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts/id/status
curl --request GET \
  --url https://api.clever.com/v1.2/districts/id/status
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/districts/id/status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts/id/status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts/id/status"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts/id/status",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts/id/status")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts/id/status"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataarray

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable id for district created by Clever.

ObjectID

state

Possible values: ["running", "pending", "error", "paused"] Pending means there is an error that the district can fix; Error means there is an error that Clever can fix. Paused means that the district's sync is paused to reflect last year's data.

String

last_sync

Last successful sync of district's data - always present as long as the district has synced at least once.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ.)

instant_login

Indicates whether the district supports Clever Instant Login. Truth values indicate support.

Boolean ("true" or "false")

launch_date

Indicates when the end users in district are able to start logging in to the application.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ.)

Optional fields

Field name
Description
Format

status.error

User-facing string describing a district error state. Typically useful only for district administrators. Should not be used to programmatically determine district status.

String

sis_type

Indicates the type of SIS this district's data originates from. "sftp" is returned when district data is synced via SFTP or CSV upload. Other string values vary.

String

pause_start

Indicates when the district's data gets paused to reflect last data in the SIS.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ.)

pause_end

Indicates when the district's data is unpaused to reflect data for the new school year.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ.)

Suggest Edits

/districts/{id}/students

Returns the students for a district

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts/id/students
curl --request GET \
  --url https://api.clever.com/v1.2/districts/id/students
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/districts/id/students' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts/id/students")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts/id/students"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts/id/students",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts/id/students")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts/id/students"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/districts/{id}/teachers

Returns the teachers for a district

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/districts/id/teachers
curl --request GET \
  --url https://api.clever.com/v1.2/districts/id/teachers
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/districts/id/teachers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/districts/id/teachers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/districts/id/teachers"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/districts/id/teachers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/districts/id/teachers")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/districts/id/teachers"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

District Admins

 
Suggest Edits

/district_admins

Returns a list of district admins

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/district_admins
curl --request GET \
  --url https://api.clever.com/v1.2/district_admins
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/district_admins' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/district_admins")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/district_admins"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/district_admins",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/district_admins")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/district_admins"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

starting_after
string
ending_before
string
show_links
string

Response

OK Response

dataarray
Suggest Edits

/district_admins/{id}

Returns a specific district admin

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/district_admins/id
curl --request GET \
  --url https://api.clever.com/v1.2/district_admins/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/district_admins/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/district_admins/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/district_admins/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/district_admins/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/district_admins/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/district_admins/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.districtstring
data.emailstring
data.idstring
data.nameobject
data.name.firststring
data.name.laststring
data.name.middlestring
data.titlestring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable id for district administrator created by Clever.

ObjectID

district

Globally unique and stable id for admin's district.

ObjectID

name.first

The district admin's first name

String

name.last

The district admin's last name

String

email

The district admin's email address

String

Optional fields

Field name
Description
Format

title

The district admin's job title, when available

String

Suggest Edits

School Admins

 
Suggest Edits

/school_admins

Returns a list of school admins

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/school_admins
curl --request GET \
  --url https://api.clever.com/v1.2/school_admins
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/school_admins' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/school_admins")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/school_admins"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/school_admins",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/school_admins")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/school_admins"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray
Suggest Edits

/school_admins/{id}

Returns a specific school admin

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/school_admins/id
curl --request GET \
  --url https://api.clever.com/v1.2/school_admins/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/school_admins/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/school_admins/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/school_admins/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/school_admins/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/school_admins/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/school_admins/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

include
string

Response

OK Response

dataobject
data.credentialsobject
data.credentials.district_usernamestring
data.districtstring
data.emailstring
data.idstring
data.nameobject
data.name.firststring
data.name.laststring
data.name.middlestring
data.schoolsarray
data.staff_idstring
data.titlestring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable id for student administrator created by Clever.

ObjectID

district

Globally unique and stable id for admin's district.

ObjectID

name.first

The school admin's first name

String

name.last

The school admin's last name

String

email

The school admin's email address

String

schools

The list of schools the school admin is associated with

List of ObjectIDs

staff_id

An identifier provided by the district when syncing or creating this administrator.

String

Optional fields

Field name
Description
Format

title

The school admin's job title, if specified.

String

credentials.district_username

School admin's preferred username, specified by district

String

Suggest Edits

/school_admins/{id}/schools

Returns the schools for a school admin

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/school_admins/id/schools
curl --request GET \
  --url https://api.clever.com/v1.2/school_admins/id/schools
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/school_admins/id/schools' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/school_admins/id/schools")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/school_admins/id/schools"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/school_admins/id/schools",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/school_admins/id/schools")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/school_admins/id/schools"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
 
Suggest Edits

/schools

Returns a list of schools

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/schools
curl --request GET \
  --url https://api.clever.com/v1.2/schools
var request = require("request");

var options = { method: 'GET', url: 'https://api.clever.com/v1.2/schools' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/schools")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/schools"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/schools",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/schools")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/schools"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray
Suggest Edits

/schools/{id}

Returns a specific school

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/schools/id
curl --request GET \
  --url https://api.clever.com/v1.2/schools/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/schools/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/schools/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/schools/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/schools/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/schools/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/schools/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.createdstring
data.districtstring
data.high_gradestring
data.idstring
data.last_modifiedstring
data.locationobject
data.location.addressstring
data.location.citystring
data.location.latstring
data.location.lonstring
data.location.statestring
data.location.zipstring
data.low_gradestring
data.mdr_numberstring
data.namestring
data.nces_idstring
data.phonestring
data.principalobject
data.principal.emailstring
data.principal.namestring
data.school_numberstring
data.sis_idstring
data.state_idstring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable Clever id for the district

ObjectID

district

Globally unique and stable id for school's district.

ObjectID

name

School's name

String

last_modified

Last time resource was updated. Initializes to resource creation date.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ)

created

Resource creation date.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ)

sis_id

Internal school identifier from source system.

String

Optional fields

Field name
Description
Format

school_number

District or county school identifier.

String

state_id

State school identifier

String

nces_id

Federal NCES ID for school

String

low_grade

School's beginning grade level.

String (Possible values [ "1", … ,"12", "PreKindergarten","Kindergarten","PostGraduate","Other"].)

high_grade

School's exit grade level.

String (Possible values [ "1", … ,"12", "PreKindergarten","Kindergarten","PostGraduate","Other"]).

principal.name

School's principal name

String

principal.email

School's principal email

String

location.address

School address

String

location.city

School city

String

location.state

School state

String

location.zip

School zip

String

mdr_number

School MDR number

String

phone

School phone number

String

Suggest Edits

/schools/{id}/district

Returns the district for a school

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/schools/id/district
curl --request GET \
  --url https://api.clever.com/v1.2/schools/id/district
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/schools/id/district' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/schools/id/district")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/schools/id/district"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/schools/id/district",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/schools/id/district")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/schools/id/district"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.idstring
data.mdr_numberstring
data.namestring

Entity Not Found

messagestring
Suggest Edits

/schools/{id}/sections

Returns the sections for a school

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/schools/id/sections
curl --request GET \
  --url https://api.clever.com/v1.2/schools/id/sections
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/schools/id/sections' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/schools/id/sections")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/schools/id/sections"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/schools/id/sections",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/schools/id/sections")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/schools/id/sections"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/schools/{id}/students

Returns the students for a school

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/schools/id/students
curl --request GET \
  --url https://api.clever.com/v1.2/schools/id/students
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/schools/id/students' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/schools/id/students")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/schools/id/students"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/schools/id/students",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/schools/id/students")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/schools/id/students"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/schools/{id}/teachers

Returns the teachers for a school

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/schools/id/teachers
curl --request GET \
  --url https://api.clever.com/v1.2/schools/id/teachers
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/schools/id/teachers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/schools/id/teachers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/schools/id/teachers"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/schools/id/teachers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/schools/id/teachers")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/schools/id/teachers"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray

Entity Not Found

messagestring
 
Suggest Edits

/sections

Returns a list of sections

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections
curl --request GET \
  --url https://api.clever.com/v1.2/sections
var request = require("request");

var options = { method: 'GET', url: 'https://api.clever.com/v1.2/sections' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray
Suggest Edits

/sections/{id}

Returns a specific section

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections/id
curl --request GET \
  --url https://api.clever.com/v1.2/sections/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/sections/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.course_descriptionstring
data.course_namestring
data.course_numberstring
data.createdstring
data.districtstring
data.gradestring
data.idstring
data.last_modifiedstring
data.namestring
data.periodstring
data.schoolstring
data.section_numberstring
data.sis_idstring
data.studentsarray
data.subjectstring
data.teacherstring
data.teachersarray
data.termobject
data.term.end_datestring
data.term.namestring
data.term.start_datestring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable id for section created by Clever.

ObjectID

district

Globally unique and stable id for section's district.

ObjectID

school

Globally unique and stable id for section's school.

ObjectID

sis_id

Internal section identifier from source system.

String

last_modified

Last time resource was updated. Initializes to resource creation date.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ.)

created

Resource initialization date

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS:SSSZ.)

name

Section name. Clever uses name from source system when present. If no section name is available, Clever concatenates "course_name" "- teacher_last_name" and "- period".

String

subject

The subject associated with the section.

String (Possible values: ["english/language arts","math","science","social studies","language","homeroom/advisory", "interventions/online learning","technology and engineering","PE and health","arts and music","other"]).

students

List of ids of students in section.

List of ObjectIDs

Optional fields

Field name
Description
Format

teacher

Globally unique and stable id for section's primary teacher.

ObjectID

teachers

List of ids of co-teachers associated with the section. Primary teacher will be the first id in the array (the same as the "sections.teacher" field)

List of ObjectIDs

grade

Section grade level.

String (Possible values [ "1", … ,"12", "PreKindergarten","Kindergarten","PostGraduate","Other"]).

course_name

The name of the course associated with the section.

String

course_description

A description of the course associated with the section.

String

course_number

The course number associated with the section.

String

section_number

Section identifier, set by school or district.

String

period

Bell schedule information for the section.

String

term.name

Name of the term associated with the section.

String

term.start_date

Start date for the term.

Date

term.end_date

End date for the term.

Date

Suggest Edits

/sections/{id}/district

Returns the district for a section

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections/id/district
curl --request GET \
  --url https://api.clever.com/v1.2/sections/id/district
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/sections/id/district' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections/id/district")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections/id/district"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections/id/district",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections/id/district")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections/id/district"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.idstring
data.mdr_numberstring
data.namestring

Entity Not Found

messagestring
Suggest Edits

/sections/{id}/school

Returns the school for a section

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections/id/school
curl --request GET \
  --url https://api.clever.com/v1.2/sections/id/school
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/sections/id/school' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections/id/school")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections/id/school"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections/id/school",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections/id/school")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections/id/school"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.createdstring
data.districtstring
data.high_gradestring
data.idstring
data.last_modifiedstring
data.locationobject
data.location.addressstring
data.location.citystring
data.location.latstring
data.location.lonstring
data.location.statestring
data.location.zipstring
data.low_gradestring
data.mdr_numberstring
data.namestring
data.nces_idstring
data.phonestring
data.principalobject
data.principal.emailstring
data.principal.namestring
data.school_numberstring
data.sis_idstring
data.state_idstring

Entity Not Found

messagestring
Suggest Edits

/sections/{id}/students

Returns the students for a section

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections/id/students
curl --request GET \
  --url https://api.clever.com/v1.2/sections/id/students
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/sections/id/students' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections/id/students")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections/id/students"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections/id/students",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections/id/students")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections/id/students"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/sections/{id}/teacher

Returns the primary teacher for a section

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections/id/teacher
curl --request GET \
  --url https://api.clever.com/v1.2/sections/id/teacher
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/sections/id/teacher' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections/id/teacher")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections/id/teacher"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections/id/teacher",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections/id/teacher")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections/id/teacher"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.createdstring
data.credentialsobject
data.credentials.district_usernamestring
data.districtstring
data.emailstring
data.idstring
data.last_modifiedstring
data.nameobject
data.name.firststring
data.name.laststring
data.name.middlestring
data.schoolstring
data.schoolsarray
data.sis_idstring
data.state_idstring
data.teacher_numberstring
data.titlestring

Entity Not Found

messagestring
Suggest Edits

/sections/{id}/teachers

Returns the teachers for a section

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections/id/teachers
curl --request GET \
  --url https://api.clever.com/v1.2/sections/id/teachers
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/sections/id/teachers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections/id/teachers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections/id/teachers"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections/id/teachers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections/id/teachers")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections/id/teachers"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
 
Suggest Edits

/students

Returns a list of students

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students
curl --request GET \
  --url https://api.clever.com/v1.2/students
var request = require("request");

var options = { method: 'GET', url: 'https://api.clever.com/v1.2/students' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray
Suggest Edits

/students/{id}

Returns a specific student

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students/id
curl --request GET \
  --url https://api.clever.com/v1.2/students/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/students/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

include
string

Response

OK Response

dataobject
data.createdstring
data.credentialsobject
data.credentials.district_usernamestring
data.districtstring
data.dobstring
data.ell_statusstring
data.emailstring
data.genderstring
data.gradestring
data.graduation_yearstring
data.hispanic_ethnicitystring
data.idstring
data.last_modifiedstring
data.locationobject
data.location.addressstring
data.location.citystring
data.location.latstring
data.location.lonstring
data.location.statestring
data.location.zipstring
data.nameobject
data.name.firststring
data.name.laststring
data.name.middlestring
data.racestring
data.schoolstring
data.schoolsarray
data.sis_idstring
data.state_idstring
data.student_numberstring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable id for student, created by Clever.

ObjectID

school

Globally unique and stable id for student's school.

ObjectID

schools

List of school IDs for all schools student is associated with

List of ObjectIDs

district

Globally unique and stable id for student's district.

ObjectID

last_modified

Last time resource was updated. Initializes to resource creation date.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ).

created

Resource creation date

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ

sis_id

Internal student identifier from source system.

String

name.first

Student's first name

String

name.last

Student's last name

String

Optional fields

Field name
Description
Format

name.middle

Student's middle name

String

grade

Student grade level.

String (Possible values [ "1", … ,"12", "PreKindergarten","Kindergarten","PostGraduate","Other"]).

student_number

School- or district- defined student identifier.

String

state_id

State student identifier

String

location.address

Primary student address

String

location.city

Primary student city

String

location.state

Primary student state

String

location.zip

Primary student zip

String

location.lat

Primary student address latitude (deprecated, but may still be synced for some districts)

String

location.lon

Primary student address longitude (deprecated, but may still be synced for some districts)

String

gender

Student gender

String (Possible values "M" or "F")

dob

Student birthdate

String (MM/DD/YYYY format)

race

Student's race

String (Possible values: ["Caucasian", "Asian", "Black or African American", "American Indian", "Hawaiian or Other Pacific Islander", "Two or More Races","Unknown", ""]).

hispanic_ethnicity

Student's Hispanic/Latino ethnicity.

String (Possible values: ["Y", "N", ""]).

email

Student's email address

String

credentials.district_username

District-specified student username

String

Suggest Edits

/students/{id}/contacts

Returns the contacts for a student

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students/id/contacts
curl --request GET \
  --url https://api.clever.com/v1.2/students/id/contacts
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/students/id/contacts' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students/id/contacts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students/id/contacts"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students/id/contacts",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students/id/contacts")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students/id/contacts"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/students/{id}/district

Returns the district for a student

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students/id/district
curl --request GET \
  --url https://api.clever.com/v1.2/students/id/district
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/students/id/district' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students/id/district")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students/id/district"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students/id/district",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students/id/district")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students/id/district"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.idstring
data.mdr_numberstring
data.namestring

Entity Not Found

messagestring
Suggest Edits

/students/{id}/school

Returns the primary school for a student

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students/id/school
curl --request GET \
  --url https://api.clever.com/v1.2/students/id/school
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/students/id/school' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students/id/school")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students/id/school"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students/id/school",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students/id/school")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students/id/school"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.createdstring
data.districtstring
data.high_gradestring
data.idstring
data.last_modifiedstring
data.locationobject
data.location.addressstring
data.location.citystring
data.location.latstring
data.location.lonstring
data.location.statestring
data.location.zipstring
data.low_gradestring
data.mdr_numberstring
data.namestring
data.nces_idstring
data.phonestring
data.principalobject
data.principal.emailstring
data.principal.namestring
data.school_numberstring
data.sis_idstring
data.state_idstring

Entity Not Found

messagestring
Suggest Edits

/students/{id}/sections

Returns the sections for a student

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students/id/sections
curl --request GET \
  --url https://api.clever.com/v1.2/students/id/sections
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/students/id/sections' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students/id/sections")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students/id/sections"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students/id/sections",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students/id/sections")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students/id/sections"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/students/{id}/teachers

Returns the teachers for a student

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students/id/teachers
curl --request GET \
  --url https://api.clever.com/v1.2/students/id/teachers
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/students/id/teachers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students/id/teachers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students/id/teachers"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students/id/teachers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students/id/teachers")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students/id/teachers"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
 
Suggest Edits

/teachers

Returns a list of teachers

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers
curl --request GET \
  --url https://api.clever.com/v1.2/teachers
var request = require("request");

var options = { method: 'GET', url: 'https://api.clever.com/v1.2/teachers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

limit
integer
starting_after
string
ending_before
string
where
string

Response

OK Response

dataarray
Suggest Edits

/teachers/{id}

Returns a specific teacher

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers/id
curl --request GET \
  --url https://api.clever.com/v1.2/teachers/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/teachers/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

include
string

Response

OK Response

dataobject
data.createdstring
data.credentialsobject
data.credentials.district_usernamestring
data.districtstring
data.emailstring
data.idstring
data.last_modifiedstring
data.nameobject
data.name.firststring
data.name.laststring
data.name.middlestring
data.schoolstring
data.schoolsarray
data.sis_idstring
data.state_idstring
data.teacher_numberstring
data.titlestring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable Clever ID for the teacher

ObjectID

school

Globally unique and stable id for teacher's school.

ObjectID

schools

List of school IDs for all schools teacher is associated with

List of ObjectIDs

district

Globally unique and stable id for teacher's district.

ObjectID

last_modified

Last time resource was updated. Initializes to resource creation date.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ).

created

Resource creation date

Date (UTC time in W3C Date Time Format YYYY-MM-DDTHH:mm:SS.SSSZ)

sis_id

Internal teacher identifier from source system.

String

name.first

Teacher's first name

String

name.last

Teacher's last name

String

Optional fields

Field name
Description
Format

name.middle

Teacher's middle name

String

email

Teacher's email address

String

teacher_number

District- or school-assigned teacher identifier

String

state_id

State teacher identifier

String

title

Teacher's title

String

credentials.district_username

District-specified username for the teacher

String

Suggest Edits

/teachers/{id}/district

Returns the district for a teacher

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers/id/district
curl --request GET \
  --url https://api.clever.com/v1.2/teachers/id/district
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/teachers/id/district' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers/id/district")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers/id/district"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers/id/district",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers/id/district")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers/id/district"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.idstring
data.mdr_numberstring
data.namestring

Entity Not Found

messagestring
Suggest Edits

/teachers/{id}/grade_levels

Returns the grade levels for sections a teacher teaches

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers/id/grade_levels
curl --request GET \
  --url https://api.clever.com/v1.2/teachers/id/grade_levels
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/teachers/id/grade_levels' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers/id/grade_levels")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers/id/grade_levels"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers/id/grade_levels",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers/id/grade_levels")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers/id/grade_levels"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/teachers/{id}/school

Retrieves school info for a teacher.

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers/id/school
curl --request GET \
  --url https://api.clever.com/v1.2/teachers/id/school
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/teachers/id/school' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers/id/school")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers/id/school"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers/id/school",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers/id/school")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers/id/school"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.createdstring
data.districtstring
data.high_gradestring
data.idstring
data.last_modifiedstring
data.locationobject
data.location.addressstring
data.location.citystring
data.location.latstring
data.location.lonstring
data.location.statestring
data.location.zipstring
data.low_gradestring
data.mdr_numberstring
data.namestring
data.nces_idstring
data.phonestring
data.principalobject
data.principal.emailstring
data.principal.namestring
data.school_numberstring
data.sis_idstring
data.state_idstring

Entity Not Found

messagestring
Suggest Edits

/teachers/{id}/sections

Returns the sections for a teacher

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers/id/sections
curl --request GET \
  --url https://api.clever.com/v1.2/teachers/id/sections
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/teachers/id/sections' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers/id/sections")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers/id/sections"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers/id/sections",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers/id/sections")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers/id/sections"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/teachers/{id}/students

Returns the students for a teacher

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers/id/students
curl --request GET \
  --url https://api.clever.com/v1.2/teachers/id/students
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/teachers/id/students' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers/id/students")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers/id/students"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers/id/students",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers/id/students")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers/id/students"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
 
Suggest Edits

/contacts

Returns a list of student contacts

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/contacts
curl --request GET \
  --url https://api.clever.com/v1.2/contacts
var request = require("request");

var options = { method: 'GET', url: 'https://api.clever.com/v1.2/contacts' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/contacts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/contacts"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/contacts",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/contacts")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/contacts"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray
Suggest Edits

/contacts/{id}

Returns a specific student contact

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/contacts/id
curl --request GET \
  --url https://api.clever.com/v1.2/contacts/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/contacts/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/contacts/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/contacts/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/contacts/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/contacts/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/contacts/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.districtstring
data.emailstring
data.idstring
data.namestring
data.phonestring
data.phone_typestring
data.relationshipstring
data.sis_idstring
data.studentstring
data.typestring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique id for student contact.

ObjectID

student

Globally unique and stable id for student.

ObjectID

district

Globally unique and stable id for student contact's district.

ObjectID

type

Type of contact

String

Optional fields

Field name
Description
Format

name

Name of contact

String

relationship

Relationship to student

String

phone

Contact phone number

String [Formats: +1 (123) 456-7890 or (123) 456-7890]

phone_type

Type of phone number

String

email

Contact's email address

String

Suggest Edits

/contacts/{id}/district

Returns the district for a student contact

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/contacts/id/district
curl --request GET \
  --url https://api.clever.com/v1.2/contacts/id/district
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/contacts/id/district' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/contacts/id/district")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/contacts/id/district"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/contacts/id/district",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/contacts/id/district")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/contacts/id/district"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.idstring
data.mdr_numberstring
data.namestring

Entity Not Found

messagestring
Suggest Edits

/contacts/{id}/student

Returns the student for a student contact

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/contacts/id/student
curl --request GET \
  --url https://api.clever.com/v1.2/contacts/id/student
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/contacts/id/student' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/contacts/id/student")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/contacts/id/student"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/contacts/id/student",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/contacts/id/student")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/contacts/id/student"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.createdstring
data.credentialsobject
data.credentials.district_usernamestring
data.districtstring
data.dobstring
data.ell_statusstring
data.emailstring
data.genderstring
data.gradestring
data.graduation_yearstring
data.hispanic_ethnicitystring
data.idstring
data.last_modifiedstring
data.locationobject
data.location.addressstring
data.location.citystring
data.location.latstring
data.location.lonstring
data.location.statestring
data.location.zipstring
data.nameobject
data.name.firststring
data.name.laststring
data.name.middlestring
data.racestring
data.schoolstring
data.schoolsarray
data.sis_idstring
data.state_idstring
data.student_numberstring

Entity Not Found

messagestring
Suggest Edits

/events

Returns a list of events

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/events
curl --request GET \
  --url https://api.clever.com/v1.2/events
var request = require("request");

var options = { method: 'GET', url: 'https://api.clever.com/v1.2/events' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/events"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/events",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/events")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/events"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/events/{id}

Returns the specific event

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/events/id
curl --request GET \
  --url https://api.clever.com/v1.2/events/id
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/events/id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/events/id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/events/id"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/events/id",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/events/id")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/events/id"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Response

OK Response

dataobject
data.createdstring
data.idstring
data.typestring

Entity Not Found

messagestring

Guaranteed fields

Field name
Description
Format

id

Globally unique and stable id for event created by Clever.

ObjectID

created

Time of the event.

Date (UTC time in W3C Date Time Format: YYYY-MM-DDTHH:mm:SS.SSSZ.)

type

Type of event. Format is resource.modification.

String ("{resource}.{modification}" format. Possible resources are ["schools","students","sections","teachers", "schooladmins"]. Possible modifications are ["created","updated","deleted"].

data

Event "data" field contains the resource (school, student, section, teacher) that was created or updated.

Varies

Optional fields

Field name
Description
Format

previous_attributes

For events of the "updated" type, the previous_attributes field shows the prior value of the field or fields that have changed.

Varies

Suggest Edits

Record-specific Events

 
Suggest Edits

/school_admins/{id}/events

Returns a list of events for a school admin

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/school_admins/id/events
curl --request GET \
  --url https://api.clever.com/v1.2/school_admins/id/events
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/school_admins/id/events' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/school_admins/id/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/school_admins/id/events"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/school_admins/id/events",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/school_admins/id/events")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/school_admins/id/events"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/schools/{id}/events

Returns a list of events for a school

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/schools/id/events
curl --request GET \
  --url https://api.clever.com/v1.2/schools/id/events
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/schools/id/events' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/schools/id/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/schools/id/events"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/schools/id/events",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/schools/id/events")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/schools/id/events"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/sections/{id}/events

Returns a list of events for a section

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/sections/id/events
curl --request GET \
  --url https://api.clever.com/v1.2/sections/id/events
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/sections/id/events' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/sections/id/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/sections/id/events"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/sections/id/events",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/sections/id/events")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/sections/id/events"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/students/{id}/events

Returns a list of events for a student

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/students/id/events
curl --request GET \
  --url https://api.clever.com/v1.2/students/id/events
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/students/id/events' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/students/id/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/students/id/events"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/students/id/events",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/students/id/events")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/students/id/events"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring
Suggest Edits

/teachers/{id}/events

Returns a list of events for a teacher

 

OAuth2 Auth

Bearer
 Authentication is required for this endpoint.
gethttps://api.clever.com/v1.2/teachers/id/events
curl --request GET \
  --url https://api.clever.com/v1.2/teachers/id/events
var request = require("request");

var options = { method: 'GET',
  url: 'https://api.clever.com/v1.2/teachers/id/events' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.clever.com/v1.2/teachers/id/events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
import requests

url = "https://api.clever.com/v1.2/teachers/id/events"

response = requests.request("GET", url)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.clever.com/v1.2/teachers/id/events",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.clever.com/v1.2/teachers/id/events")
  .get()
  .build();

Response response = client.newCall(request).execute();
package main

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

func main() {

	url := "https://api.clever.com/v1.2/teachers/id/events"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
A binary file was returned

Your OAuth2 token is incorrect or has expired

Try the API to see results

Path Params

id
string
required

Query Params

limit
integer
starting_after
string
ending_before
string

Response

OK Response

dataarray

Entity Not Found

messagestring