---
title: "Public demo endpoint — no API key required, text only, 5k char limit"
method: POST
path: "/api/demo"
tags: ["Analyze"]
---

# Public demo endpoint — no API key required, text only, 5k char limit

`POST /api/demo`

No-auth demo endpoint used by the landing page. Text only, no URL fetching.

## Request body

- AnalyzeRequest
  - `text` string, nullable — Raw text or HTML content to analyze.
  - `url` string, nullable — URL to fetch and analyze.

## Response `200`

Successful Response

- AnalyzeResponse
  - `geo_score` integer, required
  - `word_count` integer, required
  - `reading_time_mins` number, required
  - `reading_grade_level` number, required
  - `flesch_reading_ease` number, required
  - `has_quick_answer` boolean, required
  - `has_faq_section` boolean, required
  - `has_data_tables` boolean, required
  - `has_sources_section` boolean, required
  - `has_numbered_lists` boolean, required
  - `has_bullet_lists` boolean, required
  - `heading_count` integer, required
  - `question_headings_count` integer, required
  - `question_headings_pct` number, required
  - `fixes` string[], required
  - `analyzed_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/geoscoreapi/apis/geoscore-api.md) · [All operations](https://skmtc.dev/geoscoreapi/apis/geoscore-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/geoscoreapi/geoscore-api/revisions/e4d0a712eff2/schema)
