{
  "openapi": "3.1.0",
  "info": {
    "title": "Paperclip website API",
    "version": "1.0.0",
    "summary": "Public HTTP surface of paperclip.ing",
    "description": "Machine-readable endpoints of the Paperclip marketing site. Paperclip itself is a self-hosted platform; its runtime API is documented at https://docs.paperclip.ing/reference/api/overview. Start with GET /llms.txt for a plain-markdown overview, or connect to the MCP endpoint at POST /mcp.",
    "contact": {
      "name": "Paperclip",
      "url": "https://paperclip.ing/"
    },
    "license": {
      "name": "MIT",
      "identifier": "MIT"
    }
  },
  "servers": [
    {
      "url": "https://paperclip.ing"
    }
  ],
  "paths": {
    "/product/connectors.md": {
      "get": {
        "summary": "Paperclip connectors",
        "responses": {
          "200": {
            "description": "The connectors catalog.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/airtable.md": {
      "get": {
        "summary": "airtable connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/anthropic.md": {
      "get": {
        "summary": "anthropic connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/arcade.md": {
      "get": {
        "summary": "arcade connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/asana.md": {
      "get": {
        "summary": "asana connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/box.md": {
      "get": {
        "summary": "box connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/clickhouse.md": {
      "get": {
        "summary": "clickhouse connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/cloudflare.md": {
      "get": {
        "summary": "cloudflare connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/cloudinary.md": {
      "get": {
        "summary": "cloudinary connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/composio.md": {
      "get": {
        "summary": "composio connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/executor.md": {
      "get": {
        "summary": "executor connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/fireflies.md": {
      "get": {
        "summary": "fireflies connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/github.md": {
      "get": {
        "summary": "github connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/gmail.md": {
      "get": {
        "summary": "gmail connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-calendar.md": {
      "get": {
        "summary": "google-calendar connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-chat.md": {
      "get": {
        "summary": "google-chat connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-docs.md": {
      "get": {
        "summary": "google-docs connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-drive.md": {
      "get": {
        "summary": "google-drive connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-people.md": {
      "get": {
        "summary": "google-people connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-sheets.md": {
      "get": {
        "summary": "google-sheets connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-slides.md": {
      "get": {
        "summary": "google-slides connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/google-workspace-search.md": {
      "get": {
        "summary": "google-workspace-search connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/hugging-face.md": {
      "get": {
        "summary": "hugging-face connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/jira.md": {
      "get": {
        "summary": "jira connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/linear.md": {
      "get": {
        "summary": "linear connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/miro.md": {
      "get": {
        "summary": "miro connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/mixpanel.md": {
      "get": {
        "summary": "mixpanel connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/netlify.md": {
      "get": {
        "summary": "netlify connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/notion.md": {
      "get": {
        "summary": "notion connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/openai.md": {
      "get": {
        "summary": "openai connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/openrouter.md": {
      "get": {
        "summary": "openrouter connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/pagerduty.md": {
      "get": {
        "summary": "pagerduty connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/posthog.md": {
      "get": {
        "summary": "posthog connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/postman.md": {
      "get": {
        "summary": "postman connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/railway.md": {
      "get": {
        "summary": "railway connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/resend.md": {
      "get": {
        "summary": "resend connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/sentry.md": {
      "get": {
        "summary": "sentry connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/shopify.md": {
      "get": {
        "summary": "shopify connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/slack.md": {
      "get": {
        "summary": "slack connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/stripe.md": {
      "get": {
        "summary": "stripe connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/supabase.md": {
      "get": {
        "summary": "supabase connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/todoist.md": {
      "get": {
        "summary": "todoist connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/webflow.md": {
      "get": {
        "summary": "webflow connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/wix.md": {
      "get": {
        "summary": "wix connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/xai.md": {
      "get": {
        "summary": "xai connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/youcom.md": {
      "get": {
        "summary": "youcom connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/product/connectors/zapier.md": {
      "get": {
        "summary": "zapier connector",
        "responses": {
          "200": {
            "description": "Connector overview, setup and scoped tool list.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/api/waitlist/": {
      "post": {
        "operationId": "joinWaitlist",
        "summary": "Join the Paperclip waitlist",
        "description": "Adds an email address to the waitlist. No authentication required.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 320
                  },
                  "audience": {
                    "type": "string",
                    "description": "Which audience best describes the signup."
                  },
                  "delegatedWorkTypes": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Kinds of work the signup wants to delegate to agents."
                  },
                  "delegatedWorkOther": {
                    "type": "string"
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "connector_page",
                      "connectors_hub"
                    ],
                    "description": "Optional latest signup attribution. Omit both attribution fields for legacy callers."
                  },
                  "connector": {
                    "type": "string",
                    "maxLength": 100,
                    "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*(?![\\s\\S])",
                    "description": "Required with connector_page; must be omitted with connectors_hub."
                  }
                },
                "dependentRequired": {
                  "connector": [
                    "source"
                  ]
                },
                "allOf": [
                  {
                    "if": {
                      "required": [
                        "source"
                      ],
                      "properties": {
                        "source": {
                          "const": "connector_page"
                        }
                      }
                    },
                    "then": {
                      "required": [
                        "connector"
                      ]
                    }
                  },
                  {
                    "if": {
                      "required": [
                        "source"
                      ],
                      "properties": {
                        "source": {
                          "const": "connectors_hub"
                        }
                      }
                    },
                    "then": {
                      "not": {
                        "required": [
                          "connector"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Signup accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok"
                  ],
                  "properties": {
                    "ok": {
                      "type": "boolean",
                      "const": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "405": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/mcp": {
      "post": {
        "operationId": "mcp",
        "summary": "Model Context Protocol endpoint",
        "description": "Stateless MCP server (Streamable HTTP transport, JSON responses). Send one JSON-RPC 2.0 message per POST. Advertises the resources capability; resources/list returns the site’s machine-readable documents (llms.txt, auth.md, openapi.json, agent skills, sitemap). Spec: https://modelcontextprotocol.io/specification/2025-06-18",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "A JSON-RPC 2.0 request, notification, or batch.",
                "required": [
                  "jsonrpc",
                  "method"
                ],
                "properties": {
                  "jsonrpc": {
                    "type": "string",
                    "const": "2.0"
                  },
                  "id": {
                    "type": [
                      "string",
                      "number",
                      "null"
                    ]
                  },
                  "method": {
                    "type": "string",
                    "examples": [
                      "initialize",
                      "resources/list",
                      "resources/read",
                      "ping"
                    ]
                  },
                  "params": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON-RPC response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Notification accepted (no body)."
          },
          "400": {
            "description": "Malformed JSON or invalid JSON-RPC request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "operationId": "getOpenApiSpec",
        "summary": "This OpenAPI specification",
        "responses": {
          "200": {
            "description": "OpenAPI 3.1 document.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/llms.txt": {
      "get": {
        "operationId": "getLlmsOverview",
        "summary": "Markdown overview of Paperclip for LLMs",
        "responses": {
          "200": {
            "description": "llms.txt document.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/auth.md": {
      "get": {
        "operationId": "getAuthGuidance",
        "summary": "Authentication guidance for agents",
        "responses": {
          "200": {
            "description": "Markdown authentication guidance.",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "operationId": "getSitemap",
        "summary": "XML sitemap of every indexable page",
        "responses": {
          "200": {
            "description": "Sitemap XML.",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/api-catalog": {
      "get": {
        "operationId": "getApiCatalog",
        "summary": "RFC 9727 API catalog (linkset)",
        "responses": {
          "200": {
            "description": "Linkset of API documentation resources.",
            "content": {
              "application/linkset+json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/.well-known/agent-skills/index.json": {
      "get": {
        "operationId": "getAgentSkills",
        "summary": "Agent skills discovery index",
        "responses": {
          "200": {
            "description": "Agent skills available on this site.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "description": "Structured error response returned by every site API endpoint.",
        "required": [
          "ok",
          "error",
          "code"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "const": false
          },
          "error": {
            "type": "string",
            "description": "Human-readable error message."
          },
          "code": {
            "type": "string",
            "description": "Stable machine-readable error code.",
            "examples": [
              "invalid_request",
              "invalid_email",
              "not_found",
              "method_not_allowed",
              "upstream_error",
              "unavailable"
            ]
          },
          "hint": {
            "type": "string",
            "description": "How to resolve the error."
          }
        }
      }
    },
    "responses": {
      "Error": {
        "description": "Structured JSON error with a machine-readable code and a resolution hint.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  }
}