Keepp API

Keepp API as documented publicly: 13 operations. Contract generated from the documentation by API Evangelist (2026-11-13); not the provider's own document.

GitHub OpenAPI

Operations 13

GET /.well-known/oauth-authorization-server Discovery document for OAuth 2.0 configuration. #
GET /api/v1/capabilities Every block type, its fields and what each needs to publish — plus guidance on composing a page. #
GET /api/v1/catalog List the products and bookable units your blocks can reference. #
GET /api/v1/page Read your whole page: version, url, publishedAt, blocks, theme. #
PUT /api/v1/page Replace your whole page. #
GET /contacts Up to 3 recent contacts for that trigger, newest first, in the same shape a live one arrives in. #
GET /forms The forms on that page: [{ id, title }]. #
POST /hooks Switches a Zap on. #
DELETE /hooks/{id} Switches a Zap off. #
GET /me The signed-in person: { id, email }. #
GET /oauth/authorize Authorize endpoint for OAuth 2.0 authorization code flow with PKCE. #
POST /oauth/token Token endpoint for OAuth 2.0 (authorization_code and refresh_token grants). #
GET /pages The pages the person belongs to: [{ id, name, slug }]. #

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/keepp-link:keepp-link-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

keepp-link-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Keepp API
  version: '2026-11-13'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-13: 13 operation(s) read from 8 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Keepp has published no machine-readable contract that the pipeline
    could find. Engine: local.'
  x-evidence-tiers:
    code-example: 0
    documentation: 13
    pages-with-code: 0
    pages-read: 8
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-13'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://keepp.link/developers
  - https://dev.keepp.link/developers
  - https://keepp.link/developers/zapier
  - https://keepp.link/ai-website-builder
  - https://keepp.link/llms.txt
  - https://dev.keepp.link/ai-website-builder
  - https://dev.keepp.link/developers/zapier
  - https://dev.keepp.link/llms.txt
servers:
- url: https://api.keepp.link
paths:
  /.well-known/oauth-authorization-server:
    get:
      operationId: get_well_known_oauth_authorization_server
      tags:
      - API
      summary: Discovery document for OAuth 2.0 configuration.
      x-source: https://keepp.link/developers/zapier
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWellKnownOauthAuthorizationServerResponse'
      x-evidence:
        kind: documentation
  /api/v1/capabilities:
    get:
      operationId: get_api_v1_capabilities
      tags:
      - Api
      summary: Every block type, its fields and what each needs to publish — plus guidance on composing a page.
      x-source: https://keepp.link/developers
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1CapabilitiesResponse'
      x-evidence:
        kind: documentation
  /api/v1/catalog:
    get:
      operationId: get_api_v1_catalog
      tags:
      - Api
      summary: List the products and bookable units your blocks can reference.
      x-source: https://keepp.link/developers
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1CatalogResponse'
      x-evidence:
        kind: documentation
  /api/v1/page:
    get:
      operationId: get_api_v1_page
      tags:
      - Api
      summary: 'Read your whole page: version, url, publishedAt, blocks, theme.'
      x-source: https://keepp.link/developers
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1PageResponse'
      x-evidence:
        kind: documentation
    put:
      operationId: put_api_v1_page
      tags:
      - Api
      summary: Replace your whole page.
      x-source: https://keepp.link/developers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutApiV1PageRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutApiV1PageResponse'
      x-evidence:
        kind: documentation
  /contacts:
    get:
      operationId: get_contacts
      tags:
      - Contacts
      summary: Up to 3 recent contacts for that trigger, newest first, in the same shape a live one arrives in.
      x-source: https://keepp.link/developers/zapier
      parameters:
      - name: page
        in: query
        required: true
        schema:
          type: string
        description: Page id
      - name: event
        in: query
        required: true
        schema:
          type: string
        description: Trigger event (purchase|booking|form)
      - name: formId
        in: query
        required: false
        schema:
          type: string
        description: Form id (optional)
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetContactsResponse'
      x-evidence:
        kind: documentation
  /forms:
    get:
      operationId: get_forms
      tags:
      - Forms
      summary: 'The forms on that page: [{ id, title }].'
      x-source: https://keepp.link/developers/zapier
      parameters:
      - name: page
        in: query
        required: true
        schema:
          type: string
        description: Page id
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFormsResponse'
      x-evidence:
        kind: documentation
  /hooks:
    post:
      operationId: post_hooks
      tags:
      - Hooks
      summary: Switches a Zap on.
      x-source: https://keepp.link/developers/zapier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostHooksRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostHooksResponse'
      x-evidence:
        kind: documentation
  /hooks/{id}:
    delete:
      operationId: delete_hooks_id
      tags:
      - Hooks
      summary: Switches a Zap off.
      x-source: https://keepp.link/developers/zapier
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteHooksIdResponse'
      x-evidence:
        kind: documentation
  /me:
    get:
      operationId: get_me
      tags:
      - Me
      summary: 'The signed-in person: { id, email }.'
      x-source: https://keepp.link/developers/zapier
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetMeResponse'
      x-evidence:
        kind: documentation
  /oauth/authorize:
    get:
      operationId: get_oauth_authorize
      tags:
      - Oauth
      summary: Authorize endpoint for OAuth 2.0 authorization code flow with PKCE.
      x-source: https://keepp.link/developers/zapier
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /oauth/token:
    post:
      operationId: post_oauth_token
      tags:
      - Oauth
      summary: Token endpoint for OAuth 2.0 (authorization_code and refresh_token grants).
      x-source: https://keepp.link/developers/zapier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostOauthTokenRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostOauthTokenResponse'
      x-evidence:
        kind: documentation
  /pages:
    get:
      operationId: get_pages
      tags:
      - Pages
      summary: 'The pages the person belongs to: [{ id, name, slug }].'
      x-source: https://keepp.link/developers/zapier
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPagesResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    GetWellKnownOauthAuthorizationServerResponse:
      type: object
      properties:
        issuer:
          type: string
          description: Issuer URL
        authorization_endpoint:
          type: string
          description: Authorization endpoint URL
        token_endpoint:
          type: string
          description: Token endpoint URL
        scopes_supported:
          type: array
          description: Supported scopes
    GetApiV1CapabilitiesResponse:
      type: object
      properties:
        blockTypes:
          type: array
          description: list of block types with field definitions
    GetApiV1CatalogResponse:
      type: object
      properties:
        items:
          type: array
          description: product and booking unit references
    GetApiV1PageResponse:
      type: object
      properties:
        version:
          type: integer
        url:
          type: string
        publishedAt:
          type: string
        blocks:
          type: array
        theme:
          type: object
    PutApiV1PageRequest:
      type: object
      properties:
        version:
          type: integer
        theme:
          type: object
        blocks:
          type: array
      required:
      - version
      - blocks
    PutApiV1PageResponse:
      type: object
      properties:
        blockCount:
          type: object
          description: before and after counts
    GetContactsResponse:
      type: object
      properties:
        contacts:
          type: array
          description: List of contact objects (see contact schema in documentation)
    GetFormsResponse:
      type: object
      properties:
        forms:
          type: array
          description: List of forms
        id:
          type: string
          description: Form identifier
        title:
          type: string
          description: Form title
    PostHooksRequest:
      type: object
      properties:
        page:
          type: string
          description: Page identifier
        event:
          type: string
          description: Event type
        formId:
          type: string
          description: Form identifier
        targetUrl:
          type: string
          description: Zapier hook address (https://hooks.zapier.com/...)
      required:
      - page
      - event
      - targetUrl
    PostHooksResponse:
      type: object
      properties:
        id:
          type: string
          description: Hook identifier
    DeleteHooksIdResponse:
      type: object
      properties:
        id:
          type: string
          description: Hook identifier
        archived:
          type: boolean
          description: Always false for a Zap already switched off
    GetMeResponse:
      type: object
      properties:
        id:
          type: string
          description: Person identifier
        email:
          type: string
          description: Person email
    PostOauthTokenRequest:
      type: object
      properties:
        grant_type:
          type: string
          description: authorization_code or refresh_token
        code:
          type: string
          description: Authorization code (when grant_type=authorization_code)
        refresh_token:
          type: string
          description: Refresh token (when grant_type=refresh_token)
        code_verifier:
          type: string
          description: PKCE code verifier
        client_id:
          type: string
          description: keepp-zapier
        redirect_uri:
          type: string
          description: Redirect URI
      required:
      - grant_type
      - client_id
      - redirect_uri
    PostOauthTokenResponse:
      type: object
      properties:
        access_token:
          type: string
          description: Bearer token
        refresh_token:
          type: string
          description: Refresh token
        expires_in:
          type: integer
          description: Seconds until access token expires (1 hour)
    GetPagesResponse:
      type: object
      properties:
        pages:
          type: array
          description: List of pages
        id:
          type: string
          description: Page identifier
        name:
          type: string
          description: Page name
        slug:
          type: string
          description: Page slug
tags:
- name: API
- name: Api
- name: Contacts
- name: Forms
- name: Hooks
- name: Me
- name: Oauth
- name: Pages