List policies
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.vendorica.com/v1/policies?page=1&limit=100&sortOrder=asc&lifecycleStatus=draft"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.vendorica.com/v1/policies?page=1&limit=100&sortOrder=asc&lifecycleStatus=draft"
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(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.vendorica.com/v1/policies?page=1&limit=100&sortOrder=asc&lifecycleStatus=draft") .get() .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();const url = 'https://api.vendorica.com/v1/policies?page=1&limit=100&sortOrder=asc&lifecycleStatus=draft';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.vendorica.com/v1/policies";
let querystring = [ ("page", "1"), ("limit", "100"), ("sortOrder", "asc"), ("lifecycleStatus", "draft"), ];
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .query(&querystring) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url 'https://api.vendorica.com/v1/policies?page=1&limit=100&sortOrder=asc&lifecycleStatus=draft' \ --header 'Authorization: Bearer <token>'The organization’s policy register, offset-paginated. Filter by category, ownerUserId, lifecycleStatus (draft | published | archived) or businessUnitId. Without lifecycleStatus, ARCHIVED policies are excluded — archived rows stay on the acknowledgement ledger but are not part of the live register, and a caller asking “what are our policies” means the live ones. Ask for them explicitly with ?lifecycleStatus=archived. The query is strict: an unrecognised parameter is a 422 naming it, never a silently unfiltered 200. Each row summarises its version history — currentVersionNumber / currentVersionPublishedAt for the version in force, latestVersionNumber / latestVersionApprovalStatus for the one being worked on — so “which version is published, and is a revision in flight” does not cost a request per policy.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”Success
object
object
object
Example
{ "success": true, "data": [ { "id": "483c5d95-4e07-44b5-8b8a-5a8230cc80f2", "organizationId": "ddc1eef0-0a4b-46f6-894e-53afb14db631", "slug": "string", "displayName": "string", "category": "string", "ownerUserId": "32dc603f-4deb-4007-8dba-864cc4a16358", "currentVersionId": "922807ac-c304-46ea-8870-10cbb76a75dd", "lifecycleStatus": "string", "renewalIntervalDays": 1, "nextRenewalAt": "2026-08-19T09:41:12.004Z", "businessUnitIds": [ "1e1a030a-6af2-4598-872d-130120f4f0df" ], "createdAt": "2026-08-19T09:41:12.004Z", "updatedAt": "2026-08-19T09:41:12.004Z", "currentVersionNumber": 1, "currentVersionPublishedAt": "2026-08-19T09:41:12.004Z", "latestVersionNumber": 1, "latestVersionApprovalStatus": "string", "versionCount": 1 } ], "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "message": "string", "pagination": { "page": 1, "limit": 1, "total": 1, "totalPages": 1 }}Validation error
object
Example
{ "success": false, "error": "Bad request", "code": "BAD_REQUEST", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Unauthorized
object
Example
{ "success": false, "error": "Unauthorized", "code": "UNAUTHORIZED", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Forbidden — missing scope
object
Example
{ "success": false, "error": "Forbidden", "code": "FORBIDDEN", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Not found
object
Example
{ "success": false, "error": "Resource not found", "code": "NOT_FOUND", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Rate limit exceeded
object
Example
{ "success": false, "error": "Too many requests", "code": "TOO_MANY_REQUESTS", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}