> For the complete documentation index, see [llms.txt](https://docs.platform.softwareone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.platform.softwareone.com/developer-resources/rest-api/product-catalog-api/product-profile/list-product-profiles.md).

# List product profiles

## GET /public/v1/public-catalog/product-profiles

> \*\*Streaming read mode\*\* (\`MPT-Streaming: true\`) reads the whole filtered, sorted\
> result set as a stream. Two obligations are mandatory for a correct read:\
> \
> \- \*\*Verify completeness\*\* — compare the objects received with \`MPT-Item-Count\`. A\
> &#x20; mid-stream failure aborts the connection without completing the message, so a truncated body\
> &#x20; is the only failure signal.\
> \- \*\*Check \`$meta.deleted\` before ingesting\*\* — a record deleted, or moved out\
> &#x20; of scope, after the stream started arrives as an ID-only stub. Ingesting one as data\
> &#x20; overwrites a stored record. Soft-deleted records are ordinary records.\
> \
> A retry is a new snapshot: discard the failed attempt rather than appending to it.\
> \
> \*\*Client timeouts.\*\* Set no total-request deadline — a stream lasts as long as its result set\
> takes. Size the two limits that remain: allow at least 60s to the first byte,\
> since nothing is on the wire while the key snapshot runs, and more than 30s\
> between bytes, since idle gaps carry only keep-alive whitespace. One scalar timeout applied to\
> connect and read alike trips on both.

```json
{"openapi":"3.0.1","info":{"title":"Marketplace API","version":"5.9.245-gd8302a06"},"servers":[{"url":"https://api.platform.softwareone.com"}],"paths":{"/public/v1/public-catalog/product-profiles":{"get":{"tags":["ProductProfiles"],"description":"**Streaming read mode** (`MPT-Streaming: true`) reads the whole filtered, sorted\nresult set as a stream. Two obligations are mandatory for a correct read:\n\n- **Verify completeness** — compare the objects received with `MPT-Item-Count`. A\n  mid-stream failure aborts the connection without completing the message, so a truncated body\n  is the only failure signal.\n- **Check `$meta.deleted` before ingesting** — a record deleted, or moved out\n  of scope, after the stream started arrives as an ID-only stub. Ingesting one as data\n  overwrites a stored record. Soft-deleted records are ordinary records.\n\nA retry is a new snapshot: discard the failed attempt rather than appending to it.\n\n**Client timeouts.** Set no total-request deadline — a stream lasts as long as its result set\ntakes. Size the two limits that remain: allow at least 60s to the first byte,\nsince nothing is on the wire while the key snapshot runs, and more than 30s\nbetween bytes, since idle gaps carry only keep-alive whitespace. One scalar timeout applied to\nconnect and read alike trips on both.","parameters":[{"name":"MPT-Streaming","in":"header","description":"Stream the full result set instead of a page. Membership fixes at stream start, each record is emitted once, and MPT-Item-Count gives the exact count. Accept: application/jsonl for line-delimited output. A positive limit caps the stream, -1 or absent reads all; offset skips that many records of the requested order, so limit and offset together read one window. Each window is its own snapshot — consecutive windows are not a resumable export.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK\n\nStreamed and paged responses both answer 200. Only a streamed one carries the `MPT-Streaming` and `MPT-Item-Count` headers listed below.\n\n`application/jsonl`: one object per line, no envelope, so the schema describes one line. A line is a record or an ID-only deleted stub (`StreamedDeletedRecord`) — check `$meta.deleted` before ingesting. Blank lines are keep-alives.","headers":{"MPT-Streaming":{"description":"Streamed responses only, where it is true. Absent on a paged response.","schema":{"type":"boolean"}},"MPT-Item-Count":{"description":"Streamed responses only. Absent on a paged response. The exact object count — compare it with the number received.","schema":{"type":"integer","format":"int64"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductProfileListResponse"}},"application/jsonl":{"schema":{"$ref":"#/components/schemas/ProductProfile"}}}},"400":{"description":"Invalid RQL, or invalid paging. `limit` must be positive (caps the stream) or `-1` / absent (reads all); `offset` must be a non-negative integer."},"406":{"description":"No acceptable media type. `application/jsonl` without the `MPT-Streaming` header lands here."},"413":{"description":"The result set exceeds the configured stream key cap. Nothing is written to the body."},"501":{"description":"This resource's query service provides no streaming capability."}}}}},"components":{"schemas":{"ProductProfileListResponse":{"type":"object","properties":{"$meta":{"allOf":[{"$ref":"#/components/schemas/ListMetadata"}]},"data":{"type":"array","items":{"$ref":"#/components/schemas/ProductProfile"}}},"additionalProperties":false},"ListMetadata":{"type":"object","properties":{"pagination":{"allOf":[{"$ref":"#/components/schemas/PaginationMetadata"}]},"omitted":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"PaginationMetadata":{"type":"object","properties":{"offset":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"},"total":{"type":"integer","format":"int32","nullable":true}},"additionalProperties":false},"ProductProfile":{"type":"object","properties":{"id":{"type":"string"},"audit":{"allOf":[{"$ref":"#/components/schemas/ProductProfileAudit"}],"description":"Audit information related to lifecycle events of a product profile."},"$meta":{"allOf":[{"$ref":"#/components/schemas/PlatformMetadata"}],"nullable":true},"name":{"type":"string"},"icon":{"type":"string","nullable":true},"revision":{"type":"integer","format":"int32"},"shortDescription":{"type":"string","description":"Descriptive text that provides details about the vendor.","nullable":true},"longDescription":{"type":"string","description":"Descriptive text that provides details about the vendor.","nullable":true},"featured":{"type":"boolean","description":"Indicates whether the product profile is marked as featured.","nullable":true},"website":{"type":"string","description":"The vendor's official website URL.","nullable":true},"linkedIn":{"type":"string","description":"URL of the vendor's LinkedIn profile.","nullable":true},"youTube":{"type":"string","description":"URL of the vendor's YouTube channel.","nullable":true},"xProfile":{"type":"string","description":"URL of the vendor's X (formerly Twitter) profile.","nullable":true},"categories":{"type":"array","items":{"$ref":"#/components/schemas/PublicCatalogCategoryRef"},"description":"Categories associated with the product profile.","nullable":true},"industries":{"type":"array","items":{"$ref":"#/components/schemas/IndustryRef"},"description":"Industries associated with the product profile.","nullable":true},"segments":{"type":"array","items":{"$ref":"#/components/schemas/SegmentRef"},"description":"Segments associated with the product profile.","nullable":true},"vendorProfile":{"allOf":[{"$ref":"#/components/schemas/VendorProfile"}],"description":"VendorProfile associated with the product profile.","nullable":true},"products":{"type":"array","items":{"$ref":"#/components/schemas/ProductRef"},"description":"Products associated with the product profile.","nullable":true},"externalIds":{"allOf":[{"$ref":"#/components/schemas/ProductProfileExternalIds"}],"description":"External identifiers associated with the product profile.","nullable":true},"attributes":{"allOf":[{"$ref":"#/components/schemas/ProductProfileAttributes"}],"description":"Free-form attributes associated with the product profile.","nullable":true},"status":{"enum":["Draft","Published","Unpublished","Deleted"],"type":"string","description":"Current publication status of the product profile."}},"additionalProperties":false,"description":"Represents a public catalog product profile entity exposed by the platform."},"ProductProfileAudit":{"type":"object","properties":{"created":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"nullable":true},"updated":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"nullable":true},"published":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"description":"Event details for when the product profile was published.","nullable":true},"unpublished":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"description":"Event details for when the product profile was unpublished.","nullable":true}},"additionalProperties":false,"description":"Audit information related to lifecycle events of a product profile."},"PlatformObjectEvent":{"type":"object","properties":{"at":{"type":"string","format":"date-time","nullable":true},"by":{"type":"object","allOf":[{"$ref":"#/components/schemas/PlatformIdentityRef"}]}},"additionalProperties":false},"PlatformIdentityRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string","nullable":true},"revision":{"type":"integer","format":"int32"}},"additionalProperties":false},"PlatformMetadata":{"type":"object","properties":{"omitted":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"PublicCatalogCategoryRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"revision":{"type":"integer","format":"int32"},"status":{"enum":["Draft","Published","Unpublished","Deleted"],"type":"string"}},"additionalProperties":false},"IndustryRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"revision":{"type":"integer","format":"int32"},"status":{"enum":["Draft","Published","Unpublished","Deleted"],"type":"string"}},"additionalProperties":false},"SegmentRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"revision":{"type":"integer","format":"int32"},"status":{"enum":["Draft","Published","Unpublished","Deleted"],"type":"string"}},"additionalProperties":false},"VendorProfile":{"type":"object","properties":{"id":{"type":"string"},"audit":{"allOf":[{"$ref":"#/components/schemas/VendorProfileAudit"}],"description":"Audit information related to lifecycle events of a vendor profile."},"$meta":{"allOf":[{"$ref":"#/components/schemas/PlatformMetadata"}],"nullable":true},"name":{"type":"string"},"icon":{"type":"string","nullable":true},"revision":{"type":"integer","format":"int32"},"description":{"type":"string","description":"Descriptive text that provides details about the vendor.","nullable":true},"featured":{"type":"boolean","description":"Indicates whether the vendor profile is marked as featured.","nullable":true},"website":{"type":"string","description":"The vendor's official website URL.","nullable":true},"linkedIn":{"type":"string","description":"URL of the vendor's LinkedIn profile.","nullable":true},"facebook":{"type":"string","description":"URL of the vendor's Facebook page.","nullable":true},"youTube":{"type":"string","description":"URL of the vendor's YouTube channel.","nullable":true},"xProfile":{"type":"string","description":"URL of the vendor's X (formerly Twitter) profile.","nullable":true},"categories":{"type":"array","items":{"$ref":"#/components/schemas/PublicCatalogCategoryRef"},"description":"Categories associated with the vendor profile.","nullable":true},"productProfiles":{"type":"array","items":{"$ref":"#/components/schemas/ProductProfileRef"},"description":"ProductProfiles associated with the vendor profile.","nullable":true},"vendor":{"allOf":[{"$ref":"#/components/schemas/Account"}],"description":"Vendor associated with the vendor profile.","nullable":true},"externalIds":{"allOf":[{"$ref":"#/components/schemas/VendorProfileExternalIds"}],"description":"External identifiers associated with the vendor profile.","nullable":true},"attributes":{"allOf":[{"$ref":"#/components/schemas/VendorProfileAttributes"}],"description":"Free-form attributes associated with the vendor profile.","nullable":true},"status":{"enum":["Draft","Published","Unpublished","Deleted"],"type":"string","description":"Current publication status of the vendor profile."}},"additionalProperties":false,"description":"Represents a public catalog vendor profile entity exposed by the platform."},"VendorProfileAudit":{"type":"object","properties":{"created":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"nullable":true},"updated":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"nullable":true},"published":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"description":"Event details for when the vendor profile was published.","nullable":true},"unpublished":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"description":"Event details for when the vendor profile was unpublished.","nullable":true}},"additionalProperties":false,"description":"Audit information related to lifecycle events of a vendor profile."},"ProductProfileRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string","nullable":true},"revision":{"type":"integer","format":"int32"},"vendorProfile":{"allOf":[{"$ref":"#/components/schemas/VendorProfile"}],"description":"VendorProfile associated with the product profile.","nullable":true},"externalIds":{"allOf":[{"$ref":"#/components/schemas/ProductProfileExternalIds"}],"description":"External identifiers associated with the product profile.","nullable":true},"status":{"enum":["Draft","Published","Unpublished","Deleted"],"type":"string","description":"Current publication status of the product profile."}},"additionalProperties":false,"description":"Represents a public catalog product profile entity exposed by the platform."},"ProductProfileExternalIds":{"type":"object","properties":{"operations":{"type":"string","description":"The operations (Navision) identifier of the product profile.","nullable":true}},"additionalProperties":false,"description":"External identifiers exposed for a product profile."},"Account":{"type":"object","properties":{"id":{"type":"string"},"audit":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectAudit"}]},"$meta":{"allOf":[{"$ref":"#/components/schemas/PlatformMetadata"}],"nullable":true},"name":{"type":"string"},"icon":{"type":"string","nullable":true},"revision":{"type":"integer","format":"int32"},"type":{"allOf":[{"$ref":"#/components/schemas/AccountType"}],"nullable":true},"status":{"allOf":[{"$ref":"#/components/schemas/AccountStatus"}],"nullable":true},"externalIds":{"allOf":[{"$ref":"#/components/schemas/AccountExternalIds"}],"nullable":true},"externalId":{"type":"string","nullable":true},"externalName":{"type":"string","nullable":true},"address":{"allOf":[{"$ref":"#/components/schemas/Address"}]},"technicalSupportEmail":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"groups":{"type":"array","items":{"$ref":"#/components/schemas/UserGroupRef"},"nullable":true},"eligibility":{"allOf":[{"$ref":"#/components/schemas/Eligibility"}],"nullable":true},"defaultLanguageCode":{"type":"string","nullable":true}},"additionalProperties":false},"PlatformObjectAudit":{"type":"object","properties":{"created":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"nullable":true},"updated":{"allOf":[{"$ref":"#/components/schemas/PlatformObjectEvent"}],"nullable":true}},"additionalProperties":false},"AccountType":{"enum":["Client","Vendor","Operations"],"type":"string"},"AccountStatus":{"enum":["Active","Enabled","Disabled"],"type":"string"},"AccountExternalIds":{"type":"object","properties":{"pyraTenantId":{"type":"string","format":"uuid","nullable":true}},"additionalProperties":false},"Address":{"type":"object","properties":{"addressLine1":{"type":"string","nullable":true},"addressLine2":{"type":"string","nullable":true},"postCode":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"additionalProperties":false},"UserGroupRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"revision":{"type":"integer","format":"int32"},"description":{"type":"string","nullable":true},"logo":{"type":"string","nullable":true},"isDefault":{"type":"boolean"}},"additionalProperties":false},"Eligibility":{"type":"object","properties":{"client":{"type":"boolean"},"partner":{"type":"boolean"}},"additionalProperties":false},"VendorProfileExternalIds":{"type":"object","properties":{"operations":{"type":"string","description":"The operations (Navision) publisher code for the vendor.","nullable":true}},"additionalProperties":false,"description":"External identifiers exposed for a vendor profile."},"VendorProfileAttributes":{"type":"object","properties":{"productHub":{"description":"Product Hub publisher fields, stored verbatim as a JSON document.","nullable":true}},"additionalProperties":false,"description":"Free-form attribute bag exposed for a vendor profile."},"ProductRef":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"icon":{"type":"string","nullable":true},"revision":{"type":"integer","format":"int32"},"externalIds":{"allOf":[{"$ref":"#/components/schemas/ProductExternalIdBag"}]},"status":{"type":"string"}},"additionalProperties":false},"ProductExternalIdBag":{"type":"object","properties":{"operations":{"type":"string","nullable":true},"defaultErpItem":{"type":"string","nullable":true}},"additionalProperties":false},"ProductProfileAttributes":{"type":"object","properties":{"productHub":{"description":"Product Hub product family fields, stored verbatim as a JSON document.","nullable":true}},"additionalProperties":false,"description":"Free-form attribute bag exposed for a product profile."}}}}
```


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.platform.softwareone.com/developer-resources/rest-api/product-catalog-api/product-profile/list-product-profiles.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
