> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# Resource: Project V1

# Type: Project Object

# Link: https://dev.wix.com/docs/api-reference/account-level/studio-workspace/marketplace/project-v1/project-object.md

## Description: A project pairs a marketplace provider with the client who submitted a brief requesting their
services. It tracks the engagement from first contact through delivery, including the agreed
budget, the client's review, and proof of what was delivered.

Projects are created as part of the marketplace matching flow, so there's no method for creating
one. A provider advances a project with Start Project, Complete Project, and Cancel Project.

## Schema:

```json
 Type: Project Object | type: Project
 Description: A project pairs a marketplace provider with the client who submitted a brief requesting their
services. It tracks the engagement from first contact through delivery, including the agreed
budget, the client's review, and proof of what was delivered.

Projects are created as part of the marketplace matching flow, so there's no method for creating
one. A provider advances a project with Start Project, Complete Project, and Cancel Project.
       - name: id  | type: string | description: Project ID.
           - name: value  | type: string | description: 
       - name: revision  | type: string | description: Revision number, which increments by 1 each time the project is updated. To prevent conflicting changes, the current revision must be passed when updating the project.
           - name: value  | type: number | description: 
       - name: createdDate  | type: string | description: Date and time the project was created.
           - name: seconds  | type: string | description: 
           - name: nanos  | type: number | description: 
       - name: updatedDate  | type: string | description: Date and time the project was updated.
       - name: serviceName  | type: string | description: Marketplace service the project is attributed to.  To set this value, specify `serviceName` when calling Complete Project.
           enum: UNKNOWN_SERVICE_NAME, DOMAIN, ACCESSIBILITY, RESTAURANT_MENU_SETUP, STORE_OPTIMIZATION, ADVANCED_WEBSITE, CUSTOM_INPUT_FORMS, SITE_GUIDANCE, ECOMMERCE_SITE, ADS, PROFESSIONAL_TRANSLATION, BRAND_DEVELOPMENT, EMAIL, CUSTOM_SITE_FUNCTIONALITIES, THIRD_PARTY_SERVICES, VISUALS, CODING_GUIDANCE, EMAIL_MARKETING, WRITTEN, PHOTOS, STORE_SETTINGS, ANALYTICS, CLASSIC_WEBSITE, PIXEL, REDESIGN_SITE, MOBILE_APP, CONTENT_WITH_DATABASE, UPDATES, INSTALL_APPS, MOBILE_SITE, LOGO, CUSTOM_DESIGN, ADVANCED_STORE, SEO, MOVE_SITE, EDIT_IMAGE
       - name: contactId  | type: string | description: ID of the contact representing the client in the provider's contact list.  Use this ID to look up the client's details with the [Contacts API](https://dev.wix.com/docs/rest/crm/members-contacts/contacts/contacts/introduction.md).
       - name: status  | type: string | description: Current status of the engagement.
           enum: NEW, IN_DISCUSSION, IN_PROGRESS, COMPLETED, CANCELED_BY_CLIENT, CANCELED_BY_PROVIDER, EXPIRED, CONTACTED
       - name: review  | type: Review | description: Client's review of the completed project, together with the provider's reply.  Available only after the client submits a review, which they can do once the project's `status` is `COMPLETED`.
           - name: overallScore  | type: number | description: Client's rating of the engagement, where 1 is the lowest and 5 is the highest.
               - name: value  | type: number | description: 
           - name: text  | type: string | description: Client's written feedback on the engagement.
           - name: date  | type: string | description: Date and time the review was submitted.
           - name: reply  | type: Reply | description: Provider's reply to the review.  Add a reply by calling Reply to Project Review. A review supports a single reply, which can't be changed once submitted.
               - name: text  | type: string | description: Provider's response to the client's review.
               - name: date  | type: string | description: Date and time the reply was submitted.
       - name: metasiteId  | type: string | description: ID of the site delivered for the project.  Serves as proof of delivery when calling Complete Project.
       - name: completedProjectSnapshot  | type: string | description: URL of a visual snapshot of the delivered work, such as an uploaded thumbnail image or the URL of the delivered site.  Serves as proof of delivery when calling Complete Project.
       - name: statusTimeline  | type: Array<StatusTimelineItem> | description: NOT marked `readOnly`: the back-office console maintains this list itself and passes `statusTimeline` in the update mask, and a readOnly field in a mask is rejected outright. Remove this exemption once ProjectsBO.UpdateProject appends the timeline server-side and the BO client stops sending it.
           - name: status  | type: string | description: Status the project held.
           - name: date  | type: string | description: Date and time the project held this status.
       - name: budget  | type: number | description: Agreed budget for the engagement.  To set this value, specify `budget` when calling Complete Project.
           - name: value  | type: number | description: 
       - name: cancellationInfo  | type: CancellationInfo | description: Reason the project was canceled, with any additional details.  Returned only when `status` is `CANCELED_BY_PROVIDER` or `CANCELED_BY_CLIENT`.
           - name: additionalInfo  | type: string | description: Additional details about why the project was canceled.
           - name: reason  | type: string | description: Reason the project was canceled.
               enum: OTHER, CLIENT_NOT_RESPONDING, BUDGET_IS_TOO_LOW, DUPLICATE_REQUEST, REPORT_AS_SPAM, DOESNT_MATCH_MY_SKILLS
       - name: expirationDate  | type: string | description: Date and time the project expires if no one acts on it.  A project that's still in `NEW` status at this time moves to `EXPIRED` automatically. Once the project leaves `NEW` status, it no longer expires.
       - name: source  | type: string | description: How the engagement originated.
           enum: MATCHING, EXPLORE, AI_ASSISTANT
       - name: briefDescription  | type: string | description: Client's request, copied from the brief the project was created from.  Read this field to see what the client asked for without retrieving the brief itself.

```