Skip to main content
The SIBI public REST API exposes resources for Offers, Products, and Order Cancellation. You can use any HTTP client to make requests. The examples below use curl & fetch.

Endpoint

The REST API is available at: https://api.sibipro.com Resources are exposed under the following base paths:
  • /offers — manage offers (see the Offers reference)
  • /products — look up product details (see the Products reference)
  • /orders — request order cancellation (see the Order Cancellation reference)

Authentication

The SIBI public API uses API keys to authenticate requests. You can create an API key in the SIBI developer dashboard. The API expects the key to be included in all requests in the Authorization header, prefixed by Bearer.
Curl
curl \
  --request GET \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  https://api.sibipro.com/offers
# => {"data": [...]}
Fetch
const response = await fetch('https://api.sibipro.com/offers', {
  method: 'GET',
  headers: { Authorization: `Bearer ${yourApiKey}` },
});
const offers = await response.json();
console.log(JSON.stringify(offers, null, 2));

Making a Request

REST endpoints follow standard HTTP conventions. Use GET to read a resource and POST to create or trigger an action. Request bodies are sent as JSON with Content-Type: application/json.

Reading a resource

Curl
curl \
  --request GET \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  https://api.sibipro.com/products/<SKU>
Fetch
const response = await fetch(`https://api.sibipro.com/products/${sku}`, {
  method: 'GET',
  headers: { Authorization: `Bearer ${yourApiKey}` },
});
const product = await response.json();

Sending data

Curl
curl \
  --request POST \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{"reason": "Customer requested a cancellation"}' \
  https://api.sibipro.com/orders/<ORDER_ID>/cancel
Fetch
const response = await fetch(`https://api.sibipro.com/orders/${orderId}/cancel`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${yourApiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ reason: 'Customer requested a cancellation' }),
});
const result = await response.json();

Responses

Successful responses return JSON. For example, a cancellation request returns:
Response
{
  "cancellationStatus": "pending",
  "cancellationReason": "Customer requested a cancellation",
  "requestedAt": "2024-01-20T12:00:00Z"
}

Errors

Errors are returned with a standard HTTP status code (4xx for client errors, 5xx for server errors) and a JSON body describing the failure:
Error
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input parameters",
  "details": [{ "field": "reason", "error": "Required" }]
}
For full schema details and the complete list of endpoints, see the per-resource references in the navigation.