---
title: "List Profiles"
method: GET
path: "/v2/ap-portals/{portal_id}/form-profiles"
tags: ["ap-portals"]
---

# List Profiles

`GET /v2/ap-portals/{portal_id}/form-profiles`

## Request

- Base URL: `https://api.stuut.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.stuut.ai/v2/ap-portals/{portal_id}/form-profiles`
- Auth: HTTP bearer

List form profiles

Revision history of one buyer's invoice-form configuration, newest revision first, capped at
50. At most one revision is active at a time; the others are unapproved proposals or
superseded revisions. Pass ``before_revision`` to page further back through the history.

## Path parameters

- `portal_id` string, required

## Query parameters

- `before_revision` integer, nullable

## Response `200`

Successful Response

- FormProfileRevision[]
  - `id` string, required
  - `revision` integer, required
  - `base_revision` integer, required
  - `config` FormProfileConfigSchemaOutput, required: Public configuration contract; provider-specific validation remains in core.
    - `schema_version` 1, required
    - `provider` 'kehe' | 'taulia' | 'coupa' | 'ariba' | 'meijer' | 'kroger' | 'walgreens' | 'albertsons' | 'target' | 'heb' | 'heb_sidm' | 'c_and_s' | 'walmart' | 'walmart_highradius' | 'cvs' | 'cvs_sap' | 'cvs_image_silo' | 'kroger_supplier_connect' | 'kroger_claimtrax' | 'kroger_verigon' | 'servicetitan' | 'sandbox' | 'generic', required: Supported AP Portal providers.
    - `field_sources` object, required
    - `field_descriptors` object, required
    - `charges` ProfileChargesSchemaOutput, required
      - `freight_on_lines` boolean, required
      - `tax_from_header` boolean, required
      - `tax_category_by_code` object, required
      - `route_bc_resource_charges` boolean, required
    - `invoice_date` ProfileInvoiceDateSchema, required
      - `max_backdate_days` integer, required
      - `timezone` string, required
    - `supplier_identity` object, required
    - `field_values` object, required
    - `form_variant` string, nullable, required
    - `field_choices` ProfileChoiceSchemaOutput[], required
      - `id` string, required
      - `label` string, required
      - `scope` 'header' | 'line' | 'shipping' | 'unknown', required
      - `scope_ref` string, nullable, required
      - `form_variant` string, required
      - `options` ProfileOptionSchema[], required
        - `value` string, required
        - `label` string, required
      - `current_value` string, nullable, required
      - `current_label` string, nullable, required
      - `control_key` string, nullable, required
      - `identity_key` string, nullable, required
      - `frame_index` integer, required
      - `field_key` string, nullable, required
      - `selector` string, nullable, required
      - `selection_method` 'value' | 'label', required
    - `choice_confirmations` ProfileConfirmationSchemaOutput[], required
      - `field_id` string, required
      - `value` string, required
      - `confirmed_by` string, required
      - `confirmed_at` string, date-time, required
      - `evidence_work_id` string, required
      - `invoice_id` string, nullable, required
    - `choice_proposals` ProfileProposalSchema[], required
      - `field_id` string, required
      - `value` string, required
      - `reason` string, required
      - `confidence` number, required
      - `evidence_work_id` string, required
      - `invoice_id` string, required
    - `resolvers` string[], required
  - `is_active` boolean, required
  - `approved_by` string, nullable, required
  - `approved_at` string, date-time, nullable, required
  - `validation_work_id` string, nullable, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/stuut/apis/stuut-api.md) - [All operations](https://skmtc.dev/stuut/apis/stuut-api/llms.txt) - [OpenAPI document](https://skmtc.dev/stuut/apis/stuut-api/revisions/ff0ad16a55ff?raw)
