---
title: "Create listing"
method: POST
path: "/api/files/listings"
tags: ["Listings"]
---

# Create listing

`POST /api/files/listings`

Creates a listing record. Required fields include agentGuid, checklistTypeId, property, listingDate, expirationDate, and listingPrice. If source is required for the subscriber, sourceId is required. If sourceId maps to Other Source, otherSource is also required. The listing is returned with status `Incomplete` until a seller contact (POST /api/files/listings/{listingGuid}/sellerContact) and commission data (POST /api/files/listings/{listingGuid}/commissions) are added; both are required for the listing to display as `Active`. See the Listings overview for the full creation workflow.

### Validation & Requirements
#### Required Parameters
- `listingForm` (body, object)

#### Required JSON Body Fields
- `agentGuid` (format=guid, minLength=1)
- `checklistTypeId` (format=int32)
- `expirationDate` (format=date-time, minLength=1)
- `listingPrice` (format=decimal)

#### Validations
- Invalid GUID values in `*Guid`/`*Guids` fields return `422 Unprocessable Entity`.
- Invalid date values in `*date*` fields return `422 Unprocessable Entity`.
- Missing required request body returns `422 Unprocessable Entity` with `Missing request body.`.
- Additional business-rule validation may return `422` with details in the `errors` array.

#### Integration Requirement
- Retrieve the corresponding `...Form` endpoint immediately before write operations to get current dynamic required fields and allowed values.

## Request body

- ListingForm
  - `officeGuid` string, guid, nullable — Office guid that the Listing will be created in.
  - `agentGuid` string, guid, required — The agent that this Listing is created for.
  - `mlsNumber` string, nullable
  - `checklistTypeId` integer, required
  - `sourceId` integer, nullable
  - `otherSource` string, nullable
  - `listingDate` string, date-time, nullable
  - `isOfficeLead` boolean, nullable
  - `property` PropertyDTO2
    - `areasqft` string, nullable
    - `city` string, required
    - `county` string, nullable
    - `direction` string, nullable
    - `realPropertySubtypeId` integer, nullable
    - `realPropertyTypeId` integer, nullable
    - `state` string, required
    - `streetAddress` string, required
    - `streetNumber` string, required
    - `unit` string, nullable
    - `yearBuilt` integer, nullable
    - `zip` string, required
  - `commercialLease` CommercialLeaseDTO3
    - `size` number, nullable
    - `sizeType` string, nullable
  - `expirationDate` string, date-time, required
  - `listingPrice` number, required
  - `coListingAgentGuid` string, guid, nullable
  - `fileID` string, nullable
  - `customFields` CreateListingCustomFieldsDTO
    - `comingSoon` string, nullable
    - `conciergeProjectNumber` string, nullable
    - `isConcierge` string, nullable
    - `listingId` string, nullable
    - `serviceType` string, nullable

## Response `200`

- LinkedResponseOfCreateListingResponse
  - `value` CreateListingResponse
    - `listingGuid` string, guid
  - `warnings` string[], nullable
  - `links` Link[], nullable
    - `href` string, nullable
    - `rel` string, nullable
    - `method` string, nullable

## Other responses

- `404`
- `422`

---

[API](https://skmtc.net/skyslope/apis/skyslope-api.md) · [All operations](https://skmtc.net/skyslope/apis/skyslope-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skyslope/skyslope-api/revisions/bad0d2db9b7a/schema)
