---
title: "Evaluate an install policy decision for a batch of plugin sources"
method: POST
path: "/v1/install/policy/evaluate"
tags: ["InstallPolicy"]
---

# Evaluate an install policy decision for a batch of plugin sources

`POST /v1/install/policy/evaluate`

Returns a per-source allow/warn/block decision plus structured reasons. For users who belong to multiple orgs, the lowest-sorted org id wins and a warning is logged — set up an org-scoped API key to avoid the picker's arbitrary choice.

## Request body

- object
  - `clientVersion` string
  - `context` object
    - `isCi` boolean
    - `runId` string
    - `project` object
      - `tesslProjectId` string, nullable
      - `workspaceSlug` string, nullable
      - `manifestPath` string
      - `gitRemoteUrl` string, nullable
      - `gitCommitSha` string, nullable
  - `acceptedWarnings` boolean
  - `sources` union[], required
    - union
      - object
        - `id` string, required
        - `source` 'registry', required
        - `tile` object, required
          - `workspaceName` string, required
          - `tileName` string, required
          - `version` string
      - object
        - `id` string, required
        - `source` 'git', required
        - `url` string, required
        - `branch` string
        - `subpath` string
        - `skills` string[]
      - object
        - `id` string, required
        - `source` 'file', required
        - `path` string, required

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, required
    - `type` 'install-policy-evaluation', required
    - `attributes` object, required
      - `policyVersion` string, required
      - `orgId` string, nullable, required
      - `decisions` object[], required
        - `id` string, required
        - `decision` union, required
          - 'allow'
          - 'warn'
          - 'block'
        - `resolvedSource` union
          - object
            - `id` string, required
            - `source` 'registry', required
            - `tile` object, required
              - …
          - object
            - `id` string, required
            - `source` 'git', required
            - `url` string, required
            - `branch` string
            - `subpath` string
          - object
            - `id` string, required
            - `source` 'file', required
            - `path` string, required
        - `fallbackSource` union
          - object
            - `id` string, required
            - `source` 'registry', required
            - `tile` object, required
              - …
          - object
            - `id` string, required
            - `source` 'git', required
            - `url` string, required
            - `branch` string
            - `subpath` string
          - object
            - `id` string, required
            - `source` 'file', required
            - `path` string, required
        - `reasons` union[], required
          - union
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - `requiresInteractiveConfirmation` boolean, required
        - `minimumReleaseAgeDays` integer, nullable
      - `additionalSources` object[], required
        - `id` string, required
        - `source` union, required
          - object
            - `id` string, required
            - `source` 'registry', required
            - `tile` object, required
              - …
          - object
            - `id` string, required
            - `source` 'git', required
            - `url` string, required
            - `branch` string
            - `subpath` string
          - object
            - `id` string, required
            - `source` 'file', required
            - `path` string, required
        - `decision` union, required
          - 'allow'
          - 'warn'
          - 'block'
        - `reasons` union[], required
          - union
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …

## Other responses

- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/tessl/apis/tessl-api.md) · [All operations](https://skmtc.net/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tessl/tessl-api/versions/fbb186825642/schema)
