curl --request POST \
--url https://scribe.skeptrune.com/api/threads/{id}/resolve \
--cookie scribe_session=import requests
url = "https://scribe.skeptrune.com/api/threads/{id}/resolve"
headers = {"cookie": "scribe_session="}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {cookie: 'scribe_session='}};
fetch('https://scribe.skeptrune.com/api/threads/{id}/resolve', 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/threads/{id}/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/threads/{id}/resolve"
req, _ := http.NewRequest("POST", 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.post("https://scribe.skeptrune.com/api/threads/{id}/resolve")
.header("cookie", "scribe_session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe.skeptrune.com/api/threads/{id}/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = 'scribe_session='
response = http.request(request)
puts response.read_body{
"id": "thr_5aBcDeFgHiJkLmNoPq6r",
"docId": "doc_S9tUvWxYzAbCdEfGh12i",
"kind": "comment",
"anchorJson": "{\"from\":{\"type\":\"relative\",\"item\":10},\"to\":{\"type\":\"relative\",\"item\":24}}",
"quotedText": "ship in Q2",
"proposedText": null,
"status": "open",
"createdBy": "usr_V1StGXR8_Z5jdHi6BmyT",
"createdByName": "Ada Lovelace",
"createdByKind": "human",
"createdAt": 1752624000000,
"updatedAt": 1752624000000,
"resolvedBy": null,
"resolvedAt": null
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}Resolve a thread
Marks an open thread as resolved. Requires comment access on the document; API keys with edit access resolve as their agent identity.
curl --request POST \
--url https://scribe.skeptrune.com/api/threads/{id}/resolve \
--cookie scribe_session=import requests
url = "https://scribe.skeptrune.com/api/threads/{id}/resolve"
headers = {"cookie": "scribe_session="}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {cookie: 'scribe_session='}};
fetch('https://scribe.skeptrune.com/api/threads/{id}/resolve', 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/threads/{id}/resolve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/threads/{id}/resolve"
req, _ := http.NewRequest("POST", 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.post("https://scribe.skeptrune.com/api/threads/{id}/resolve")
.header("cookie", "scribe_session=")
.asString();require 'uri'
require 'net/http'
url = URI("https://scribe.skeptrune.com/api/threads/{id}/resolve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["cookie"] = 'scribe_session='
response = http.request(request)
puts response.read_body{
"id": "thr_5aBcDeFgHiJkLmNoPq6r",
"docId": "doc_S9tUvWxYzAbCdEfGh12i",
"kind": "comment",
"anchorJson": "{\"from\":{\"type\":\"relative\",\"item\":10},\"to\":{\"type\":\"relative\",\"item\":24}}",
"quotedText": "ship in Q2",
"proposedText": null,
"status": "open",
"createdBy": "usr_V1StGXR8_Z5jdHi6BmyT",
"createdByName": "Ada Lovelace",
"createdByKind": "human",
"createdAt": 1752624000000,
"updatedAt": 1752624000000,
"resolvedBy": null,
"resolvedAt": null
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}{
"error": {
"code": "not_found",
"message": "No such document."
}
}{
"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.
Path Parameters
Id of the thread to resolve.
Response
The resolved thread.
A comment or suggestion thread anchored to a document range.
Thread id.
"thr_5aBcDeFgHiJkLmNoPq6r"
Document the thread is anchored to.
"doc_S9tUvWxYzAbCdEfGh12i"
Kind of discussion thread.
comment, suggestion "comment"
Serialized Yjs relative positions ({from,to}) anchoring the thread.
"{\"from\":{\"type\":\"relative\",\"item\":10},\"to\":{\"type\":\"relative\",\"item\":24}}"
Text that was selected when the thread was created.
"ship in Q2"
Replacement text (suggestions only).
"ship in Q3"
Current lifecycle status of the thread.
open, resolved, accepted, rejected "open"
User id of the thread creator.
"usr_V1StGXR8_Z5jdHi6BmyT"
Display name of the thread creator — the creator's name or handle (agent creators carry the name of their API key). Null when the creator row no longer exists.
"Ada Lovelace"
Whether the thread creator is a person ('human') or an API-key agent identity ('agent'). Null when the creator row no longer exists.
human, agent, null "human"
When the thread was started (epoch milliseconds).
1752624000000
When the thread last changed (epoch milliseconds).
1752624000000
User id who resolved/accepted/rejected the thread, or null.
"usr_V1StGXR8_Z5jdHi6BmyT"
When the thread left the open state, or null.
1752624000000