---
title: "Text Analysis & Scoring API"
slug: text-analysis-scoring
url: https://apyhub.com/skycraft/service/text-analysis-scoring
provider: Skycraft
auth: api_key
version: v1
service_type: sync
endpoints: 2
atoms: 20
mcp: true
---

# Text Analysis & Scoring API

Score text readability with Flesch, Fog, SMOG and more, plus style, skimmability and interestingness scores, word and sentence counts. JSON REST API.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| GET | `https://api.eu.apyhub.com/skycraft/text-analysis-scoring/score-readability` | What it does Scores the readability of the provided text and returns a JSON object containing a rea… | 20 |
| GET | `https://api.eu.apyhub.com/skycraft/text-analysis-scoring/score-text` | What it does Scores a piece of text by evaluating the supplied title and text query parameters and… | 20 |

## Endpoint reference

### Score Readability API

`GET https://api.eu.apyhub.com/skycraft/text-analysis-scoring/score-readability` · 20 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `text` | query | string | yes | Example: `A rather complex text, hard to read, and highly convoluted using acronym TERMS.`. |

#### Quickstart

Check the readability score for a piece of text by passing it as a query parameter.

```bash
curl -X GET "https://api.eu.apyhub.com/skycraft/text-analysis-scoring/score-readability?text=A%20rather%20complex%20text%2C%20hard%20to%20read%2C%20and%20highly%20convoluted%20using%20acronym%20TERMS." \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with a `readability` object. Inside it, `subscores` contains numeric readability metrics such as `ari`, `fog`, `lix`, `smog`, `flesch`, `forcast`, `kincaid`, `coleman_liau`, and `reading_time_seconds`, and `mainscores` contains `total` and `total_possible` integers.

```json
{
  "readability": {
    "subscores": {
      "ari": 0,
      "fog": 0,
      "lix": 0,
      "smog": 0,
      "flesch": 0,
      "forcast": 0,
      "kincaid": 0,
      "coleman_liau": 0,
      "reading_time_seconds": 0
    },
    "mainscores": {
      "total": 0,
      "total_possible": 0
    }
  }
}
```

### Score Text API

`GET https://api.eu.apyhub.com/skycraft/text-analysis-scoring/score-text` · 20 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `text` | query | string | yes | Example: `A nice short story to be analyzed`. |
| `title` | query | string | yes | Example: `A short story`. |

#### Quickstart

Score a text by passing its `title` and `text` as query parameters.

```bash
curl -X GET "https://api.eu.apyhub.com/skycraft/text-analysis-scoring/score-text?title=A%20short%20story&text=A%20nice%20short%20story%20to%20be%20analyzed" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with score breakdowns for `style`, `readability`, `skimmability`, and `interestingness`, plus `total_score`, `number_of_words`, and `number_of_sentences`.

- `style`, `readability`, `skimmability`, and `interestingness` are objects with `subscores` and `mainscores`.
- `total_score` is a number.
- `number_of_words` and `number_of_sentences` are integers.

```json
{
  "number_of_words": 7,
  "number_of_sentences": 1,
  "readability": {
    "mainscores": { "total": 10.0, "total_possible": 10 },
    "subscores": { "forcast": -1.0, "flesch": 78.873, "smog": 8.842, "ari": 0.237, "lix": -1.0, "kincaid": 3.997, "fog": 8.514, "coleman_liau": 2.633, "reading_time_seconds": 1 }
  },
  "skimmability": {
    "mainscores": { "total": 3.08, "total_possible": 10 },
    "subscores": { "highlighted_word_ratio_score": [0, 2], "bullet_point_ratio_score": [0, 2], "paragraph_headline_ratio_score": [0, 2], "image_score": [0, 3], "video_score": [0, 1], "paragraph_score": [4, 3] }
  },
  "interestingness": {
    "mainscores": { "total": 3.57, "total_possible": 10 },
    "subscores": { "google_hits_score": [4, 4], "link_score": [0, 2], "quote_score": [0, 1], "title_rating_score": [1, 4], "length_score": [0, 2] }
  },
  "style": {
    "mainscores": { "total": 10.0, "total_possible": 10 },
    "subscores": { "abbreviation_score": [3, 3], "style_score": [5, 5], "spelling_score": [5, 5] }
  },
  "total_score": 6.66
}
```

## About

## What it does
Text Analysis & Scoring API grades how readable and engaging a piece of writing is. Send text (and optionally its title) as query parameters and get back JSON with standard readability metrics, sub-scores, and overall totals.

`Score Readability` takes `text` and returns a `readability` object with subscores from established formulas (Flesch, Flesch-Kincaid, Gunning Fog, SMOG, ARI, Coleman-Liau, LIX, FORCAST), an estimated `reading_time_seconds`, and a `mainscores` total out of a possible maximum. `Score Text` takes both `title` and `text` and returns broader breakdowns for `readability`, `style`, `skimmability`, and `interestingness`, plus a `total_score`, `number_of_words`, and `number_of_sentences`.

Text Analysis & Scoring API is a good fit when you need to check content quality in an editorial workflow, enforce a reading-level target for help docs or marketing copy, or compare drafts with a consistent, deterministic score.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/skycraft/service/text-analysis-scoring
