List document requests
curl --request GET \
--url https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests', 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://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests",
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://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests"
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://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests")
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{
"data": [
{
"id": "dr_01K5X3P8C1",
"referral_id": "<string>",
"type": "bank_statement",
"status": "requested",
"requested_from": "partner",
"description": "Business bank statements for Feb and Mar 2026, all accounts",
"object": "document_request",
"periods": [
"<string>"
],
"why": "Lenders want six months. You sent Apr–Jul.",
"rejection_reason": "<string>",
"document_ids": [
"<string>"
],
"hosted_url": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"satisfied_at": "2023-11-07T05:31:56Z"
}
]
}{
"type": "https://api.meet-oj.com/problems/duplicate-external-id",
"title": "Referral already exists",
"status": 409,
"code": "invalid_request",
"request_id": "req_01K5X4A9M2",
"detail": "A referral with external_id cust_8842 was created on 2026-09-20 as ref_01K5X3K7Q2.",
"instance": "/partner/v0/referrals",
"param": "<string>"
}Documents
List document requests
Returns every document request on the referral, open and closed. Each one says what is needed, for which
months, why, and whether O.J. is waiting on you (requested_from: partner) or on the borrower
(requested_from: borrower). Requests you are responsible for are what put a referral into needs_partner.
GET
/
referrals
/
{referral_id}
/
document_requests
List document requests
curl --request GET \
--url https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests', 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://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests",
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://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests"
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://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.meet-oj.com/partner/v0/referrals/{referral_id}/document_requests")
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{
"data": [
{
"id": "dr_01K5X3P8C1",
"referral_id": "<string>",
"type": "bank_statement",
"status": "requested",
"requested_from": "partner",
"description": "Business bank statements for Feb and Mar 2026, all accounts",
"object": "document_request",
"periods": [
"<string>"
],
"why": "Lenders want six months. You sent Apr–Jul.",
"rejection_reason": "<string>",
"document_ids": [
"<string>"
],
"hosted_url": "<string>",
"requested_at": "2023-11-07T05:31:56Z",
"satisfied_at": "2023-11-07T05:31:56Z"
}
]
}{
"type": "https://api.meet-oj.com/problems/duplicate-external-id",
"title": "Referral already exists",
"status": 409,
"code": "invalid_request",
"request_id": "req_01K5X4A9M2",
"detail": "A referral with external_id cust_8842 was created on 2026-09-20 as ref_01K5X3K7Q2.",
"instance": "/partner/v0/referrals",
"param": "<string>"
}Authorizations
One client per partner per environment. Access tokens expire after 15 minutes. Scopes are granted per client. Sandbox clients use https://sandbox.api.meet-oj.com/oauth/token.
Path Parameters
Example:
"ref_01K5X3K7Q2"
Response
Document requests
Show child attributes
Show child attributes

