curl --request GET \
--url https://scribe.skeptrune.com/api/org/onboarding \
--cookie scribe_session=import requests
url = "https://scribe.skeptrune.com/api/org/onboarding"
headers = {"cookie": "scribe_session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'scribe_session='}};
fetch('https://scribe.skeptrune.com/api/org/onboarding', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scribe.skeptrune.com/api/org/onboarding",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "scribe_session=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scribe.skeptrune.com/api/org/onboarding"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "scribe_session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scribe.skeptrune.com/api/org/onboarding")
.header("cookie", "scribe_session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe.skeptrune.com/api/org/onboarding")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'scribe_session='
response = http.request(request)
puts response.read_body{
"createdNote": true,
"invitedTeammate": false,
"keyCreated": true,
"agentConnected": false
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}Get onboarding progress
Returns the server-derived completion state of each onboarding checklist step: whether the organization has ever created a document, whether a teammate was invited (two or more human members, or any invite), and whether a coding agent is connected. The agent step completes only once an organization API key has actually authenticated a request — creating a key is not enough; keyCreated separately reports that a key exists so clients can show a ‘waiting for its first API call’ state. Requires a user session of an organization member.
curl --request GET \
--url https://scribe.skeptrune.com/api/org/onboarding \
--cookie scribe_session=import requests
url = "https://scribe.skeptrune.com/api/org/onboarding"
headers = {"cookie": "scribe_session="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: 'scribe_session='}};
fetch('https://scribe.skeptrune.com/api/org/onboarding', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scribe.skeptrune.com/api/org/onboarding",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "scribe_session=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scribe.skeptrune.com/api/org/onboarding"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "scribe_session=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scribe.skeptrune.com/api/org/onboarding")
.header("cookie", "scribe_session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe.skeptrune.com/api/org/onboarding")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = 'scribe_session='
response = http.request(request)
puts response.read_body{
"createdNote": true,
"invitedTeammate": false,
"keyCreated": true,
"agentConnected": false
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}Authorizations
Browser session cookie set by the WorkOS sign-in flow.
Response
Completion state of each onboarding step.
Server-derived completion state of each onboarding checklist step.
Whether the organization has ever created a document (trashed documents count).
true
Whether the organization has at least two human members or has created at least one invite.
false
Whether the organization has created at least one API key. Creating a key alone does not complete the coding-agent step — see agentConnected.
true
Whether any of the organization’s API keys has authenticated a request (its last-used timestamp is set) — the confirmation that a coding agent is actually connected.
false