Bool API

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

Operations 12

GET / GET / #
POST / POST / #
GET /_bool/v1/db/rest/v1/todos GET /_bool/v1/db/rest/v1/todos #
POST /api/drops Publish a new version #
GET /api/projects List your projects #
POST /api/projects Create a project #
GET /api/projects/{id} Get one project #
GET /api/projects/{id}/api-key Reveal or rotate the app’s data key #
POST /api/projects/{id}/api-key Reveal or rotate the app’s data key #
GET /api/projects/{id}/connection Get a project’s connection config #
GET /api/projects/{id}/entities/types Get generated TypeScript types #
POST /v1/things POST /v1/things #

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/bool-com:bool-com-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

bool-com-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Bool API
  version: '2026-11-02'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-02: 12 operation(s) read from 2 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Bool has published no machine-readable contract that the pipeline
    could find. Engine: local.'
  x-evidence-tiers:
    code-example: 4
    documentation: 8
    pages-with-code: 2
    pages-read: 2
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-02'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://bool.com/docs/api
  - https://bool.com/docs/sdk-reference
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://bool.com/docs/api
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -H \"Authorization: Bearer $BOOL_TOKEN \"  https : //bool.com/api/projects/$ID/api-key \n Keep it out of client-side code\
          \ and out of git. bool link writes it to\n .env.bool and gitignores that file for you. \n Publish a new version \n POST /api/drops \n\
          \ Body: { \"project_id\": \"<id>\" } (required — this endpoint deploys a new version\nof an existing project). It takes publish rights\
          \ on the target, and t"
    post:
      operationId: post
      tags:
      - Api
      summary: POST /
      x-source: https://bool.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRequest'
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST https : //bool.com/api/projects  -H \"Authorization: Bearer $BOOL_TOKEN \"  -H \"Content-Type: application/json\"\
          \  -d '{\"name\":\"my-todos\"}' \n Creating a project this way places it in your active workspace (the one\nselected in the web app),\
          \ not the token’s bound workspace. If which workspace\nit lands in matters, create it with bool create , the MCP drop_project tool,\n\
          or the web app instead"
  /_bool/v1/db/rest/v1/todos:
    get:
      operationId: get_bool_v1_db_rest_v1_todos
      tags:
      - Bool
      summary: GET /_bool/v1/db/rest/v1/todos
      x-source: https://bool.com/docs/api
      parameters:
      - name: select
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -H \"api_key: boolsk_...\"  \"https://my-todos.bool.so/_bool/v1/db/rest/v1/todos?select=*\" \n Open your project’s Dashboard\
          \ → API for the exact URLs, the field list for\nevery model, and copy-paste snippets — that tab is generated from your app’s\nactual\
          \ data models, so it’s always current. In app code, prefer the SDK\n( bool.entities.todos.list() ) over raw REST — the SDK\nreference\
          \ covers the whole"
  /api/drops:
    post:
      operationId: post_api_drops
      tags:
      - Api
      summary: Publish a new version
      x-source: https://bool.com/docs/api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiDropsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiDropsResponse'
      x-evidence:
        kind: documentation
  /api/projects:
    get:
      operationId: get_api_projects
      tags:
      - Api
      summary: List your projects
      x-source: https://bool.com/docs/api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiProjectsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_projects
      tags:
      - Api
      summary: Create a project
      x-source: https://bool.com/docs/api
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiProjectsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiProjectsResponse'
      x-evidence:
        kind: documentation
  /api/projects/{id}:
    get:
      operationId: get_api_projects_id
      tags:
      - Api
      summary: Get one project
      x-source: https://bool.com/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiProjectsIdResponse'
      x-evidence:
        kind: documentation
  /api/projects/{id}/api-key:
    get:
      operationId: get_api_projects_id_api_key
      tags:
      - Api
      summary: Reveal or rotate the app’s data key
      x-source: https://bool.com/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiProjectsIdApiKeyResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_api_projects_id_api_key
      tags:
      - Api
      summary: Reveal or rotate the app’s data key
      x-source: https://bool.com/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiProjectsIdApiKeyResponse'
      x-evidence:
        kind: documentation
  /api/projects/{id}/connection:
    get:
      operationId: get_api_projects_id_connection
      tags:
      - Api
      summary: Get a project’s connection config
      x-source: https://bool.com/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiProjectsIdConnectionResponse'
      x-evidence:
        kind: documentation
  /api/projects/{id}/entities/types:
    get:
      operationId: get_api_projects_id_entities_types
      tags:
      - Api
      summary: Get generated TypeScript types
      x-source: https://bool.com/docs/api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiProjectsIdEntitiesTypesResponse'
      x-evidence:
        kind: documentation
  /v1/things:
    post:
      operationId: post_v1_things
      tags:
      - Things
      summary: POST /v1/things
      x-source: https://bool.com/docs/sdk-reference
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: javascript
        snippet: "fetch ( \"https://api.example.com/v1/things\" , { \n method : \"POST\" , \n headers : { Authorization : \"Bearer {{EXAMPLE_API_KEY}}\"\
          \ } , \n body : JSON . stringify ({name})"
components:
  schemas:
    GetResponse:
      type: object
      properties:
        drop_id:
          type: string
        upload_url:
          type: string
        upload_method:
          type: string
        upload_headers:
          type: object
          properties:
            …:
              type: string
        status_url:
          type: string
        expires_at:
          type: string
          format: date-time
        max_upload_size_bytes:
          type: integer
    PostRequest:
      type: object
      properties:
        name:
          type: string
    PostResponse:
      type: object
      properties:
        error:
          type: string
    PostApiDropsRequest:
      type: object
      properties:
        project_id:
          type: string
          description: ID of the project to publish
      required:
      - project_id
    PostApiDropsResponse:
      type: object
      properties:
        drop_id:
          type: string
          description: Identifier of the upload slot
        upload_url:
          type: string
          description: Pre‑signed URL to upload the source ZIP
        upload_method:
          type: string
          description: HTTP method to use for upload (PUT)
        upload_headers:
          type: object
          description: Headers required for the upload request
        status_url:
          type: string
          description: URL to poll for deployment status
        expires_at:
          type: string
          description: Expiration timestamp of the upload slot
        max_upload_size_bytes:
          type: integer
          description: Maximum allowed upload size
    GetApiProjectsResponse:
      type: object
      properties:
        id:
          type: string
          description: Project identifier
        name:
          type: string
          description: Project name
        slug:
          type: string
          description: Project slug
        runtimeVersion:
          type: string
          description: Runtime version
        visibility:
          type: string
          description: Visibility
        timestamps:
          type: object
          description: Created/updated timestamps
    PostApiProjectsRequest:
      type: object
      properties:
        name:
          type: string
          description: Project name
        description:
          type: string
          description: Project description
        template:
          type: string
          description: Template to use
    PostApiProjectsResponse:
      type: object
      properties:
        id:
          type: string
          description: Project identifier
        name:
          type: string
          description: Project name
        slug:
          type: string
          description: Project slug
        runtimeVersion:
          type: string
          description: Runtime version
        visibility:
          type: string
          description: Visibility
        timestamps:
          type: object
          description: Created/updated timestamps
    GetApiProjectsIdResponse:
      type: object
      properties:
        id:
          type: string
          description: Project identifier
        name:
          type: string
          description: Project name
        slug:
          type: string
          description: Project slug
        runtimeVersion:
          type: string
          description: Runtime version
        visibility:
          type: string
          description: Visibility
        timestamps:
          type: object
          description: Created/updated timestamps
        files:
          type: array
          description: Array of files in the project, sorted by path
    GetApiProjectsIdApiKeyResponse:
      type: object
      properties:
        apiKey:
          type: string
          description: Project data key (boolsk_…)
    PostApiProjectsIdApiKeyResponse:
      type: object
      properties:
        apiKey:
          type: string
          description: Rotated project data key (boolsk_…)
    GetApiProjectsIdConnectionResponse:
      type: object
      properties:
        projectId:
          type: string
          description: Project identifier
        name:
          type: string
          description: Project name
        slug:
          type: string
          description: Project slug
        schema:
          type: string
          description: Schema identifier
        appOrigin:
          type: string
          description: App origin URL
        appUrl:
          type: string
          description: App URL
        gatewayUrl:
          type: string
          description: Gateway URL
        supabaseUrl:
          type: string
          description: Supabase URL
        supabaseAnonKey:
          type: string
          description: Supabase anon key
    GetApiProjectsIdEntitiesTypesResponse:
      type: object
      properties:
        body:
          type: string
          description: Plain‑text .d.ts file containing entity type definitions
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Bool
- name: Things