# List prio models

GET /prio-models. Parameters, permissions, request and response schemas.

`GET /prio-models`

List prio models. Requires the REST `read` token ability. The bearer token selects the Team; a supplied team\_id cannot switch tenants. Additional role, entity-policy and plan requirements vary by operation.

## Authentication

Use a team API key as `Authorization: Bearer YOUR_API_KEY`. The token ability and the user’s role must both allow this operation. See [authentication](https://conversionlab.app/docs/developer/authentication).

```json
{
  "ability": "read",
  "team": "Token-bound Team",
  "authorization": "Additional role, entity-policy and plan requirements vary by operation."
}
```

## Parameters

| Name           | Location | Required | Description                                                                                                                    |
| -------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `sort`         | query    | No       | Comma-separated sort fields; prefix a field with - for descending order. Allowed: name.                                        |
| `filter[name]` | query    | No       | Filter by name. Values use the endpoint’s configured matching; comma-separated values are supported by standard exact filters. |

### sort

```json
{
  "type": "string"
}
```

### filter\[name]

```json
{
  "type": "string"
}
```

## Example request

```bash
curl --request GET 'https://api.example.test/api/prio-models' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Accept: application/json'
```

Examples use fictional data. Replace resource IDs and the API host with your environment’s values.

## Responses

### 200

Array of `PrioModelResource`

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "default_config": {
            "type": "object",
            "properties": {
              "formula": {
                "type": "string"
              },
              "inputs": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "maxLength": 255
                    },
                    "key": {
                      "type": "string"
                    },
                    "description": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "number",
                        "boolean",
                        "select"
                      ]
                    },
                    "options": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "description": "An arbitrary JSON value retained by a metadata/settings field.",
                        "oneOf": [
                          {
                            "type": "null"
                          },
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          },
                          {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/JsonValue"
                            }
                          },
                          {
                            "type": "object",
                            "additionalProperties": {
                              "$ref": "#/components/schemas/JsonValue"
                            }
                          }
                        ]
                      },
                      "description": "Question options retained as JSON. The editor uses strings or objects with value and label.",
                      "example": [
                        "Delivery time",
                        "Shipping cost"
                      ]
                    },
                    "default": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "min": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "max": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "step": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "weight": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "name",
                    "key",
                    "type"
                  ]
                },
                "minItems": 1
              }
            },
            "required": [
              "formula",
              "inputs"
            ]
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "default_config",
          "created_at",
          "updated_at"
        ],
        "title": "PrioModelResource"
      }
    }
  },
  "required": [
    "data"
  ]
}
```

```json
{
  "data": [
    {
      "id": 101,
      "name": "Checkout delivery estimate",
      "description": null,
      "default_config": {
        "formula": "impact * confidence / effort",
        "inputs": [
          {
            "name": "Checkout delivery estimate",
            "key": "example",
            "description": null,
            "type": "number"
          }
        ]
      },
      "created_at": null,
      "updated_at": null
    }
  ]
}
```

### 401

Unauthenticated

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Error overview."
    }
  },
  "required": [
    "message"
  ]
}
```

```json
{
  "message": "The request could not be completed."
}
```

### 403

Authorization error

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Error overview."
    }
  },
  "required": [
    "message"
  ]
}
```

```json
{
  "message": "The request could not be completed."
}
```

### 422

Validation error

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "description": "Errors overview."
    },
    "errors": {
      "type": "object",
      "description": "A detailed description of each field that failed validation.",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    }
  },
  "required": [
    "message",
    "errors"
  ]
}
```

```json
{
  "message": "The request could not be completed.",
  "errors": {
    "name": [
      "The name field is required."
    ]
  }
}
```

### 429

Rate limit exceeded. Honor Retry-After before retrying.

Response headers:

```json
{
  "Retry-After": {
    "description": "Seconds before retrying.",
    "schema": {
      "type": "integer"
    }
  }
}
```

Content type: `application/json`.

```json
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "example": "Too Many Attempts."
    }
  },
  "required": [
    "message"
  ]
}
```

```json
{
  "message": "Too Many Attempts."
}
```

See [API conventions](https://conversionlab.app/docs/developer/api-conventions) for error handling, rate limits, pagination, and uploads.
