curl --request GET \
--url https://api.harvey.ai/api/v1/intake/requests/{request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.harvey.ai/api/v1/intake/requests/{request_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.harvey.ai/api/v1/intake/requests/{request_id}', 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://api.harvey.ai/api/v1/intake/requests/{request_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.harvey.ai/api/v1/intake/requests/{request_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.harvey.ai/api/v1/intake/requests/{request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.harvey.ai/api/v1/intake/requests/{request_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"request_id": "6b5d8f02-4c1a-4f8e-9a77-2d0c3e5b1a94",
"status": "IN_PROGRESS",
"harvey_url": "https://app.harvey.ai/intake/requests/6b5d8f02-4c1a-4f8e-9a77-2d0c3e5b1a94",
"title": "Review the Northwind master services agreement",
"description": "Counterparty sent back redlines on the termination and liability sections.",
"created_at": "2026-10-09T05:12:59.454218Z",
"updated_at": "2026-10-09T07:41:03.112904Z",
"completed_at": null,
"due_at": "2026-10-16",
"assignee": {
"type": "USER",
"name": "Dana Whitfield"
},
"attachments": [
{
"file_id": "66fead63-460e-4426-a179-39c70b224a99",
"name": "northwind-msa.pdf"
}
]
}{
"error": "User does not have permission to read Intake requests"
}{
"error": "Request not found."
}Get Request
Fetches the status for an intake request.
curl --request GET \
--url https://api.harvey.ai/api/v1/intake/requests/{request_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.harvey.ai/api/v1/intake/requests/{request_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.harvey.ai/api/v1/intake/requests/{request_id}', 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://api.harvey.ai/api/v1/intake/requests/{request_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.harvey.ai/api/v1/intake/requests/{request_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.harvey.ai/api/v1/intake/requests/{request_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.harvey.ai/api/v1/intake/requests/{request_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"request_id": "6b5d8f02-4c1a-4f8e-9a77-2d0c3e5b1a94",
"status": "IN_PROGRESS",
"harvey_url": "https://app.harvey.ai/intake/requests/6b5d8f02-4c1a-4f8e-9a77-2d0c3e5b1a94",
"title": "Review the Northwind master services agreement",
"description": "Counterparty sent back redlines on the termination and liability sections.",
"created_at": "2026-10-09T05:12:59.454218Z",
"updated_at": "2026-10-09T07:41:03.112904Z",
"completed_at": null,
"due_at": "2026-10-16",
"assignee": {
"type": "USER",
"name": "Dana Whitfield"
},
"attachments": [
{
"file_id": "66fead63-460e-4426-a179-39c70b224a99",
"name": "northwind-msa.pdf"
}
]
}{
"error": "User does not have permission to read Intake requests"
}{
"error": "Request not found."
}Permissions
RequiresIntake permissions. If these permissions are not available to select, contact support@harvey.ai.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the intake request, as returned when it was submitted.
Response
The intake request.
The unique identifier of the intake request.
Lifecycle state of an intake request. A state Harvey adds internally is absent here until it is published in this enum, so you can treat these as the complete set.
TODO, IN_PROGRESS, READY_FOR_REVIEW, DONE, CANCELLED Deep link to the request in Harvey.
The request's title. Null when its content is no longer retained.
The request's description. Null when it has none, or its content is no longer retained.
When the request was submitted.
When the request last changed.
When the request reached DONE. Null while it is still open.
The date the request is due. Null when no due date is set.
Who is working the request. Null when nobody is assigned.
Show child attributes
Show child attributes
Files submitted with the request. Empty when it has none.
Show child attributes
Show child attributes