CRM

Get an opportunity

Returns the record of an opportunity: the summary plus the description, the collaborators and the linked quotes.

GET
/api/v1/crm/opportunities/{opportunityId}

Request examples

curl https://app.filmo.io/api/v1/crm/opportunities/oppo_8f2a1c \
  --header "Authorization: Bearer $FILMO_API_KEY"
{
  "data": {
    "opportunityId": "opportunity_9f3a2b",
    "identifier": "Example identifier",
    "name": "Example opportunity",
    "status": "open",
    "amount": "120.00",
    "currency": "EUR",
    "pipelineId": "pipeline_9f3a2b",
    "pipelineName": "Example pipeline name",
    "stageId": "stage_9f3a2b",
    "stageName": "Example stage name",
    "stageType": "open",
    "effectiveProbability": 1,
    "weightedAmount": "120.00",
    "daysInStage": 1,
    "expectedCloseDate": "2026-09-01T10:00:00+02:00",
    "contactName": "Example contact name",
    "companyName": "Example company name",
    "ownerName": "Example owner name",
    "source": "inbound_email",
    "createdAt": "2026-09-01T10:00:00+02:00",
    "updatedAt": "2026-09-01T10:00:00+02:00",
    "description": "Example text.",
    "version": 1,
    "collaboratorStaffIds": [
      "collaborator_staff_9f3a2b"
    ],
    "quoteIds": [
      "quote_9f3a2b"
    ],
    "stageHistory": [
      {
        "fromStageId": "from_stage_9f3a2b",
        "toStageId": "to_stage_9f3a2b",
        "toStatus": "Example to status",
        "daysInPrevStage": 1,
        "movedAt": "2026-09-01T10:00:00+02:00",
        "note": "Example text."
      }
    ]
  }
}

Generated from the schema

With includeHistory=true it adds stageHistory, the stage moves from most recent to oldest — it is an additional query, so it does not come by default.

Authorizations

Bearer API key with the scope below. crm:read

Headers

If-None-Matchstring

Conditional read: the ETag of the copy you already have. If the resource has not changed, the response is 304 with no body.

Example:"\"3sT3d9pBvZq4h2N0w8x1YkLmQ7c\""

Path parameters

opportunityIdstringRequired

Opportunity identifier.

Limits: min length 1

Response

application/json

Successful response.

Response schema: OpportunityDetailDto

Envelope: OpportunityDetailResponse. meta.warnings is present only when the operation is deprecated.

Headers: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset · ETag

dataobject

Full detail of a CRM opportunity.

Show child attributes
data.opportunityIdstring

data.identifierstring

data.namestring

data.statusstring

Available options: open, won, lost

data.amountstring

data.currencystring

data.pipelineIdstring

data.pipelineNamestring

data.stageIdstring

data.stageNamestring

data.stageTypestring

Available options: open, won, lost

data.effectiveProbabilitynumber

data.weightedAmountstring

data.daysInStageinteger

data.expectedCloseDatestring<date-time>

data.contactNamestring

data.companyNamestring

data.ownerNamestring

data.sourcestring

Available options: inbound_email, website_form, referral, cold_outreach, event, social, existing_customer, partner, other

data.createdAtstring<date-time>

data.updatedAtstring<date-time>

data.descriptionstring

data.versioninteger

Limits: min 1

data.collaboratorStaffIdsstring[]

data.quoteIdsstring[]

data.stageHistoryobject[]

Show child attributes
data.stageHistory.fromStageIdstring

data.stageHistory.toStageIdstring

data.stageHistory.toStatusstring

data.stageHistory.daysInPrevStageinteger

data.stageHistory.movedAtstring<date-time>

data.stageHistory.notestring

metaobject

Additional information about the response.

Show child attributes
meta.warningsobject[]

Lifecycle warnings; present only when the operation is deprecated.

Show child attributes
meta.warnings.codestring

Stable warning code.

Available options: deprecated

meta.warnings.messagestring

For people: what is deprecated, until when, and what to use.

meta.warnings.sunsetstring

Day (YYYY-MM-DD) the operation stops being served.

meta.warnings.replacementstring | null

operationId of the operation to use instead, or null if there is none.

Errors

StatusCodesMeaning
402addon_requiredThe account plan does not include the add-on this operation needs; requiredAddon names it.
404not_foundIt does not exist or is outside the scope of the API key.

401, 403, 429, 500 can be returned by any operation. Errors

Deprecation

This operation is not deprecated. Deprecations are announced with a Deprecation header and a sunset date. Versioning policy

  • CRM

    Opportunity

    CRM opportunity: which pipeline and stage it is in, for how much, with whom and with what probability.