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

# Check EOL

> This endpoint return whether an entity has reached End-of-Life (EOL) status.

### Body

<ParamField body="component" type="object" required>
  An identifier to determine an entity's EOL status. Only one of the following can be provided: `cpe`, `purl`, `custom`.

  <Expandable title="properties">
    <ParamField body="name" type="string" required>
      The name of the software.
    </ParamField>

    <ParamField body="version" type="string" required>
      The software version.
    </ParamField>

    <ParamField body="ecosystem" type="string" required>
      The ecosystem that this software belongs to. Defaults to `generic`.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="lifecycle" type="string">
  The field takes a support ID to match against. If not provided, it will default to `STANDARD_SUPPORT` which is the base level
  of support for any entity.

  `STANDARD_SUPPORT` is defined as the base support level in which security updates are provided for the entity.
</ParamField>

### Response

<ResponseField name="eol" type="boolean">
  Whether the matched entity is end-of-life.
</ResponseField>

<ResponseField name="eol_reason" type="string">
  The reason the entity was marked as deprecated. Can be one of VENDOR\_ANNOUNCED, REGISTRY\_DEPRECATED, or SOURCE\_ARCHIVED.
</ResponseField>

<ResponseField name="eol_date" type="string">
  The end-of-life date for the matched entity.
</ResponseField>

<ResponseField name="match" type="object">
  Information about the match.

  <Expandable title="match">
    <ResponseField name="found" type="bool">
      Whether a match was found.
    </ResponseField>

    <ResponseField name="message" type="string">
      Information about why the match was not found.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="found_support" type="boolean">
  Whether the entity support was found.
</ResponseField>

<ResponseField name="request" type="object">
  The request that triggered this response.

  <Expandable title="request">
    <ResponseField name="identifier" type="object">
      Entity identifier object for the request.

      <Expandable title="identifier">
        <ResponseField name="cpe" type="string">
          Common Platform Enumeration identifier
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="evidence" type="object">
  Evidence supporting the eol status.

  <Expandable title="evidence">
    <ResponseField name="schema_version" type="string">
      Schema version
    </ResponseField>

    <ResponseField name="id" type="string">
      Unique identifier
    </ResponseField>

    <ResponseField name="modified" type="datetime">
      Last modified date
    </ResponseField>

    <ResponseField name="published" type="datetime">
      Published date
    </ResponseField>

    <ResponseField name="entity" type="object">
      Matched entity info.

      <Expandable title="entity">
        <ResponseField name="lts" type="boolean">
          Whether the matched entity has Long Term Support
        </ResponseField>

        <ResponseField name="name" type="string">
          Name of the matched entity
        </ResponseField>

        <ResponseField name="released" type="datetime">
          Release date of the matched entity
        </ResponseField>

        <ResponseField name="type" type="string">
          Type of the matched entity. Will be one of: `service`, `device`, `software`, `package`, `os`.
        </ResponseField>

        <ResponseField name="vendor" type="string">
          Vendor of the matched entity
        </ResponseField>

        <ResponseField name="version" type="string">
          Version of the matched entity
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="support" type="object[]">
      The available support levels for the matched entity.

      <Expandable title="support">
        <ResponseField name="eol" type="datetime">
          End-of-life date
        </ResponseField>

        <ResponseField name="id" type="string">
          Support ID
        </ResponseField>

        <ResponseField name="level" type="integer">
          Support level
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="references" type="object[]">
      References are used to provide additional information about the matched entity.

      <Expandable title="references">
        <ResponseField name="type" type="string">
          Type of reference. Will be one of: `CHANGELOG`, `ARTICLE`, `WEB`, `SOURCE`, `PACKAGE`
        </ResponseField>

        <ResponseField name="url" type="string">
          URL of the reference
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="identification" type="object">
      Identification methods used.

      <Expandable title="identification">
        <ResponseField name="cpes" type="string[]">
          List of Common Platform Enumeration identifiers
        </ResponseField>

        <ResponseField name="custom" type="object">
          Custom identification

          <Expandable title="custom">
            <ResponseField name="name" type="string">
              Custom name
            </ResponseField>

            <ResponseField name="vendor" type="string">
              Custom vendor
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="purls" type="string[]">
          List of Package URL identifiers
        </ResponseField>

        <ResponseField name="versions" type="string[]">
          List of versions
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash curl theme={null}
  curl --location --request POST 'https://edb-prod.xeol.io/eol/check' \
  --data-raw '{
    "component": {
        "name": "Go",
        "ecosystem": "generic",
        "version": "1.15"
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "error": null,
    "result": {
      "componentName": "Go",
      "ecosystem": "generic",
      "version": {
        "id": "cv_92UqG6FZu2uoxebKZs5bcEN8CFoqPGC6bx62kn4fzEwr",
        "version": "1.15",
        "componentId": "c_3qrajMUJoCZLzbYxCA6wxfo1W1nDPTLvr5PMJKuYiFks",
        "releasedAt": "2020-08-11T00:00:00.000Z",
        "createdAt": "2024-03-15T17:00:19.685Z",
        "updatedAt": "2024-03-15T17:00:19.685Z"
      },
      "eol": {
        "now": {
          "primary": {
            "reason": "vendor_announced",
            "date": "2021-08-16T00:00:00.000Z",
            "supportLevel": "STANDARD_SUPPORT",
            "isDefault": true
          },
          "other": []
        },
        "future": null
      },
      "lifecycles": [{
        "id": "life_Hukr1PH1ir9XMmDomzZ4j1hAurbWnJfTr4Hs6i4XZtkJ",
        "eolAt": "2021-08-16T00:00:00.000Z",
        "componentId": "c_3qrajMUJoCZLzbYxCA6wxfo1W1nDPTLvr5PMJKuYiFks",
        "range": "~1.15",
        "supportLevel": "STANDARD_SUPPORT",
        "isDefault": true,
        "uri": null,
        "eolField": "eolAt",
        "isEol": null,
        "componentVersionId": "cv_92UqG6FZu2uoxebKZs5bcEN8CFoqPGC6bx62kn4fzEwr",
        "lifecycleId": "life_Hukr1PH1ir9XMmDomzZ4j1hAurbWnJfTr4Hs6i4XZtkJ"
      }],
      "registry": null
    }
  }
  ```

  ```json 400 theme={null}
  {
    "result": null,
    "error": {
      "message": "Json body validation failed: component.ecosystem: invalid enum value. expected 'generic' | 'npm' | 'nuget' | 'pypi' | 'maven' | 'golang', received ''"
    }
  }
  ```

  ```json 401 theme={null}
  {
    "result": null,
    "error": {
      "message": "Unauthorized"
    }
  }
  ```
</ResponseExample>
