Cancel an offer
curl --request DELETE \
--url https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}', 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.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
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.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}"
req, _ := http.NewRequest("DELETE", 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.delete("https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"offer": {
"offerId": "99999999-9999-4999-8999-999999999999",
"listingId": "77777777-7777-4777-8777-777777777777",
"listingTermId": "88888888-8888-4888-8888-888888888888",
"startsAt": "2026-10-15T00:00:00.000Z",
"endsAt": "2026-11-14T00:00:00.000Z",
"pricePerGpuHourMicroUsd": 2400000,
"downPaymentCents": 500000,
"status": "cancelled",
"cancelReason": "cancelled_by_author",
"createdAt": "2026-10-14T18:30:00.000Z",
"acceptedAt": null,
"isMine": true,
"onMyListing": false
}
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "offer_not_found",
"message": "Ornn could not find that offer."
}
}{
"code": "<string>",
"detail": "<string>"
}Cancel an offer
Cancels an open offer. The organization that posted it can withdraw it, and the listing owner can decline it. Cancelling an offer that is no longer open returns its current state.
DELETE
/
v1
/
markets
/
schedules
/
{listingId}
/
offers
/
{offerId}
Cancel an offer
curl --request DELETE \
--url https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}', 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.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
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.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}"
req, _ := http.NewRequest("DELETE", 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.delete("https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ornn.com/v1/markets/schedules/{listingId}/offers/{offerId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"offer": {
"offerId": "99999999-9999-4999-8999-999999999999",
"listingId": "77777777-7777-4777-8777-777777777777",
"listingTermId": "88888888-8888-4888-8888-888888888888",
"startsAt": "2026-10-15T00:00:00.000Z",
"endsAt": "2026-11-14T00:00:00.000Z",
"pricePerGpuHourMicroUsd": 2400000,
"downPaymentCents": 500000,
"status": "cancelled",
"cancelReason": "cancelled_by_author",
"createdAt": "2026-10-14T18:30:00.000Z",
"acceptedAt": null,
"isMine": true,
"onMyListing": false
}
}{
"code": "<string>",
"detail": "<string>"
}{
"code": "<string>",
"detail": "<string>"
}{
"detail": {
"code": "offer_not_found",
"message": "Ornn could not find that offer."
}
}{
"code": "<string>",
"detail": "<string>"
}CLI equivalent:
ornn offers cancel --listing-id <listing-id> --offer-id <offer-id> --yes.Authorizations
Create an organization API key in Account Settings > Developer. Do not send this key to the Kubernetes API server.
Path Parameters
Listing ID (capacityListingId or listingId).
Offer ID.
Response
The offer after cancellation.
Show child attributes
Show child attributes
Was this page helpful?