NextSchoolNextSchool Data API

Refresh Token

Renew expired access tokens using your refresh token

Refresh Token

curl -X POST https://data.nextschool.io/ \
  -H "Content-Type: application/json" \
  -d '{
    "query": "mutation { refreshToken(refreshToken: \"YOUR_REFRESH_TOKEN\") { accessToken expiresIn } }"
  }'
const response = await fetch('https://data.nextschool.io/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    query: `mutation {
      refreshToken(refreshToken: "${refreshToken}") {
        accessToken
        expiresIn
      }
    }`
  })
});
const { data } = await response.json();
const newAccessToken = data.refreshToken.accessToken;
response = requests.post('https://data.nextschool.io/', json={
    'query': f'''mutation {{
        refreshToken(refreshToken: "{refresh_token}") {{
            accessToken
            expiresIn
        }}
    }}'''
})
new_token = response.json()['data']['refreshToken']['accessToken']
<?php
$ch = curl_init('https://data.nextschool.io/');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS => json_encode([
        'query' => "mutation { refreshToken(refreshToken: \"$refreshToken\") { accessToken expiresIn } }"
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
$newAccessToken = $result['data']['refreshToken']['accessToken'];
query := fmt.Sprintf(`mutation {
    refreshToken(refreshToken: "%s") { accessToken expiresIn }
}`, refreshToken)
body, _ := json.Marshal(map[string]string{"query": query})
req, _ := http.NewRequest("POST", "https://data.nextschool.io/", bytes.NewBuffer(body))
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
let resp = client.post("https://data.nextschool.io/")
    .header("Content-Type", "application/json")
    .json(&serde_json::json!({
        "query": format!(r#"mutation {{
            refreshToken(refreshToken: "{}") {{ accessToken expiresIn }}
        }}"#, refresh_token)
    }))
    .send().await?
    .json::<serde_json::Value>().await?;

let new_token = resp["data"]["refreshToken"]["accessToken"].as_str().unwrap();

On this page