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

# REST API changelog

> Version-by-version changes to the Endor Labs REST API.

export const YamlTable = ({children, data: propData, content}) => {
  const KV_RE = /^([A-Za-z][A-Za-z0-9_()/#\s-]+?):\s*(.+)$/;
  const INLINE_MD_RE = /(\[([^\]]+)\]\(([^)]+)\))|(`([^`]+)`)|(\*\*([^*]+)\*\*)|(\*([^*]+)\*)/g;
  const YES_RE = /^-yes-$/i;
  const NO_RE = /^-no-$/i;
  const LIMITED_RE = /^-(limited|partial)-$/i;
  const NA_RE = /^-(na|none)-$/i;
  const NA2_RE = /^-na2-$/i;
  const SIMPLE_TAG_RE = /(<br\s*\/?>)|(<p\s*\/?>)|(-note-)|(-warning-)/gi;
  const tryParseKV = trimmed => {
    const m = KV_RE.exec(trimmed);
    return m ? {
      key: m[1],
      value: m[2].trim()
    } : null;
  };
  const registerKey = (key, seenKeys, orderedKeys) => {
    if (!seenKeys.has(key)) {
      orderedKeys.push(key);
      seenKeys.add(key);
    }
  };
  const flushEntry = (currentEntry, entries) => {
    if (Object.keys(currentEntry).length > 0) entries.push(currentEntry);
  };
  const parseDashPrefixed = (lines, entries, orderedKeys, seenKeys) => {
    let currentEntry = {};
    let inEntry = false;
    for (const line of lines) {
      const trimmed = line.trim();
      if (trimmed.startsWith('- ')) {
        if (inEntry) entries.push(currentEntry);
        currentEntry = {};
        inEntry = true;
        const kv = tryParseKV(trimmed.substring(2).trim());
        if (kv) {
          registerKey(kv.key, seenKeys, orderedKeys);
          currentEntry[kv.key] = kv.value;
        }
      } else if (inEntry && trimmed !== '') {
        const kv = tryParseKV(trimmed);
        if (kv) {
          registerKey(kv.key, seenKeys, orderedKeys);
          currentEntry[kv.key] = kv.value;
        }
      }
    }
    flushEntry(currentEntry, entries);
  };
  const parseBlankSeparated = (lines, entries, orderedKeys, seenKeys) => {
    let currentEntry = {};
    let inEntry = false;
    for (const line of lines) {
      const trimmed = line.trim();
      if (trimmed === '') {
        if (inEntry) {
          flushEntry(currentEntry, entries);
          currentEntry = {};
          inEntry = false;
        }
        continue;
      }
      const kv = tryParseKV(trimmed);
      if (!kv) continue;
      const isNewEntry = !line.startsWith(' ') && !line.startsWith('\t');
      if (isNewEntry && inEntry && Object.keys(currentEntry).length > 0) {
        entries.push(currentEntry);
        currentEntry = {};
      }
      registerKey(kv.key, seenKeys, orderedKeys);
      currentEntry[kv.key] = kv.value;
      inEntry = true;
    }
    flushEntry(currentEntry, entries);
  };
  const normalizeEntries = (entries, orderedKeys) => entries.map(entry => {
    const filled = {};
    for (const key of orderedKeys) filled[key] = entry[key] || '';
    return filled;
  });
  const parseYamlTableContent = contentStr => {
    if (!contentStr) return [];
    const entries = [];
    const orderedKeys = [];
    const seenKeys = new Set();
    const lines = contentStr.split('\n');
    if (lines.some(line => line.trim().startsWith('- '))) {
      parseDashPrefixed(lines, entries, orderedKeys, seenKeys);
    } else {
      parseBlankSeparated(lines, entries, orderedKeys, seenKeys);
    }
    return normalizeEntries(entries, orderedKeys);
  };
  const processText = text => {
    if (!text) return text;
    const parts = [];
    let keyIndex = 0;
    let lastIndex = 0;
    let match;
    while ((match = INLINE_MD_RE.exec(text)) !== null) {
      if (match.index > lastIndex) parts.push(text.slice(lastIndex, match.index));
      if (match[1]) {
        parts.push(<a key={keyIndex++} href={match[3]}>{match[2]}</a>);
      } else if (match[4]) {
        parts.push(<code key={keyIndex++}>{match[5]}</code>);
      } else if (match[6]) {
        parts.push(<strong key={keyIndex++}>{match[7]}</strong>);
      } else if (match[8]) {
        parts.push(<em key={keyIndex++}>{match[9]}</em>);
      }
      lastIndex = match.index + match[0].length;
    }
    if (lastIndex < text.length) parts.push(text.slice(lastIndex));
    if (parts.length === 0) return text;
    const keyRef = {
      current: keyIndex
    };
    return expandHtmlTags(parts, keyRef);
  };
  const processBadges = text => {
    if (!text || typeof text !== 'string') return text;
    if (YES_RE.test(text)) return <span className="yt-badge-yes" role="img" aria-label="Supported" title="Supported">✓</span>;
    if (NO_RE.test(text)) return <span className="yt-badge-no" role="img" aria-label="Not supported" title="Not supported">✗</span>;
    if (LIMITED_RE.test(text)) return <span className="yt-badge-limited" role="img" aria-label="Partially supported" title="Partially supported">◐</span>;
    if (NA_RE.test(text) || NA2_RE.test(text)) return <span className="yt-sr-only" title="Not applicable">Not applicable</span>;
    return processText(text);
  };
  const cellClassName = text => {
    if (!text || typeof text !== 'string') return undefined;
    if (NA_RE.test(text)) return 'yt-cell-na';
    if (NA2_RE.test(text)) return 'yt-cell-na2';
    return undefined;
  };
  const expandSimpleTags = (str, keyRef) => {
    const result = [];
    let last = 0;
    SIMPLE_TAG_RE.lastIndex = 0;
    let m;
    while ((m = SIMPLE_TAG_RE.exec(str)) !== null) {
      if (m.index > last) result.push(str.slice(last, m.index));
      if (m[1]) {
        result.push(<br key={keyRef.current++} />);
      } else if (m[2]) {
        result.push(<br key={keyRef.current++} />, <br key={keyRef.current++} />);
      } else if (m[3]) {
        result.push(<span key={keyRef.current++} className="yt-badge-note" style={{
          fontWeight: 600
        }}>Note: </span>);
      } else if (m[4]) {
        result.push(<span key={keyRef.current++} className="yt-badge-warning" style={{
          fontWeight: 600
        }}>Warning: </span>);
      }
      last = m.index + m[0].length;
    }
    if (last < str.length) result.push(str.slice(last));
    return result;
  };
  const expandHtmlTags = (chunks, keyRef) => {
    const out = [];
    for (const chunk of chunks) {
      if (typeof chunk === 'string') {
        out.push(...expandSimpleTags(chunk, keyRef));
      } else {
        out.push(chunk);
      }
    }
    return out;
  };
  const extractText = node => {
    if (node === null || node === undefined) return '';
    if (typeof node === 'string') return node;
    if (typeof node === 'number') return String(node);
    if (typeof node === 'boolean') return '';
    if (Array.isArray(node)) return node.map(extractText).join('');
    if (node && typeof node === 'object' && node.type) {
      const props = node.props || ({});
      if (typeof props.children === 'string') return props.children;
      if (props.children) return extractText(props.children);
      return '';
    }
    return String(node || '');
  };
  const [mounted, setMounted] = useState(false);
  useEffect(() => {
    setMounted(true);
  }, []);
  const data = useMemo(() => {
    if (propData) return propData;
    if (content && typeof content === 'string') return parseYamlTableContent(content);
    if (!children) return [];
    if (typeof children === 'string') return parseYamlTableContent(children);
    const childrenArray = Array.isArray(children) ? children : [children];
    return parseYamlTableContent(childrenArray.map(extractText).join('').trim());
  }, [children, propData, content]);
  const columns = useMemo(() => {
    if (!data || data.length === 0) return [];
    const firstRow = data[0];
    if (!firstRow || typeof firstRow !== 'object') return [];
    return Object.keys(firstRow);
  }, [data]);
  if (!mounted) return null;
  if (!data || data.length === 0) return null;
  const rowKey = row => columns.map(c => row[c] || '').join('|');
  return <table>
      <thead>
        <tr>
          {columns.map(col => <th key={col}>{col.replaceAll('_', ' ')}</th>)}
        </tr>
      </thead>
      <tbody>
        {data.map(row => <tr key={rowKey(row)}>
            {columns.map(col => <td key={col} className={cellClassName(row[col])}>{processBadges(row[col])}</td>)}
          </tr>)}
      </tbody>
    </table>;
};

The Endor Labs REST API uses explicit versioning. Endor Labs ships breaking changes only in a new API version. New endpoints, fields, and enum values are backwards compatible within the same version. For more information, see [API versions](/developers-api/rest-api/about/versions).

Not every release changes the public-facing endpoints or services. A release that is absent from this page shipped no API changes.

<Update label="v1.7.1007" description="June 16, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `TYPE_FINDING_REFRESH` at the following locations.

  <YamlTable>
    {`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-results\`
        Location: \`spec.type\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-results\`
        Location: \`spec.type\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.1002" description="June 10, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `ENDORCTL_RC_SCAN_CANCELLED` at the following locations.

  <YamlTable>
    {`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-results\`
        Location: \`spec.exit_code\`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-workflow-results\`
        Location: \`spec.workflow_results[].error.code\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-results\`
        Location: \`spec.exit_code\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-workflow-results\`
        Location: \`spec.workflow_results[].error.code\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.998" description="June 8, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `ACTION_TYPE_ADO_BOARDS` at the following locations.

  <YamlTable>
    {`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/notification-targets\`
        Location: \`spec.action.action_type\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/batch/notifications\`
        Location: \`spec.notifications[].spec.notification_action_data.additionalProperties.notification_target_type\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/notification-targets\`
        Location: \`spec.action.action_type\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.994" description="June 4, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `ENDORCTL_RC_BASELINE_NOT_FOUND` at the following locations.

  <YamlTable>
    {`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-results\`
        Location: \`spec.exit_code\`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-workflow-results\`
        Location: \`spec.workflow_results[].error.code\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-results\`
        Location: \`spec.exit_code\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-workflow-results\`
        Location: \`spec.workflow_results[].error.code\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.967" description="May 8, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the following endpoints.

  <YamlTable>
    {`
        - Method: DELETE
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/ai-sast-customer-contexts/{uuid}\`
        - Method: GET
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/ai-sast-customer-contexts/{uuid}\`
        - Method: GET
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/ai-sast-customer-contexts\`
        - Method: PATCH
        Endpoint: \`/v1/namespaces/{object.tenant_meta.namespace}/ai-sast-customer-contexts\`
        - Method: POST
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/ai-sast-customer-contexts\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.940" description="April 21, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `FINDING_TAGS_SEGMENT_MATCH` at the following locations.

  <Accordion title="View the 73 locations">
    <YamlTable>
      {`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/findings\`
            Location: \`spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/policies\`
            Location: \`spec.finding.tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-results\`
            Location: \`spec.all_findings.additionalProperties.tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-results\`
            Location: \`spec.deleted_findings.additionalProperties.tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-results\`
            Location: \`spec.exception_findings.additionalProperties.tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/policies\`
            Location: \`spec.finding.tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-results\`
            Location: \`spec.all_findings.additionalProperties.tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-results\`
            Location: \`spec.deleted_findings.additionalProperties.tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-results\`
            Location: \`spec.exception_findings.additionalProperties.tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.fixed_summary.additionalProperties.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_tags[]\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.introduced_summary.additionalProperties.finding_tags[]\`
            `}
    </YamlTable>
  </Accordion>
</Update>

<Update label="v1.7.932" description="April 15, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `SYSTEM_ROLE_AI_AUDIT` at the following locations.

  <YamlTable>
    {`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/authorization-policies\`
        Location: \`spec.permissions.roles[]\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/api-keys\`
        Location: \`spec.permissions.roles[]\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/authorization-policies\`
        Location: \`spec.permissions.roles[]\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.909" description="March 31, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the following endpoints.

  <YamlTable>
    {`
        - Method: GET
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/hugging-face-organizations/{uuid}\`
        - Method: GET
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/hugging-face-organizations\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.901" description="March 26, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `MALWARE_SOURCE_INTERNAL` at the following locations.

  <Accordion title="View the 35 locations">
    <YamlTable>
      {`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/findings\`
            Location: \`spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/queries/malware\`
            Location: \`response.list.objects[].spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/queries/malware\`
            Location: \`responses.values.additionalProperties.list.objects[].spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.all_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.finding_fixing_upgrades.additionalProperties.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.prioritized_upgrades.upgrade_list[].vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.other_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.fixed.additionalProperties.spec.finding_metadata.malware.spec.source\`
            - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/version-upgrades\`
            Location: \`spec.upgrade_info.vuln_finding_info.severity.additionalProperties.introduced.additionalProperties.spec.finding_metadata.malware.spec.source\`
            `}
    </YamlTable>
  </Accordion>
</Update>

<Update label="v1.7.893" description="March 20, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the enum value `ENDORCTL_RC_DEPENDENCY_SETUP_WARNING` at the following locations.

  <YamlTable>
    {`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-results\`
        Location: \`spec.exit_code\`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/scan-workflow-results\`
        Location: \`spec.workflow_results[].error.code\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-results\`
        Location: \`spec.exit_code\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/scan-workflow-results\`
        Location: \`spec.workflow_results[].error.code\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.882" description="March 16, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the following endpoints.

  <YamlTable>
    {`
        - Method: DELETE
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/registry-ingestion-checkpoints/{uuid}\`
        - Method: GET
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/registry-ingestion-checkpoints/{uuid}\`
        - Method: GET
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/registry-ingestion-checkpoints\`
        - Method: PATCH
        Endpoint: \`/v1/namespaces/{object.tenant_meta.namespace}/registry-ingestion-checkpoints\`
        - Method: POST
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/registry-ingestion-checkpoints\`
        `}
  </YamlTable>
</Update>

<Update label="v1.7.870" description="March 10, 2026">
  The following updates have been made to the Endor Labs REST API as part of this release.

  Added the following endpoints.

  <YamlTable>
    {`
        - Method: POST
        Endpoint: \`/v1/namespaces/{tenant_meta.namespace}/batch/notifications\`
        `}
  </YamlTable>

  Added the enum value `AGGREGATION_TYPE_MANUAL` at the following locations.

  <YamlTable>
    {`
        - Endpoint: \`PATCH /v1/namespaces/{object.tenant_meta.namespace}/policies\`
        Location: \`spec.notification.aggregation_type\`
        - Endpoint: \`POST /v1/namespaces/{tenant_meta.namespace}/policies\`
        Location: \`spec.notification.aggregation_type\`
        `}
  </YamlTable>
</Update>
