Skip to content
GET/{organizationId}/{mandateId}/sales/opportunities/{opportunityId}

Get sales opportunity

Returns one opportunity from the sales pipeline

Required permissions:

  • mandate.read

  • opportunity.read

Path Parameters

organizationIdstringrequired
mandateIdstringrequired
opportunityIdstringrequired

Authentication: X-API-Key

Request

GET/{organizationId}/{mandateId}/sales/opportunities/{opportunityId}
curl --request GET 'https://cloud.campai.com/api/{organizationId}/{mandateId}/sales/opportunities/{opportunityId}' \
  --header 'X-API-Key: YOUR_API_KEY'

Responses

This endpoint returns different response codes based on the request outcome.

200Successful response

Content-Type: application/json

ObjectId as string

createdAtdate-time | nulloptional
updatedAtdate-time | nulloptional
removedAtdate-time | nulloptional
__ignoreTriggersstring | nulloptional

ObjectId as string

ObjectId as string

namestringrequired

minLength: 1

maxLength: 80

stagestringrequired

Options:

newqualifiedoffernegotiationwonlost

Additional properties are not allowed.

expectedValueinteger | nullrequired

minimum: 0

maximum: 9999999999

salesChanceintegerrequired

minimum: 0

maximum: 100

expectedCloseAtstring | nullrequired

ObjectId as string

Additional properties are not allowed.

notesstringrequired

maxLength: 4000

lostReasonstring | nullrequired

minLength: 1

maxLength: 400

ObjectId as string

Response

200
{
  "_id": "000000000000000000000001",
  "organization": "000000000000000000000001",
  "mandate": "000000000000000000000001",
  "name": "string",
  "stage": "new",
  "contact": {
    "name": "string",
    "type": "contact",
    "nameNormalized": "string",
    "nameSort": "string",
    "contact": "000000000000000000000001",
    "image": {
      "resource": "string"
    },
    "user": {
      "name": "string",
      "type": "user",
      "userId": "string",
      "image": {
        "resource": "string"
      }
    }
  },
  "expectedValue": 0,
  "salesChance": 0,
  "expectedCloseAt": "string",
  "renewalOf": "000000000000000000000001",
  "responsibleUser": {
    "name": "string",
    "type": "user",
    "userId": "string",
    "image": {
      "resource": "string"
    }
  },
  "products": [
    {
      "product": "000000000000000000000001",
      "quantity": 1
    }
  ],
  "notes": "string",
  "lostReason": "string",
  "offerReceipt": "000000000000000000000001"
}

400Invalid input data

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

400
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}

401Authorization not provided

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

401
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}

403Insufficient access

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

403
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}

404Not found

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

404
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}

500Internal server error

Content-Type: application/json

The error information

messagestringrequired

The error message

codestringrequired

The error code

An array of issues that were responsible for the error

Response

500
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}