Updates an existing project (partial update using PATCH semantics).

Path Parameters
  • id
    Type: string
    required

    Project ID

Headers
  • If-Match
    Type: string

    ETag value for optimistic concurrency control

Body·
required

Fields to update

Request model for updating a project.

  • asset
    Type: object · nullable

    Asset information for a project. Describes whether this is a single property or portfolio deal.

  • exclusivity
    Type: null | string

    Sales exclusivity type: "exclusive", "non_exclusive", "other", or null to clear. Preferred field; mutually exclusive with the deprecated mandate field.

  • externalRefs
    Type: array object[] ·

    External references for CRM integration. Replaces all existing external refs. Set to empty array to remove all external refs.

    Represents an external system reference (e.g., Salesforce, HubSpot, Pipedrive). Supports multiple CRM systems simultaneously.

  • mandate
    Type: null | string
    deprecated

    Deprecated alias for exclusivity. Sending both mandate and exclusivity with non-null values is rejected with 422. Will be removed in a future minor version.

  • name
    Type: null | string

    Project name. Cannot be empty if provided.

  • price
    Type: object · nullable

    Price as a single value, with currency and scale.

  • priceRange
    Type: object · nullable

    Price as a min/max range, with currency and scale.

Responses
  • application/json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
Request Example for patch/api/v1/projects/{id}
curl 'https://app.propstreet.com/api/v1/projects/{id}' \
  --request PATCH \
  --header 'If-Match: ' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "name": null,
  "asset": {
    "type": "",
    "propertyCount": ""
  },
  "externalRefs": [
    {
      "namespace": "",
      "id": ""
    }
  ],
  "exclusivity": null,
  "price": {
    "value": 0,
    "currency": "",
    "scale": ""
  },
  "priceRange": {
    "min": 0,
    "max": 0,
    "currency": "",
    "scale": ""
  }
}'
{
  "id": "string",
  "uri": null,
  "externalRefs": [
    {
      "namespace": "string",
      "id": "string"
    }
  ],
  "name": "string",
  "asset": {
    "type": "string",
    "propertyCount": "string"
  },
  "status": "string",
  "classification": null,
  "teaser": {
    "id": "string",
    "uri": null,
    "createdUtc": "2026-05-18T20:22:36.959Z",
    "updatedUtc": "2026-05-18T20:22:36.959Z",
    "etag": "string",
    "changeType": null,
    "changeOrigin": null,
    "stage": null,
    "publishedUtc": null,
    "verifiedUtc": null,
    "communicatedUtc": null,
    "isPreMarket": null,
    "exclusivity": null,
    "title": null,
    "tags": [
      "string"
    ],
    "options": {
      "locality": {
        "display": "actual"
      },
      "country": {
        "display": "actual"
      },
      "tenure": {
        "display": "actual"
      },
      "categories": {
        "display": "actual"
      },
      "parcelArea": {
        "display": "actual"
      },
      "avgContractLength": {
        "display": "actual"
      },
      "leasableUnits": {
        "display": "actual"
      },
      "zoningCategory": {
        "display": "actual"
      },
      "zoningGfa": {
        "display": "actual"
      },
      "rentalIncome": {
        "display": "actual"
      },
      "investmentSize": {
        "display": "actual"
      },
      "rentedPercent": {
        "display": "actual"
      },
      "totalCosts": {
        "display": "actual"
      },
      "noi": {
        "display": "actual"
      },
      "yield": {
        "display": "actual"
      },
      "propertyCount": {
        "display": "actual"
      },
      "conversions": {
        "display": "actual"
      },
      "yearBuilt": {
        "display": "actual"
      },
      "locationClasses": {
        "display": "actual"
      }
    },
    "template": {
      "locality": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "country": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "tenure": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "categories": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "parcelArea": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "avgContractLength": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "leasableUnits": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "zoningCategory": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "zoningGfa": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "rentalIncome": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "investmentSize": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "rentedPercent": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "totalCosts": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "noi": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "yield": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "propertyCount": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "conversions": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "yearBuilt": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "locationClasses": {
        "allowedDisplays": [
          "actual"
        ]
      },
      "tags": [
        "string"
      ]
    },
    "projection": {
      "locality": null,
      "country": null,
      "categories": [
        {
          "type": "string",
          "locationClass": null,
          "percentage": "string"
        }
      ],
      "yearBuilt": {
        "value": "string",
        "min": "string",
        "max": "string"
      },
      "tenure": null,
      "conversions": [
        "string"
      ],
      "rentalIncome": {
        "value": 0,
        "min": 0,
        "max": 0,
        "currency": "string",
        "scale": "string"
      },
      "leasableUnits": {
        "value": 0,
        "min": 0,
        "max": 0
      },
      "rentedPercent": {
        "value": "string",
        "min": "string",
        "max": "string"
      },
      "totalCosts": {
        "value": 0,
        "min": 0,
        "max": 0,
        "currency": "string",
        "scale": "string"
      },
      "noi": {
        "value": 0,
        "min": 0,
        "max": 0,
        "currency": "string",
        "scale": "string"
      },
      "parcelArea": {
        "value": 0,
        "min": 0,
        "max": 0
      },
      "avgContractLength": {
        "value": 0,
        "min": 0,
        "max": 0
      },
      "yield": {
        "value": "string",
        "min": "string",
        "max": "string"
      },
      "zoningCategories": [
        "string"
      ],
      "zoningGfa": {
        "value": 0,
        "min": 0,
        "max": 0
      },
      "investmentSize": {
        "value": 0,
        "min": 0,
        "max": 0,
        "currency": "string",
        "scale": "string"
      },
      "propertyCount": {
        "value": 0,
        "min": 0,
        "max": 0
      }
    },
    "nudge": {
      "code": "string",
      "message": "string",
      "navigateUri": null
    },
    "navigateUri": null
  },
  "exclusivity": null,
  "price": {
    "value": 0,
    "currency": "string",
    "scale": "string"
  },
  "priceRange": {
    "min": 0,
    "max": 0,
    "currency": "string",
    "scale": "string"
  },
  "properties": [
    {
      "id": "string",
      "uri": null,
      "name": "string"
    }
  ],
  "transactions": [
    {
      "type": "string",
      "closedUtc": "2026-05-18T20:22:36.959Z",
      "price": {
        "value": 0,
        "min": 0,
        "max": 0,
        "currency": "string",
        "scale": "string"
      },
      "yield": {
        "value": "string",
        "min": "string",
        "max": "string"
      },
      "buyer": {
        "type": null,
        "name": null,
        "prospectId": null
      },
      "seller": {
        "type": null,
        "name": null,
        "prospectId": null
      }
    }
  ],
  "createdUtc": "2026-05-18T20:22:36.959Z",
  "updatedUtc": "2026-05-18T20:22:36.959Z",
  "deletedUtc": null,
  "etag": "string",
  "changeType": null,
  "changeOrigin": null
}