SalesOS

Quota and Forecast

Quotas, forecast submissions and snapshots

List quotas

GET
/v1/quota-forecast/quotas

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

Query Parameters

periodstring
periodTypestring
curl -X GET "https://api.salesos.org/v1/quota-forecast/quotas?period=%3Cstring%3E&periodType=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

Set quota

POST
/v1/quota-forecast/quotas

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
userIdstring
teamIdstring
periodRequiredstring
periodTypestring
Value in: "MONTH" | "QUARTER" | "YEAR"
targetRequirednumber
Minimum: 0
currencystring
startDatestring
endDatestring

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/quota-forecast/quotas" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "string",
    "teamId": "string",
    "period": "string",
    "periodType": "MONTH",
    "target": 0,
    "currency": "string",
    "startDate": "string",
    "endDate": "string"
  }'

Bulk upsert

POST
/v1/quota-forecast/quotas/bulk

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
quotasRequiredarray<object>

Items: at most 500.

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/quota-forecast/quotas/bulk" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "quotas": [
      {
        "userId": "string",
        "teamId": "string",
        "period": "string",
        "periodType": "MONTH",
        "target": 0,
        "currency": "string",
        "startDate": "string",
        "endDate": "string"
      }
    ]
  }'

Copy previous

POST
/v1/quota-forecast/quotas/copy-previous

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
periodRequiredstring
periodTypestring
Value in: "MONTH" | "QUARTER" | "YEAR"

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/quota-forecast/quotas/copy-previous" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "period": "string",
    "periodType": "MONTH"
  }'

Get attainment

GET
/v1/quota-forecast/quotas/attainment

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

Query Parameters

periodstring
periodTypestring
userIdstring
curl -X GET "https://api.salesos.org/v1/quota-forecast/quotas/attainment?period=%3Cstring%3E&periodType=%3Cstring%3E&userId=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

Get org target

GET
/v1/quota-forecast/quotas/org-target

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

Query Parameters

periodstring
periodTypestring
curl -X GET "https://api.salesos.org/v1/quota-forecast/quotas/org-target?period=%3Cstring%3E&periodType=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

{}

Delete quota

DELETE
/v1/quota-forecast/quotas/{id}

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

idRequiredstring
curl -X DELETE "https://api.salesos.org/v1/quota-forecast/quotas/<string>" \
  -H "Authorization: Bearer <token>"

Submit

POST
/v1/quota-forecast/forecasts/submit

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
userIdstring
periodRequiredstring
periodTypestring
Value in: "MONTH" | "QUARTER" | "YEAR"
commitnumber
Minimum: 0
bestCasenumber
Minimum: 0
pipelinenumber
Minimum: 0
currencystring
notesstring

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/quota-forecast/forecasts/submit" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "string",
    "period": "string",
    "periodType": "MONTH",
    "commit": 0,
    "bestCase": 0,
    "pipeline": 0,
    "currency": "string",
    "notes": "string"
  }'

List forecasts

GET
/v1/quota-forecast/forecasts

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

Query Parameters

userIdstring
periodstring
curl -X GET "https://api.salesos.org/v1/quota-forecast/forecasts?userId=%3Cstring%3E&period=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Legacy alias of /forecasts/submit.

POST
/v1/quota-forecast/forecasts

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
userIdstring
periodRequiredstring
periodTypestring
Value in: "MONTH" | "QUARTER" | "YEAR"
commitnumber
Minimum: 0
bestCasenumber
Minimum: 0
pipelinenumber
Minimum: 0
currencystring
notesstring

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/quota-forecast/forecasts" \
  -H "Idempotency-Key: <string>" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "string",
    "period": "string",
    "periodType": "MONTH",
    "commit": 0,
    "bestCase": 0,
    "pipeline": 0,
    "currency": "string",
    "notes": "string"
  }'

Rollup

GET
/v1/quota-forecast/forecasts/rollup

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

Query Parameters

periodstring
periodTypestring
curl -X GET "https://api.salesos.org/v1/quota-forecast/forecasts/rollup?period=%3Cstring%3E&periodType=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

Snapshots

GET
/v1/quota-forecast/snapshots

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

Query Parameters

periodstring
periodTypestring
userIdstring
sourcestring
limitstring
curl -X GET "https://api.salesos.org/v1/quota-forecast/snapshots?period=%3Cstring%3E&periodType=%3Cstring%3E&userId=%3Cstring%3E&source=%3Cstring%3E&limit=%3Cstring%3E" \
  -H "Authorization: Bearer <token>"

[
  {}
]

Set deal category

PUT
/v1/quota-forecast/deals/{id}/forecast-category

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
categoryRequiredstring
Value in: "PIPELINE" | "BEST_CASE" | "COMMIT" | "OMITTED"
reasonstring

Path Parameters

idRequiredstring
curl -X PUT "https://api.salesos.org/v1/quota-forecast/deals/<string>/forecast-category" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "PIPELINE",
    "reason": "string"
  }'