> For the complete documentation index, see [llms.txt](https://docs-vnext.kiflo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-vnext.kiflo.com/developers/api-reference/deals/list-deals.md).

# List deals

List deals and filter them by custom properties.

To filter deals on custom property, just add the property with its exact value as a query parameter:\
`myCustomProp=ThisIsAValue`\
This will return the deals where myCustomProp exactly matches the provided value.

```json
{"openapi":"3.0.1","info":{"title":"Kiflo Public API v3","version":"v3"},"security":[{"oauth2":["McpOrApi","Deal.View"]}],"components":{"securitySchemes":{},"schemas":{"DealListResponseDto":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DealDto"},"nullable":true},"paginationSkipCount":{"type":"integer","format":"int32"},"totalCount":{"type":"integer","description":"Gets or sets the total number of items that could be returned by this command (without pagination).","format":"int32"}},"additionalProperties":false},"DealDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"contactId":{"type":"integer","format":"int32"},"sourcePartnerId":{"type":"integer","format":"int32","nullable":true},"stage":{"type":"string","nullable":true},"creationDate":{"type":"string","format":"date-time"},"totalAmount":{"type":"number","format":"double","nullable":true},"properties":{"type":"object","additionalProperties":{"nullable":true},"nullable":true},"sourceLeadId":{"type":"integer","format":"int32","nullable":true},"status":{"$ref":"#/components/schemas/DealStatus"},"partners":{"type":"array","items":{"$ref":"#/components/schemas/DealPartnerRoleDto"},"nullable":true},"contractStartDate":{"type":"string","format":"date-time","nullable":true},"contractEndDate":{"type":"string","format":"date-time","nullable":true},"ownerUserId":{"type":"integer","format":"int32","nullable":true},"owner":{"$ref":"#/components/schemas/UserDto"},"closeDate":{"type":"string","format":"date-time","nullable":true},"customerId":{"type":"integer","format":"int32","nullable":true},"currency":{"type":"string","nullable":true}},"additionalProperties":false},"DealStatus":{"enum":["Unknown","Pending","Accepted","Refused","Expired"],"type":"string"},"DealPartnerRoleDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"dealId":{"type":"integer","format":"int32"},"userPartnerOwnerId":{"type":"integer","format":"int32","nullable":true},"userPartnerOwnerName":{"type":"string","nullable":true},"userPartnerFirstName":{"type":"string","nullable":true},"userPartnerLastName":{"type":"string","nullable":true},"userPartnerEmail":{"type":"string","nullable":true},"userPartnerJobTitle":{"type":"string","nullable":true},"userPartnerPhoneNumber":{"type":"string","nullable":true},"userPartnerLinkedInProfileUrl":{"type":"string","nullable":true},"partnerId":{"type":"integer","format":"int32"},"partnerTypeId":{"type":"integer","format":"int32","nullable":true},"creationDate":{"type":"string","format":"date-time"},"partnerName":{"type":"string","nullable":true},"partnerTypeName":{"type":"string","nullable":true}},"additionalProperties":false},"UserDto":{"type":"object","properties":{"id":{"type":"integer","format":"int32"},"email":{"type":"string","nullable":true},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true}},"additionalProperties":false}}},"paths":{"/v3/deals":{"get":{"tags":["Deals"],"summary":"List deals","description":"List deals and filter them by custom properties.\r\n            \r\nTo filter deals on custom property, just add the property with its exact value as a query parameter:  \r\n`myCustomProp=ThisIsAValue`  \r\nThis will return the deals where myCustomProp exactly matches the provided value.","parameters":[{"name":"partner_id","in":"query","description":"The ID of the partner to filter the deals on. A deal matches when the partner holds any role on it, including the source role.","schema":{"type":"integer","format":"int32"}},{"name":"close_stage","in":"query","description":"Filter the deals on whether their pipeline stage is closed. Accepted values: open, closedWon, closedLost, closed.\r\nThe value is matched on the closed marker carried by the stage, never on the stage name.","schema":{"type":"string"}},{"name":"closed_after","in":"query","description":"Filter the deals closed on or after this date (inclusive). A deal that is not closed has no close date and never matches.","schema":{"type":"string","format":"date-time"}},{"name":"closed_before","in":"query","description":"Filter the deals closed before this date (exclusive). A deal that is not closed has no close date and never matches.","schema":{"type":"string","format":"date-time"}},{"name":"offset","in":"query","description":"The cursor used in pagination. This is the index of the first deal to be returned.","schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"The maximum number of deals to be returned. The default is 20.","schema":{"type":"integer","format":"int32"}},{"name":"sort_by","in":"query","description":"The property used to sort the deals by. The default is CreationDate.","schema":{"type":"string"}},{"name":"order_by","in":"query","description":"The sorting direction for the returned deals. Accepted values: ASC, DESC. The default is DESC.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deals returned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealListResponseDto"}}}},"403":{"description":"Partner program settings do not grant access to deals"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs-vnext.kiflo.com/developers/api-reference/deals/list-deals.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
