SalesOS

Quote Versions

Quote revision history

Org-wide quote version statistics

GET
/v1/quote-versions/stats

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

curl -X GET "https://api.salesos.org/v1/quote-versions/stats" \
  -H "Authorization: Bearer <token>"

List versions for a quote

GET
/v1/quotes/{quoteId}/versions

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

quoteIdRequiredstring
curl -X GET "https://api.salesos.org/v1/quotes/<string>/versions" \
  -H "Authorization: Bearer <token>"

Snapshot the current quote as a new version

POST
/v1/quotes/{quoteId}/versions

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
reasonstring
descriptionstring

Path Parameters

quoteIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/quotes/<string>/versions" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "string",
    "description": "string"
  }'

Get the latest version of a quote

GET
/v1/quotes/{quoteId}/versions/latest

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

quoteIdRequiredstring
curl -X GET "https://api.salesos.org/v1/quotes/<string>/versions/latest" \
  -H "Authorization: Bearer <token>"

{}

Count versions of a quote

GET
/v1/quotes/{quoteId}/versions/count

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

quoteIdRequiredstring
curl -X GET "https://api.salesos.org/v1/quotes/<string>/versions/count" \
  -H "Authorization: Bearer <token>"

Get a version by number

GET
/v1/quotes/{quoteId}/versions/number/{versionNumber}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

quoteIdRequiredstring
versionNumberRequirednumber
curl -X GET "https://api.salesos.org/v1/quotes/<string>/versions/number/0" \
  -H "Authorization: Bearer <token>"

Diff a stored version against the current quote

GET
/v1/quotes/{quoteId}/versions/{versionId}/changes-since

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

quoteIdRequiredstring
versionIdRequiredstring
curl -X GET "https://api.salesos.org/v1/quotes/<string>/versions/<string>/changes-since" \
  -H "Authorization: Bearer <token>"

Get one version

GET
/v1/quotes/{quoteId}/versions/{versionId}

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Path Parameters

quoteIdRequiredstring
versionIdRequiredstring
curl -X GET "https://api.salesos.org/v1/quotes/<string>/versions/<string>" \
  -H "Authorization: Bearer <token>"

Restore a quote to a previous version

POST
/v1/quotes/{quoteId}/versions/restore

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
versionIdRequiredstring
reasonstring
createBackupboolean

Path Parameters

quoteIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/quotes/<string>/versions/restore" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "versionId": "string",
    "reason": "string",
    "createBackup": true
  }'

Compare two versions of a quote

POST
/v1/quotes/{quoteId}/versions/compare

Authorization

AuthorizationRequiredBearer <token>

Session token from the SalesOS web app.

In: header

X-API-Key<token>

API key from Settings → API Keys. Authorization: ApiKey <key> is also accepted. Each operation lists the scope it needs under x-api-key-scopes.

In: header

Request Body

application/jsonRequired
versionAIdRequiredstring
versionBIdRequiredstring

Path Parameters

quoteIdRequiredstring

Header Parameters

Idempotency-Keystring

Unique key (a UUID is ideal) that makes this write safe to retry for 24 hours: a retry with the same body replays the original response (Idempotent-Replayed: true); the same key with a different body is a 409.

Maximum length: 255
curl -X POST "https://api.salesos.org/v1/quotes/<string>/versions/compare" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "versionAId": "string",
    "versionBId": "string"
  }'