> ## Documentation Index
> Fetch the complete documentation index at: https://docs.peec.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Actions

> The project's actions, the ones Peec generated and the ones the customer wrote themselves alike: what to do, on which page or site, and how much impact it is expected to have if it is done. `created_by` says which of the two an action is, and only a customer's own can be deleted or reshaped. Filters combine with AND, except `targets`, `groups`, `archetypes` and `platforms`, which combine with OR across the four. The action detail endpoint carries a single action's steps, brief, evidence and impacted prompts.



## OpenAPI

````yaml https://api.peec.ai/customer/v1/openapi/json post /actions/list
openapi: 3.0.3
info:
  title: Peec AI Customer API
  description: Development documentation
  version: 1.0.0
  contact:
    name: Peec AI Team
    email: support@peec.ai
servers:
  - url: https://api.peec.ai/customer/v1
security: []
paths:
  /actions/list:
    post:
      tags:
        - Actions
      summary: List Actions
      description: >-
        The project's actions, the ones Peec generated and the ones the customer
        wrote themselves alike: what to do, on which page or site, and how much
        impact it is expected to have if it is done. `created_by` says which of
        the two an action is, and only a customer's own can be deleted or
        reshaped. Filters combine with AND, except `targets`, `groups`,
        `archetypes` and `platforms`, which combine with OR across the four. The
        action detail endpoint carries a single action's steps, brief, evidence
        and impacted prompts.
      operationId: postActionsList
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  description: Required if using a company api key
                  example: or_f45b94ba-5e35-4982-93ed-285e72ee14eb
                  type: string
                types:
                  description: >-
                    Defaults to every published type. `TEMPLATE_ACTION` is a
                    per-platform playbook filled in for one page;
                    `CONTENT_BRIEF` and `CATEGORY_SITUATION_BRIEF` are net-new
                    content to write; `CONTRADICTIONS_EXTERNAL_SOURCES` requests
                    correction of one third-party source page that conflicts
                    with a verified brand fact; `CONTRADICTIONS_OWNED_SOURCES`
                    corrects one source page on a domain the brand owns;
                    `SEO_ISSUE` and `ROBOTS_TXT` are technical fixes to a site
                    the brand controls; `PDP_OPTIMISATION` improves one product
                    page; `MANUAL_ACTION` is work a customer described
                    themselves that matches none of the other shapes;
                    `CONTENT_OPTIMISATION` improves an existing page the brand
                    owns, and appears only on projects with content optimisation
                    enabled — the optimize content endpoint returns its article,
                    suggestions and score.
                  type: array
                  items:
                    type: string
                    enum:
                      - TEMPLATE_ACTION
                      - CONTENT_BRIEF
                      - CATEGORY_SITUATION_BRIEF
                      - CONTRADICTIONS_EXTERNAL_SOURCES
                      - CONTRADICTIONS_OWNED_SOURCES
                      - SEO_ISSUE
                      - ROBOTS_TXT
                      - PDP_OPTIMISATION
                      - MANUAL_ACTION
                      - CONTENT_OPTIMISATION
                statuses:
                  description: >-
                    Defaults to every status. `PENDING` is untouched, `ACCEPTED`
                    is in progress, `COMPLETED` is done, `REJECTED` was
                    declined.
                  type: array
                  items:
                    type: string
                    enum:
                      - PENDING
                      - ACCEPTED
                      - REJECTED
                      - COMPLETED
                categories:
                  description: >-
                    The off-site playbook a template action follows (the
                    upper-case values), or the audit check an `SEO_ISSUE` came
                    from (the lower-case ones). A playbook is orthogonal to the
                    group, so the same one appears across groups, and narrowing
                    by both means the intersection. Content briefs and
                    `ROBOTS_TXT` actions carry none and match nothing here.
                  type: array
                  items:
                    type: string
                    enum:
                      - EDITORIAL_PITCH
                      - LISTICLE_COMPARISON_INCLUSION
                      - REVIEW_DIRECTORY_OPTIMIZATION
                      - COMMUNITY_ENGAGEMENT
                      - SOCIAL_CONTENT
                      - accessibility
                      - canonical
                      - crawlability
                      - dom_health
                      - blocked
                      - not_found
                      - other
                      - rate_limited
                      - unavailable
                      - metadata
                      - performance
                      - retrievability
                      - schema
                      - semantic_html
                      - structure
                      - structured_data
                domains:
                  example:
                    - example.com
                  description: >-
                    The site an `SEO_ISSUE` was raised against. Every other type
                    carries none and matches nothing here.
                  type: array
                  items:
                    type: string
                topic_ids:
                  example:
                    - to_a1b2c3
                  description: Only actions on these topics (see the topics endpoint).
                  type: array
                  items:
                    type: string
                model_channel_ids:
                  example:
                    - openai-0
                  description: >-
                    Only actions affecting these AI engine channels (see the
                    model channels endpoint).
                  type: array
                  items:
                    type: string
                    enum:
                      - openai-0
                      - openai-1
                      - qwen-0
                      - openai-2
                      - perplexity-0
                      - perplexity-1
                      - google-0
                      - google-1
                      - google-2
                      - google-3
                      - google-4
                      - anthropic-0
                      - anthropic-1
                      - anthropic-2
                      - anthropic-3
                      - deepseek-0
                      - meta-0
                      - meta-1
                      - xai-0
                      - xai-1
                      - microsoft-0
                      - amazon-0
                      - mistral-0
                      - mistral-1
                      - naver-0
                      - openai-3
                      - openai-4
                      - openai-5
                country_codes:
                  example:
                    - US
                  description: >-
                    ISO 3166-1 alpha-2 markets. An action carrying no markets is
                    not scoped to one, so every selection matches it.
                  type: array
                  items:
                    type: string
                    enum:
                      - AE
                      - AL
                      - AM
                      - AR
                      - AT
                      - AU
                      - BA
                      - BE
                      - BG
                      - BH
                      - BO
                      - BR
                      - BS
                      - BY
                      - CA
                      - CH
                      - CL
                      - CN
                      - CO
                      - CR
                      - CY
                      - CZ
                      - DE
                      - DK
                      - DO
                      - EC
                      - EE
                      - EG
                      - ES
                      - FI
                      - FR
                      - GB
                      - GE
                      - GH
                      - GR
                      - GT
                      - HK
                      - HN
                      - HR
                      - HU
                      - ID
                      - IE
                      - IL
                      - IN
                      - IQ
                      - IS
                      - IT
                      - JO
                      - JP
                      - KR
                      - KW
                      - LB
                      - LI
                      - LT
                      - LU
                      - LV
                      - MA
                      - MD
                      - ME
                      - MK
                      - MN
                      - MT
                      - MX
                      - MY
                      - NG
                      - NI
                      - NL
                      - 'NO'
                      - NZ
                      - OM
                      - PK
                      - PA
                      - PE
                      - PH
                      - PL
                      - PT
                      - PY
                      - PS
                      - QA
                      - RO
                      - RS
                      - SA
                      - SE
                      - SG
                      - SI
                      - SK
                      - SV
                      - TH
                      - TN
                      - TR
                      - TW
                      - UA
                      - US
                      - UY
                      - VE
                      - VN
                      - ZA
                      - AD
                      - AF
                      - AS
                      - AZ
                      - BB
                      - BQ
                      - CG
                      - CI
                      - CM
                      - CW
                      - DM
                      - DZ
                      - FO
                      - GF
                      - GP
                      - JM
                      - KG
                      - KH
                      - KI
                      - KZ
                      - LK
                      - LR
                      - LS
                      - MW
                      - NC
                      - PG
                      - TD
                      - TF
                      - UG
                      - VU
                      - ZW
                targets:
                  description: >-
                    `owned` means the action lands on a page the brand controls;
                    `earned` means a third-party page, which covers editorial
                    coverage and community posts alike. A UGC action is `earned`
                    even when the brand writes the post itself.
                  type: array
                  items:
                    type: string
                    enum:
                      - owned
                      - earned
                groups:
                  description: The kind of surface the action lands on.
                  type: array
                  items:
                    type: string
                    enum:
                      - OWNED
                      - EDITORIAL
                      - REFERENCE
                      - UGC
                      - OTHER
                archetypes:
                  description: >-
                    The kind of page a content brief says to create. Template
                    actions carry no archetype and match nothing here, so this
                    narrows the answer to content briefs.
                  type: array
                  items:
                    type: string
                    enum:
                      - HOMEPAGE
                      - CATEGORY_PAGE
                      - PRODUCT_PAGE
                      - LISTICLE
                      - COMPARISON
                      - PROFILE
                      - ALTERNATIVE
                      - DISCUSSION
                      - HOW_TO_GUIDE
                      - ARTICLE
                      - OTHER
                platforms:
                  example:
                    - reddit.com
                  description: >-
                    Registrable domain of a third-party action. Own-site actions
                    carry none and match nothing here.
                  type: array
                  items:
                    type: string
                order_by:
                  default: impact
                  description: >-
                    `impact` is the order the Actions page ranks by, strongest
                    expected gain first. `created_at` reads newest first, which
                    is how to find what Peec generated since the last read.
                  type: string
                  enum:
                    - impact
                    - created_at
                direction:
                  default: desc
                  type: string
                  enum:
                    - asc
                    - desc
                limit:
                  default: 1000
                  type: integer
                  minimum: 1
                  maximum: 10000
                offset:
                  default: 0
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                project_id:
                  description: Required if using a company api key
                  example: or_f45b94ba-5e35-4982-93ed-285e72ee14eb
                  type: string
                types:
                  description: >-
                    Defaults to every published type. `TEMPLATE_ACTION` is a
                    per-platform playbook filled in for one page;
                    `CONTENT_BRIEF` and `CATEGORY_SITUATION_BRIEF` are net-new
                    content to write; `CONTRADICTIONS_EXTERNAL_SOURCES` requests
                    correction of one third-party source page that conflicts
                    with a verified brand fact; `CONTRADICTIONS_OWNED_SOURCES`
                    corrects one source page on a domain the brand owns;
                    `SEO_ISSUE` and `ROBOTS_TXT` are technical fixes to a site
                    the brand controls; `PDP_OPTIMISATION` improves one product
                    page; `MANUAL_ACTION` is work a customer described
                    themselves that matches none of the other shapes;
                    `CONTENT_OPTIMISATION` improves an existing page the brand
                    owns, and appears only on projects with content optimisation
                    enabled — the optimize content endpoint returns its article,
                    suggestions and score.
                  type: array
                  items:
                    type: string
                    enum:
                      - TEMPLATE_ACTION
                      - CONTENT_BRIEF
                      - CATEGORY_SITUATION_BRIEF
                      - CONTRADICTIONS_EXTERNAL_SOURCES
                      - CONTRADICTIONS_OWNED_SOURCES
                      - SEO_ISSUE
                      - ROBOTS_TXT
                      - PDP_OPTIMISATION
                      - MANUAL_ACTION
                      - CONTENT_OPTIMISATION
                statuses:
                  description: >-
                    Defaults to every status. `PENDING` is untouched, `ACCEPTED`
                    is in progress, `COMPLETED` is done, `REJECTED` was
                    declined.
                  type: array
                  items:
                    type: string
                    enum:
                      - PENDING
                      - ACCEPTED
                      - REJECTED
                      - COMPLETED
                categories:
                  description: >-
                    The off-site playbook a template action follows (the
                    upper-case values), or the audit check an `SEO_ISSUE` came
                    from (the lower-case ones). A playbook is orthogonal to the
                    group, so the same one appears across groups, and narrowing
                    by both means the intersection. Content briefs and
                    `ROBOTS_TXT` actions carry none and match nothing here.
                  type: array
                  items:
                    type: string
                    enum:
                      - EDITORIAL_PITCH
                      - LISTICLE_COMPARISON_INCLUSION
                      - REVIEW_DIRECTORY_OPTIMIZATION
                      - COMMUNITY_ENGAGEMENT
                      - SOCIAL_CONTENT
                      - accessibility
                      - canonical
                      - crawlability
                      - dom_health
                      - blocked
                      - not_found
                      - other
                      - rate_limited
                      - unavailable
                      - metadata
                      - performance
                      - retrievability
                      - schema
                      - semantic_html
                      - structure
                      - structured_data
                domains:
                  example:
                    - example.com
                  description: >-
                    The site an `SEO_ISSUE` was raised against. Every other type
                    carries none and matches nothing here.
                  type: array
                  items:
                    type: string
                topic_ids:
                  example:
                    - to_a1b2c3
                  description: Only actions on these topics (see the topics endpoint).
                  type: array
                  items:
                    type: string
                model_channel_ids:
                  example:
                    - openai-0
                  description: >-
                    Only actions affecting these AI engine channels (see the
                    model channels endpoint).
                  type: array
                  items:
                    type: string
                    enum:
                      - openai-0
                      - openai-1
                      - qwen-0
                      - openai-2
                      - perplexity-0
                      - perplexity-1
                      - google-0
                      - google-1
                      - google-2
                      - google-3
                      - google-4
                      - anthropic-0
                      - anthropic-1
                      - anthropic-2
                      - anthropic-3
                      - deepseek-0
                      - meta-0
                      - meta-1
                      - xai-0
                      - xai-1
                      - microsoft-0
                      - amazon-0
                      - mistral-0
                      - mistral-1
                      - naver-0
                      - openai-3
                      - openai-4
                      - openai-5
                country_codes:
                  example:
                    - US
                  description: >-
                    ISO 3166-1 alpha-2 markets. An action carrying no markets is
                    not scoped to one, so every selection matches it.
                  type: array
                  items:
                    type: string
                    enum:
                      - AE
                      - AL
                      - AM
                      - AR
                      - AT
                      - AU
                      - BA
                      - BE
                      - BG
                      - BH
                      - BO
                      - BR
                      - BS
                      - BY
                      - CA
                      - CH
                      - CL
                      - CN
                      - CO
                      - CR
                      - CY
                      - CZ
                      - DE
                      - DK
                      - DO
                      - EC
                      - EE
                      - EG
                      - ES
                      - FI
                      - FR
                      - GB
                      - GE
                      - GH
                      - GR
                      - GT
                      - HK
                      - HN
                      - HR
                      - HU
                      - ID
                      - IE
                      - IL
                      - IN
                      - IQ
                      - IS
                      - IT
                      - JO
                      - JP
                      - KR
                      - KW
                      - LB
                      - LI
                      - LT
                      - LU
                      - LV
                      - MA
                      - MD
                      - ME
                      - MK
                      - MN
                      - MT
                      - MX
                      - MY
                      - NG
                      - NI
                      - NL
                      - 'NO'
                      - NZ
                      - OM
                      - PK
                      - PA
                      - PE
                      - PH
                      - PL
                      - PT
                      - PY
                      - PS
                      - QA
                      - RO
                      - RS
                      - SA
                      - SE
                      - SG
                      - SI
                      - SK
                      - SV
                      - TH
                      - TN
                      - TR
                      - TW
                      - UA
                      - US
                      - UY
                      - VE
                      - VN
                      - ZA
                      - AD
                      - AF
                      - AS
                      - AZ
                      - BB
                      - BQ
                      - CG
                      - CI
                      - CM
                      - CW
                      - DM
                      - DZ
                      - FO
                      - GF
                      - GP
                      - JM
                      - KG
                      - KH
                      - KI
                      - KZ
                      - LK
                      - LR
                      - LS
                      - MW
                      - NC
                      - PG
                      - TD
                      - TF
                      - UG
                      - VU
                      - ZW
                targets:
                  description: >-
                    `owned` means the action lands on a page the brand controls;
                    `earned` means a third-party page, which covers editorial
                    coverage and community posts alike. A UGC action is `earned`
                    even when the brand writes the post itself.
                  type: array
                  items:
                    type: string
                    enum:
                      - owned
                      - earned
                groups:
                  description: The kind of surface the action lands on.
                  type: array
                  items:
                    type: string
                    enum:
                      - OWNED
                      - EDITORIAL
                      - REFERENCE
                      - UGC
                      - OTHER
                archetypes:
                  description: >-
                    The kind of page a content brief says to create. Template
                    actions carry no archetype and match nothing here, so this
                    narrows the answer to content briefs.
                  type: array
                  items:
                    type: string
                    enum:
                      - HOMEPAGE
                      - CATEGORY_PAGE
                      - PRODUCT_PAGE
                      - LISTICLE
                      - COMPARISON
                      - PROFILE
                      - ALTERNATIVE
                      - DISCUSSION
                      - HOW_TO_GUIDE
                      - ARTICLE
                      - OTHER
                platforms:
                  example:
                    - reddit.com
                  description: >-
                    Registrable domain of a third-party action. Own-site actions
                    carry none and match nothing here.
                  type: array
                  items:
                    type: string
                order_by:
                  default: impact
                  description: >-
                    `impact` is the order the Actions page ranks by, strongest
                    expected gain first. `created_at` reads newest first, which
                    is how to find what Peec generated since the last read.
                  type: string
                  enum:
                    - impact
                    - created_at
                direction:
                  default: desc
                  type: string
                  enum:
                    - asc
                    - desc
                limit:
                  default: 1000
                  type: integer
                  minimum: 1
                  maximum: 10000
                offset:
                  default: 0
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
          multipart/form-data:
            schema:
              type: object
              properties:
                project_id:
                  description: Required if using a company api key
                  example: or_f45b94ba-5e35-4982-93ed-285e72ee14eb
                  type: string
                types:
                  description: >-
                    Defaults to every published type. `TEMPLATE_ACTION` is a
                    per-platform playbook filled in for one page;
                    `CONTENT_BRIEF` and `CATEGORY_SITUATION_BRIEF` are net-new
                    content to write; `CONTRADICTIONS_EXTERNAL_SOURCES` requests
                    correction of one third-party source page that conflicts
                    with a verified brand fact; `CONTRADICTIONS_OWNED_SOURCES`
                    corrects one source page on a domain the brand owns;
                    `SEO_ISSUE` and `ROBOTS_TXT` are technical fixes to a site
                    the brand controls; `PDP_OPTIMISATION` improves one product
                    page; `MANUAL_ACTION` is work a customer described
                    themselves that matches none of the other shapes;
                    `CONTENT_OPTIMISATION` improves an existing page the brand
                    owns, and appears only on projects with content optimisation
                    enabled — the optimize content endpoint returns its article,
                    suggestions and score.
                  type: array
                  items:
                    type: string
                    enum:
                      - TEMPLATE_ACTION
                      - CONTENT_BRIEF
                      - CATEGORY_SITUATION_BRIEF
                      - CONTRADICTIONS_EXTERNAL_SOURCES
                      - CONTRADICTIONS_OWNED_SOURCES
                      - SEO_ISSUE
                      - ROBOTS_TXT
                      - PDP_OPTIMISATION
                      - MANUAL_ACTION
                      - CONTENT_OPTIMISATION
                statuses:
                  description: >-
                    Defaults to every status. `PENDING` is untouched, `ACCEPTED`
                    is in progress, `COMPLETED` is done, `REJECTED` was
                    declined.
                  type: array
                  items:
                    type: string
                    enum:
                      - PENDING
                      - ACCEPTED
                      - REJECTED
                      - COMPLETED
                categories:
                  description: >-
                    The off-site playbook a template action follows (the
                    upper-case values), or the audit check an `SEO_ISSUE` came
                    from (the lower-case ones). A playbook is orthogonal to the
                    group, so the same one appears across groups, and narrowing
                    by both means the intersection. Content briefs and
                    `ROBOTS_TXT` actions carry none and match nothing here.
                  type: array
                  items:
                    type: string
                    enum:
                      - EDITORIAL_PITCH
                      - LISTICLE_COMPARISON_INCLUSION
                      - REVIEW_DIRECTORY_OPTIMIZATION
                      - COMMUNITY_ENGAGEMENT
                      - SOCIAL_CONTENT
                      - accessibility
                      - canonical
                      - crawlability
                      - dom_health
                      - blocked
                      - not_found
                      - other
                      - rate_limited
                      - unavailable
                      - metadata
                      - performance
                      - retrievability
                      - schema
                      - semantic_html
                      - structure
                      - structured_data
                domains:
                  example:
                    - example.com
                  description: >-
                    The site an `SEO_ISSUE` was raised against. Every other type
                    carries none and matches nothing here.
                  type: array
                  items:
                    type: string
                topic_ids:
                  example:
                    - to_a1b2c3
                  description: Only actions on these topics (see the topics endpoint).
                  type: array
                  items:
                    type: string
                model_channel_ids:
                  example:
                    - openai-0
                  description: >-
                    Only actions affecting these AI engine channels (see the
                    model channels endpoint).
                  type: array
                  items:
                    type: string
                    enum:
                      - openai-0
                      - openai-1
                      - qwen-0
                      - openai-2
                      - perplexity-0
                      - perplexity-1
                      - google-0
                      - google-1
                      - google-2
                      - google-3
                      - google-4
                      - anthropic-0
                      - anthropic-1
                      - anthropic-2
                      - anthropic-3
                      - deepseek-0
                      - meta-0
                      - meta-1
                      - xai-0
                      - xai-1
                      - microsoft-0
                      - amazon-0
                      - mistral-0
                      - mistral-1
                      - naver-0
                      - openai-3
                      - openai-4
                      - openai-5
                country_codes:
                  example:
                    - US
                  description: >-
                    ISO 3166-1 alpha-2 markets. An action carrying no markets is
                    not scoped to one, so every selection matches it.
                  type: array
                  items:
                    type: string
                    enum:
                      - AE
                      - AL
                      - AM
                      - AR
                      - AT
                      - AU
                      - BA
                      - BE
                      - BG
                      - BH
                      - BO
                      - BR
                      - BS
                      - BY
                      - CA
                      - CH
                      - CL
                      - CN
                      - CO
                      - CR
                      - CY
                      - CZ
                      - DE
                      - DK
                      - DO
                      - EC
                      - EE
                      - EG
                      - ES
                      - FI
                      - FR
                      - GB
                      - GE
                      - GH
                      - GR
                      - GT
                      - HK
                      - HN
                      - HR
                      - HU
                      - ID
                      - IE
                      - IL
                      - IN
                      - IQ
                      - IS
                      - IT
                      - JO
                      - JP
                      - KR
                      - KW
                      - LB
                      - LI
                      - LT
                      - LU
                      - LV
                      - MA
                      - MD
                      - ME
                      - MK
                      - MN
                      - MT
                      - MX
                      - MY
                      - NG
                      - NI
                      - NL
                      - 'NO'
                      - NZ
                      - OM
                      - PK
                      - PA
                      - PE
                      - PH
                      - PL
                      - PT
                      - PY
                      - PS
                      - QA
                      - RO
                      - RS
                      - SA
                      - SE
                      - SG
                      - SI
                      - SK
                      - SV
                      - TH
                      - TN
                      - TR
                      - TW
                      - UA
                      - US
                      - UY
                      - VE
                      - VN
                      - ZA
                      - AD
                      - AF
                      - AS
                      - AZ
                      - BB
                      - BQ
                      - CG
                      - CI
                      - CM
                      - CW
                      - DM
                      - DZ
                      - FO
                      - GF
                      - GP
                      - JM
                      - KG
                      - KH
                      - KI
                      - KZ
                      - LK
                      - LR
                      - LS
                      - MW
                      - NC
                      - PG
                      - TD
                      - TF
                      - UG
                      - VU
                      - ZW
                targets:
                  description: >-
                    `owned` means the action lands on a page the brand controls;
                    `earned` means a third-party page, which covers editorial
                    coverage and community posts alike. A UGC action is `earned`
                    even when the brand writes the post itself.
                  type: array
                  items:
                    type: string
                    enum:
                      - owned
                      - earned
                groups:
                  description: The kind of surface the action lands on.
                  type: array
                  items:
                    type: string
                    enum:
                      - OWNED
                      - EDITORIAL
                      - REFERENCE
                      - UGC
                      - OTHER
                archetypes:
                  description: >-
                    The kind of page a content brief says to create. Template
                    actions carry no archetype and match nothing here, so this
                    narrows the answer to content briefs.
                  type: array
                  items:
                    type: string
                    enum:
                      - HOMEPAGE
                      - CATEGORY_PAGE
                      - PRODUCT_PAGE
                      - LISTICLE
                      - COMPARISON
                      - PROFILE
                      - ALTERNATIVE
                      - DISCUSSION
                      - HOW_TO_GUIDE
                      - ARTICLE
                      - OTHER
                platforms:
                  example:
                    - reddit.com
                  description: >-
                    Registrable domain of a third-party action. Own-site actions
                    carry none and match nothing here.
                  type: array
                  items:
                    type: string
                order_by:
                  default: impact
                  description: >-
                    `impact` is the order the Actions page ranks by, strongest
                    expected gain first. `created_at` reads newest first, which
                    is how to find what Peec generated since the last read.
                  type: string
                  enum:
                    - impact
                    - created_at
                direction:
                  default: desc
                  type: string
                  enum:
                    - asc
                    - desc
                limit:
                  default: 1000
                  type: integer
                  minimum: 1
                  maximum: 10000
                offset:
                  default: 0
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          example: 01a0422f-e0c4-7820-85a1-31515a321f15
                        type:
                          type: string
                          enum:
                            - TEMPLATE_ACTION
                            - CONTENT_BRIEF
                            - CATEGORY_SITUATION_BRIEF
                            - CONTRADICTIONS_EXTERNAL_SOURCES
                            - CONTRADICTIONS_OWNED_SOURCES
                            - SEO_ISSUE
                            - ROBOTS_TXT
                            - PDP_OPTIMISATION
                            - MANUAL_ACTION
                            - CONTENT_OPTIMISATION
                        status:
                          type: string
                          enum:
                            - PENDING
                            - ACCEPTED
                            - REJECTED
                            - COMPLETED
                        title:
                          type: string
                          example: Add a pricing comparison table to the plans page
                        group:
                          type: string
                          enum:
                            - OWNED
                            - EDITORIAL
                            - REFERENCE
                            - UGC
                            - OTHER
                        category:
                          nullable: true
                          example: EDITORIAL_PITCH
                          description: >-
                            The off-site playbook a template action follows, or
                            the audit check an `SEO_ISSUE` came from — normally
                            one of the values the `categories` filter accepts.
                            Null on content briefs and `ROBOTS_TXT` actions.
                          type: string
                        target:
                          type: string
                          enum:
                            - owned
                            - earned
                        archetype:
                          nullable: true
                          description: >-
                            The kind of page a content brief says to create.
                            Null on template actions, and on content briefs
                            generated before Peec recorded it.
                          type: string
                          enum:
                            - HOMEPAGE
                            - CATEGORY_PAGE
                            - PRODUCT_PAGE
                            - LISTICLE
                            - COMPARISON
                            - PROFILE
                            - ALTERNATIVE
                            - DISCUSSION
                            - HOW_TO_GUIDE
                            - ARTICLE
                            - OTHER
                        platform:
                          nullable: true
                          example: reddit.com
                          description: >-
                            Registrable domain of the third-party site. Null on
                            own-site actions.
                          type: string
                        topic_id:
                          nullable: true
                          example: to_a1b2c3
                          type: string
                        source:
                          type: string
                          example: https://example.com/pricing
                          description: >-
                            The page the action targets. Not always a url: a
                            content brief describes a page that does not exist
                            yet and carries the sentinel `content-brief`
                            (`situation-brief` on a `CATEGORY_SITUATION_BRIEF`),
                            an `SEO_ISSUE` names the audit that raised it and
                            puts its target in `domain`, and a `ROBOTS_TXT`
                            action carries a bare hostname.
                        domain:
                          nullable: true
                          example: example.com
                          description: >-
                            The site an `SEO_ISSUE` was raised against, which is
                            what it applies to rather than a single page. Null
                            on every other type.
                          type: string
                        country_codes:
                          type: array
                          items:
                            type: string
                          description: >-
                            Markets the action is scoped to. Empty when it
                            applies to every market the project tracks.
                        model_channel_ids:
                          type: array
                          items:
                            type: string
                            enum:
                              - openai-0
                              - openai-1
                              - qwen-0
                              - openai-2
                              - perplexity-0
                              - perplexity-1
                              - google-0
                              - google-1
                              - google-2
                              - google-3
                              - google-4
                              - anthropic-0
                              - anthropic-1
                              - anthropic-2
                              - anthropic-3
                              - deepseek-0
                              - meta-0
                              - meta-1
                              - xai-0
                              - xai-1
                              - microsoft-0
                              - amazon-0
                              - mistral-0
                              - mistral-1
                              - naver-0
                              - openai-3
                              - openai-4
                              - openai-5
                        impact:
                          type: string
                          enum:
                            - VERY_LOW
                            - LOW
                            - MEDIUM
                            - HIGH
                            - VERY_HIGH
                          description: >-
                            How much the action is expected to gain if it is
                            completed, banded against every action in the
                            project, so it reads the same whatever the filters
                            are. On an `SEO_ISSUE` the band comes from the
                            issue's severity instead. This is the impact the app
                            shows, and the only measure of expected gain the API
                            publishes.
                        step_count:
                          type: number
                          description: How many steps the action has.
                        completed_step_count:
                          type: number
                        created_at:
                          type: string
                          example: '2026-08-20T10:12:00.000Z'
                        status_updated_at:
                          nullable: true
                          description: >-
                            When the status last changed. Null while still
                            `PENDING`.
                          type: string
                        created_by:
                          type: string
                          enum:
                            - peec
                            - customer
                          description: >-
                            Who wrote the action. Only a `customer` one can be
                            deleted or have its `kind` changed; a `peec` one is
                            declined through the status endpoint instead.
                        priority:
                          nullable: true
                          description: >-
                            How much the customer says the action matters. It
                            fills the same bars `impact` fills on a generated
                            action, and is null on one nobody has set.
                          type: string
                          enum:
                            - none
                            - low
                            - medium
                            - high
                        assignee_user_id:
                          nullable: true
                          description: >-
                            The project member the work is on. Null when
                            unassigned.
                          type: string
                        due_on:
                          nullable: true
                          example: '2026-10-31'
                          description: Calendar day in the project's timezone.
                          type: string
                        tag_ids:
                          type: array
                          items:
                            type: string
                          description: Tags the customer filed the action under.
                      required:
                        - id
                        - type
                        - status
                        - title
                        - group
                        - category
                        - target
                        - archetype
                        - platform
                        - topic_id
                        - source
                        - domain
                        - country_codes
                        - model_channel_ids
                        - impact
                        - step_count
                        - completed_step_count
                        - created_at
                        - status_updated_at
                        - created_by
                        - priority
                        - assignee_user_id
                        - due_on
                        - tag_ids
                  total_count:
                    type: number
                    example: 42
                    description: Actions matching the filters, ignoring pagination.
                required:
                  - data
                  - total_count
                description: Success
      security:
        - APIKeyHeader: []
        - APIKeyQuery: []
        - BearerAuth: []
components:
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    APIKeyQuery:
      type: apiKey
      in: query
      name: api_key
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````