Entry Point AI Websites API

The Websites API from Entry Point AI — 5 operation(s) for websites.

Operations 5

PUT /v1/websites/cookies Updates cookies #
POST /v1/websites/documents/publish_cookie_policies Publish Cookie Policy #
GET /v1/websites/documents/{documentid} Preview the documents for a website #
POST /v1/websites/trigger_scan Trigger scan of one or more websites #
GET /v1/websites/{websiteid} Read (GET) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/entrypointai:entrypointai-websites-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

entrypointai-websites-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Entry Point AI Websites API
  version: '2026-10-16'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-16: 9 operation(s) read from 13 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Entry Point AI has published no machine-readable contract that the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 0
    documentation: 9
    pages-with-code: 0
    pages-read: 13
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-16'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.termly.io/endpoints/banners-get
  - https://docs.termly.io/endpoints/cookies-get
  - https://docs.termly.io/endpoints/trigger-scan
  - https://docs.termly.io/endpoints/document-preview
  - https://docs.termly.io/endpoints/scan-reports-get
  - https://docs.termly.io/endpoints/collaborators-get
  - https://docs.termly.io/endpoints/publish-cookie-policy
  - https://docs.termly.io/endpoints/custom-consent-themes-get
  - https://docs.termly.io/endpoints/banners-put
  - https://docs.termly.io/endpoints/collaborators-put
  - https://docs.termly.io/endpoints/collaborators-post
  - https://docs.termly.io/endpoints/collaborators-delete
  - https://docs.termly.io/endpoints/cookies-put
servers:
- url: https://api.termly.io
security:
- API_Key: []
tags:
- name: Websites
paths:
  /v1/websites/cookies:
    put:
      operationId: put_v1_websites_cookies
      tags:
      - Websites
      summary: Updates cookies
      description: Updates cookies. The request body is an array of cookie objects. At least one object with the fields account_id and website_id is required. The response returns an array with the updated cookie identifiers and optional error objects.
      x-source: https://docs.termly.io/endpoints/cookies-put
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutV1WebsitesCookiesRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutV1WebsitesCookiesResponse'
      x-evidence:
        kind: documentation
  /v1/websites/documents/publish_cookie_policies:
    post:
      operationId: post_v1_websites_documents_publish_cookie_policies
      tags:
      - Websites
      summary: Publish Cookie Policy
      description: When information in the cookie policy is changed it needs to be republished.
      x-source: https://docs.termly.io/endpoints/publish-cookie-policy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1WebsitesDocumentsPublishCookiePoliciesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1WebsitesDocumentsPublishCookiePoliciesResponse'
      x-evidence:
        kind: documentation
  /v1/websites/documents/{documentid}:
    get:
      operationId: get_v1_websites_documents_documentid
      tags:
      - Websites
      summary: Preview the documents for a website
      description: 'The response will look like: { "results" : [], "errors" : [], "paging" : {} }. Each result object contains: account_id (string), website_id (string), id (string), name (string), document (string), code_snippet (string|null).'
      x-source: https://docs.termly.io/endpoints/document-preview
      parameters:
      - name: documentid
        in: path
        required: true
        schema:
          type: string
      - name: query
        in: query
        required: true
        schema:
          type: string
        description: URL‑encoded JSON array of request objects. Each object must contain an account_id and website_id, and may include ids (array of document ids) and lang (locale). At least one object with an account_id is required. If ids is omitted all documents for the website are returned; if provided it must contain one or more items.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1WebsitesDocumentsDocumentidResponse'
      x-evidence:
        kind: documentation
        collapsed_from: 2 example path(s) differing only at documentId
  /v1/websites/trigger_scan:
    post:
      operationId: post_v1_websites_trigger_scan
      tags:
      - Websites
      summary: Trigger scan of one or more websites
      description: POST request to trigger scans for one or more websites. The request body is an array of objects each containing account_id, website_id, and optional scan_type. The response is an array of objects indicating success (with report_id) or error for each input.
      x-source: https://docs.termly.io/endpoints/trigger-scan
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1WebsitesTriggerScanRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1WebsitesTriggerScanResponse'
      x-evidence:
        kind: documentation
  /v1/websites/{websiteid}:
    get:
      operationId: get_v1_websites_websiteid
      tags:
      - Websites
      summary: Read (GET)
      description: Retrieve all banners for the specified query. The query must be URL encoded and passed as the query parameter.
      x-source: https://docs.termly.io/endpoints/banners-get
      parameters:
      - name: websiteid
        in: path
        required: true
        schema:
          type: string
      - name: query
        in: query
        required: true
        schema:
          type: string
        description: URL‑encoded JSON array describing the account_id and optional ids to retrieve banners for.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1WebsitesWebsiteidResponse'
      x-evidence:
        kind: documentation
        collapsed_from: 4 example path(s) differing only at websiteId
components:
  schemas:
    PostV1WebsitesTriggerScanRequest:
      type: object
      properties:
        account_id:
          type: string
          description: Unique identifier of the account which owns the website.
        website_id:
          type: string
          description: Unique identifier of website to scan.
        scan_type:
          type: string
          description: Type of scan to run. Default is all_pages. one_page scans only the first page; all_pages scans all pages.
      required:
      - account_id
      - website_id
    PostV1WebsitesDocumentsPublishCookiePoliciesRequest:
      type: object
      properties:
        account_id:
          type: string
          description: account identifier
        website_id:
          type: string
          description: website identifier
      required:
      - account_id
      - website_id
    GetV1WebsitesDocumentsDocumentidResponse:
      type: object
      properties:
        results:
          type: array
          description: Array of document preview objects.
        errors:
          type: array
          description: Array of error objects, if any.
        paging:
          type: object
          description: Paging information indicating if more results are available.
    PutV1WebsitesCookiesResponse:
      type: object
      properties:
        account_id:
          type: string
        id:
          type: string
        website_id:
          type: string
        _idx:
          type: integer
        error:
          type: string
          description: present if an object could not be updated
        validation_errors:
          type: object
          description: present if the error is a validation error
    PostV1WebsitesDocumentsPublishCookiePoliciesResponse:
      type: object
      properties:
        account_id:
          type: string
        website_id:
          type: string
        _idx:
          type: integer
    PostV1WebsitesTriggerScanResponse:
      type: object
      properties:
        _idx:
          type: integer
          description: Index in the original array of objects posted.
        account_id:
          type: string
          description: Unique identifier of the account which owns the website.
        website_id:
          type: string
          description: Unique identifier of website to scan.
        report_id:
          type: string
          description: Unique identifier of the scan report (present on success).
        error:
          type: string
          description: Error code when a website cannot be scanned.
        validation_errors:
          type: object
          description: Validation error details (present when the error is a validation error).
    GetV1WebsitesWebsiteidResponse:
      type: object
      properties:
        results:
          type: array
          description: Array of banner objects.
        errors:
          type: array
          description: Array of error objects.
        paging:
          type: object
          description: Paging information with next_results and previous_results.
    PutV1WebsitesCookiesRequest:
      type: object
      properties:
        account_id:
          type: string
          description: the unique identifier of the account
        category:
          type: string
          description: the cookie category
        country:
          type: string
          description: the country that sourced the cookie, based on a geoip lookup
        domain:
          type: string
          description: the domain of the cookie
        de:
          type: string
          description: the description in German
        en_uk:
          type: string
          description: the description in UK English
        en_us:
          type: string
          description: the description in US English
        fr:
          type: string
          description: the description in French
        id:
          type: string
          description: the unique identifier of the cookie
        initiator:
          type: string
          description: the url that sourced the cookie
        name:
          type: string
          description: the name of the cookie
        service:
          type: string
          description: a value indicating the service that soured the cookie
        service_policy_link:
          type: string
          description: a link to the servie policy of the website
        source:
          type: string
          description: the source of the cookie
        tracker_type:
          type: string
          description: one of http_cookie , html_local_storage , html_session_storage , server_cookie , pixel_tracker , indexed_db
        url:
          type: string
          description: the url of the cookie
        value:
          type: string
          description: the cookie value
        website_id:
          type: string
          description: the unique identifier of the website
      required:
      - account_id
      - website_id
  securitySchemes:
    API_Key:
      type: apiKey
      in: header
      name: Authorization
      x-source: https://docs.termly.io/introduction/authentication/