{
  "openapi": "3.1.0",
  "info": {
    "title": "PolarJay facts API",
    "version": "2026-10-09",
    "description": "Read-only facts about PolarJay, a product of POLARGATE S.L. (https://polargate.ai). Every fact here is also on the website. The same facts are served over the Model Context Protocol at https://polarjay.com/api/mcp.",
    "contact": {
      "name": "POLARGATE S.L.",
      "email": "hello@polargate.ai",
      "url": "https://polargate.ai"
    }
  },
  "servers": [
    {
      "url": "https://polarjay.com"
    }
  ],
  "paths": {
    "/api/facts.json": {
      "get": {
        "operationId": "getFacts",
        "summary": "Every published fact about PolarJay",
        "description": "Product, owner, scanner, trial, plans, key facts, questions and every page with its Markdown version, in Spanish and English. A field that is missing is not confirmed yet.",
        "responses": {
          "200": {
            "description": "The facts.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "schemaVersion",
                    "name",
                    "url",
                    "updated",
                    "description",
                    "owner",
                    "product",
                    "scan",
                    "query",
                    "realCase",
                    "keyFacts",
                    "faq",
                    "pages",
                    "llms",
                    "agents"
                  ],
                  "properties": {
                    "schemaVersion": {
                      "type": "string",
                      "description": "Changes when the shape changes, not the content."
                    },
                    "name": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "updated": {
                      "type": "string",
                      "format": "date"
                    },
                    "description": {
                      "type": "object",
                      "properties": {
                        "es": {
                          "type": "string"
                        },
                        "en": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "es",
                        "en"
                      ]
                    },
                    "slogan": {
                      "type": "object",
                      "properties": {
                        "es": {
                          "type": "string"
                        },
                        "en": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "es",
                        "en"
                      ]
                    },
                    "madeBy": {
                      "type": "object",
                      "properties": {
                        "es": {
                          "type": "string"
                        },
                        "en": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "es",
                        "en"
                      ]
                    },
                    "owner": {
                      "type": "object",
                      "description": "The company that owns and runs the product.",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "legalName": {
                          "type": "string"
                        },
                        "taxId": {
                          "type": "string"
                        },
                        "address": {
                          "type": "object",
                          "properties": {
                            "street": {
                              "type": "string"
                            },
                            "postalCode": {
                              "type": "string"
                            },
                            "locality": {
                              "type": "string"
                            },
                            "country": {
                              "type": "string"
                            }
                          }
                        },
                        "url": {
                          "type": "string",
                          "format": "uri"
                        },
                        "email": {
                          "type": "string",
                          "format": "email"
                        },
                        "registry": {
                          "type": [
                            "object",
                            "null"
                          ],
                          "description": "Commercial Registry details. Null until published."
                        }
                      }
                    },
                    "product": {
                      "type": "object",
                      "properties": {
                        "category": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "engines": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "languages": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "audience": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "does": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "en": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "doesNot": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "en": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "method": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            "en": {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        }
                      }
                    },
                    "scan": {
                      "type": "object",
                      "description": "The free scanner: no account, Claude only.",
                      "properties": {
                        "url": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "price": {
                          "type": "number"
                        },
                        "priceCurrency": {
                          "type": "string"
                        },
                        "account": {
                          "type": "boolean"
                        },
                        "checks": {
                          "type": "integer"
                        },
                        "questions": {
                          "type": "integer"
                        },
                        "engine": {
                          "type": "string"
                        },
                        "perDay": {
                          "type": "integer",
                          "description": "New scans a day per person."
                        },
                        "perDomainPerDay": {
                          "type": "integer",
                          "description": "New scans a day per domain; repeats return the saved result."
                        },
                        "resultRetentionHours": {
                          "type": "integer",
                          "description": "Hours a scan result is kept. The same figure as the privacy policy."
                        },
                        "ipRetentionHours": {
                          "type": "integer",
                          "description": "Hours the HMAC of the IP address is kept to apply the daily limit. The same figure as the privacy policy."
                        },
                        "what": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        }
                      }
                    },
                    "query": {
                      "type": "object",
                      "description": "The unit plans are measured in.",
                      "properties": {
                        "definition": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        }
                      }
                    },
                    "trial": {
                      "type": "object",
                      "description": "Present once the trial terms are published.",
                      "properties": {
                        "url": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "days": {
                          "type": "integer"
                        },
                        "card": {
                          "type": "boolean"
                        },
                        "engines": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "brands": {
                          "type": "integer"
                        },
                        "questions": {
                          "type": "integer"
                        },
                        "queries": {
                          "type": "integer"
                        }
                      }
                    },
                    "plans": {
                      "type": "array",
                      "description": "Monthly plans with a published price, in EUR excluding VAT. Present once prices are published.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "object",
                            "properties": {
                              "es": {
                                "type": "string"
                              },
                              "en": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "es",
                              "en"
                            ]
                          },
                          "price": {
                            "type": "number"
                          },
                          "priceCurrency": {
                            "type": "string"
                          },
                          "billing": {
                            "type": "string"
                          },
                          "vatIncluded": {
                            "type": "boolean"
                          },
                          "priceYearlyPerMonth": {
                            "type": "number"
                          },
                          "queriesPerMonth": {
                            "type": "integer"
                          },
                          "brands": {
                            "type": "integer"
                          },
                          "questions": {
                            "type": "integer"
                          },
                          "engines": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "includes": {
                            "type": "object",
                            "properties": {
                              "es": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "en": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "required": [
                              "es",
                              "en"
                            ]
                          },
                          "url": {
                            "type": "object",
                            "properties": {
                              "es": {
                                "type": "string"
                              },
                              "en": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "es",
                              "en"
                            ]
                          }
                        }
                      }
                    },
                    "customPlan": {
                      "type": [
                        "object",
                        "null"
                      ]
                    },
                    "annualDiscountPct": {
                      "type": "number"
                    },
                    "topups": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "queries": {
                            "type": "integer"
                          },
                          "price": {
                            "type": "number"
                          },
                          "priceCurrency": {
                            "type": "string"
                          },
                          "vatIncluded": {
                            "type": "boolean"
                          }
                        }
                      }
                    },
                    "doneForYou": {
                      "type": "object",
                      "properties": {
                        "priceFrom": {
                          "type": "number"
                        },
                        "priceCurrency": {
                          "type": "string"
                        },
                        "vatIncluded": {
                          "type": "boolean"
                        },
                        "oneOff": {
                          "type": "boolean"
                        },
                        "contact": {
                          "type": "string"
                        }
                      }
                    },
                    "realCase": {
                      "type": "object",
                      "description": "The one real measurement that can be shared, anonymised.",
                      "properties": {
                        "date": {
                          "type": "string",
                          "format": "date"
                        },
                        "who": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "engine": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        },
                        "questions": {
                          "type": "integer"
                        },
                        "appeared": {
                          "type": "integer"
                        },
                        "note": {
                          "type": "object",
                          "properties": {
                            "es": {
                              "type": "string"
                            },
                            "en": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "es",
                            "en"
                          ]
                        }
                      }
                    },
                    "keyFacts": {
                      "type": "object",
                      "properties": {
                        "es": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "en": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "es",
                        "en"
                      ]
                    },
                    "faq": {
                      "type": "object",
                      "properties": {
                        "es": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "q": {
                                "type": "string"
                              },
                              "a": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "en": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "q": {
                                "type": "string"
                              },
                              "a": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      },
                      "required": [
                        "es",
                        "en"
                      ]
                    },
                    "pages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "object",
                            "properties": {
                              "es": {
                                "type": "string"
                              },
                              "en": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "es",
                              "en"
                            ]
                          },
                          "summary": {
                            "type": "object",
                            "properties": {
                              "es": {
                                "type": "string"
                              },
                              "en": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "es",
                              "en"
                            ]
                          },
                          "url": {
                            "type": "object",
                            "properties": {
                              "es": {
                                "type": "string"
                              },
                              "en": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "es",
                              "en"
                            ]
                          },
                          "markdown": {
                            "type": "object",
                            "properties": {
                              "es": {
                                "type": "string"
                              },
                              "en": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "es",
                              "en"
                            ]
                          },
                          "updated": {
                            "type": "string",
                            "format": "date"
                          }
                        }
                      }
                    },
                    "llms": {
                      "type": "object",
                      "properties": {
                        "es": {
                          "type": "object",
                          "properties": {
                            "index": {
                              "type": "string"
                            },
                            "full": {
                              "type": "string"
                            }
                          }
                        },
                        "en": {
                          "type": "object",
                          "properties": {
                            "index": {
                              "type": "string"
                            },
                            "full": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "required": [
                        "es",
                        "en"
                      ]
                    },
                    "agents": {
                      "type": "object",
                      "properties": {
                        "facts": {
                          "type": "string"
                        },
                        "openapi": {
                          "type": "string"
                        },
                        "mcp": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/mcp": {
      "get": {
        "operationId": "describeMcp",
        "summary": "Describe the MCP server",
        "description": "A readable description of the read-only MCP server and its tools.",
        "responses": {
          "200": {
            "description": "The description.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "callMcp",
        "summary": "Model Context Protocol (JSON-RPC 2.0)",
        "description": "Streamable HTTP without streaming. Methods: initialize, ping, tools/list, tools/call. Read-only tools: get_product, get_pricing, list_faq, get_page, how_to_start.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": [
                  "object",
                  "array"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON-RPC response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": [
                    "object",
                    "array"
                  ]
                }
              }
            }
          },
          "202": {
            "description": "Only notifications were sent."
          }
        }
      }
    },
    "/api/scan": {
      "post": {
        "operationId": "scanSite",
        "summary": "Free scan: does Claude recommend this company?",
        "description": "Reads the home page of a public website the way AI crawlers do, writes three buyer questions that do not name the company and asks them to Claude with web search. Only Claude runs in the free scan. Answers stream as NDJSON, one event per line: start, readability, questions, one answer per question, summary, done. Limited per IP, per site and per day; a site scanned in the last 24 hours returns the cached result.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "additionalProperties": false,
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 300,
                    "description": "Public domain or URL. Only the home page of its host is scanned."
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "es",
                      "en"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "NDJSON stream of scan events.",
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "type": "object",
                  "required": [
                    "type"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid body or URL."
          },
          "409": {
            "description": "This site is being scanned right now; retryAfter says when to try again."
          },
          "429": {
            "description": "A rate limit or the daily cap was reached."
          },
          "503": {
            "description": "The scanner is off or not available."
          }
        }
      }
    },
    "/api/trial": {
      "post": {
        "operationId": "requestTrial",
        "summary": "Request the free 7-day trial",
        "description": "Sends a trial request to POLARGATE S.L. (hello@polargate.ai). Every request is reviewed and access arrives by email. consent must be the boolean true after reading the privacy policy.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "email",
                  "company",
                  "url",
                  "plan",
                  "consent"
                ],
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 80
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  },
                  "company": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 120
                  },
                  "url": {
                    "type": "string",
                    "maxLength": 300
                  },
                  "plan": {
                    "type": "string",
                    "enum": [
                      "start",
                      "pro",
                      "agencia"
                    ]
                  },
                  "consent": {
                    "type": "boolean",
                    "const": true
                  },
                  "locale": {
                    "type": "string",
                    "enum": [
                      "es",
                      "en"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Request received.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "A field is missing or invalid; error names it."
          },
          "429": {
            "description": "Too many requests from this connection."
          },
          "502": {
            "description": "The request could not be delivered."
          }
        }
      }
    }
  }
}
