Retrieve an entity's opportunity stages

Operation ID: getOpportunityStages

Group: CRM › Opportunity Stages

Open in the interactive reference

GET /crm/opportunity-stages/{id}

Read-only: Reads and returns; changes nothing.

Retrieves a legal entity's opportunity stages, in order. The :id in the path is the legal entity's id, not a stage id. An entity without stages returns NOT_FOUND. For the stages an opportunity's stageId belongs to, use the opportunity's entityId as the :id.

Parameters

Name In Type Required Description
Api-Version header string · v1 yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.
id path string yes The legal entity whose stages to return. See id on GET base/entities.

Response

200 Success

Under data (getOpportunityStagesOutput):

Field Type Required Description
id string yes The identifier of this set of stages. It currently equals entityId; treat it as opaque.
entityId string yes The legal entity the stages belong to. See id on GET base/entities.
lastModifiedDate date-time no The date and time any of the stages last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
stages array<object> yes The stages, ordered by orderIndex.
stages[].id string yes The unique identifier for the stage. An opportunity's stageId holds this value.
stages[].stageName string yes The display name of the stage, for example 'Qualification'.
stages[].stageType any yes What reaching the stage means for an opportunity. One of: "open", "closedWon", "closedLost".
stages[].probability decimal yes The likelihood that an opportunity in this stage closes as won, as a percentage from 0 to 100. For example, 25 means 25%. A percentage, not an amount, so it has no currency.
stages[].orderIndex number yes The position of the stage; stages are ordered by it. Unique within the entity. After any write the positions are 0, 1, 2 … with no gaps.
stages[].isDeactivated boolean yes Whether the stage is retired. A deactivated stage stays on record but is not offered for new opportunities.
stages[].lastModifiedDate date-time no The date and time the stage record last changed, in UTC. Every write to the entity's stages updates it for every stage. Format YYYY-MM-DDTHH:mm:ss.sssZ.
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "lastModifiedDate": "2026-01-15T09:30:00.000Z",
    "stages": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "stageName": "<stageName>",
        "stageType": "open",
        "probability": "19.99",
        "orderIndex": 0,
        "isDeactivated": true,
        "lastModifiedDate": "2026-01-15T09:30:00.000Z"
      }
    ]
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}

Errors

Code Status
NOT_FOUND 400

Statuses