list_top_pins
Use this when the user asks which of their Pins are doing best, what is working, or wants their top performers: returns the account's best Pins over a window, in Pinterest's own ranked order. Metrics and ranking combine paid (promoted) and organic activity unless contentType says otherwise, so by default ad spend can crowd organic Pins out of the list and a promoted Pin can rank far higher than its organic-only get_pin_analytics numbers suggest. Pass contentType ORGANIC to rank on unpromoted performance alone, or PAID for promoted only.
Ranks by ENGAGEMENT unless sortBy says otherwise, and tells you which metric it used — say so when reporting, since "top" means nothing without it. Only these five metrics rank: ENGAGEMENT, SAVE, IMPRESSION, OUTBOUND_CLICK, PIN_CLICK.
Each Pin carries creativeType, Pinterest's creative format (REGULAR, VIDEO, CAROUSEL, IDEA, COLLAGE and others), so this is how to compare performance across formats — group or filter by it rather than guessing a format from the title. It is null when Pinterest did not report one.
Each Pin also carries boardId, the Pinterest board it is saved to (the same id list_boards returns), so this is how to compare performance across boards — group by it rather than guessing a board from the title.
When isPartial is true, Pinterest limited the lookups and the Pins in omittedPinIds are missing from the ranking: say the list is incomplete, and retry shortly for the full one.
This is also how you get a Pinterest pinId to pass to get_pin_analytics. Do not re-sort the results — the order returned IS the ranking. Reading analytics is free and consumes no credits. Omit startDate and endDate for the last 30 days; supply BOTH to choose a window (supplying one is an error). Dates are UTC YYYY-MM-DD. Pinterest reports at most 90 days back and at most a 90-day span. The range actually used comes back as startDate/endDate — report those, do not assume the period. If the user did not say which Pinterest account to use and list_accounts returns more than one, ask the user which account to use before calling this — do not choose for them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sortBy | No | Metric to rank by. Defaults to ENGAGEMENT, which measures what people did with a Pin rather than how often Pinterest showed it. | |
| endDate | No | Last day of the window (inclusive), UTC YYYY-MM-DD. Requires startDate. | |
| accountId | Yes | Numeric Tailwind account ID returned by list_accounts | |
| startDate | No | First day of the window, UTC YYYY-MM-DD. Requires endDate. Omit both for 30 days. | |
| contentType | No | Which activity to count: ORGANIC for unpromoted performance only, PAID for promoted (ad) performance only, ALL for both blended. Defaults to ALL. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pins | Yes | Best-performing Pins, best first | |
| sortBy | Yes | The metric the list is actually ranked by | |
| endDate | Yes | ||
| accountId | Yes | ||
| isPartial | No | True when some Pins Pinterest ranked are missing from pins because Pinterest limited the lookups. A retry shortly should return the full list. | |
| startDate | Yes | ||
| contentType | Yes | The paid/organic filter actually applied | |
| omittedPinIds | No | The ranked Pins left out of pins for that reason, in ranking order. |