Jabbertoon Validate API
The Validate API from Jabbertoon — 1 operation(s) for validate.
The Validate API from Jabbertoon — 1 operation(s) for validate.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/jabbertoon-com:jabbertoon-com-validate-api"
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.
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: 3.2.0
info:
title: Jabbertoon tools for AI assistants and developers Validate…
version: '1'
summary: Read Jabbertoon's guide, moves, characters and looks, check a cartoon, a move or a character you write, and make a jabbertoon.com link that opens a move or a character, or the cartoon in the studio.
description: 'The same tools as Jabbertoon''s MCP server (https://jabbertoon.com/mcp), over plain HTTP. No key and no account. GET answers the read tools whose arguments are plain values; POST a JSON object of arguments to any tool. Nothing sent to validate or share_link is stored or logged; report_problem keeps its report for a person to read. Errors are {code, where, says, fix, url}, with did_you_mean and an RFC 6902 patch when the fix is certain. Making the video is done on your own computer, by the jabbertoon tool (preview, render_video). The block language: https://jabbertoon.com/docs/language/'
contact:
name: Jabbertoon
email: hello@jabbertoon.com
url: https://jabbertoon.com/for-ai/
license:
name: Proprietary, 1211 Holding LLC
url: https://jabbertoon.com/license/
servers:
- url: https://jabbertoon.com
security: []
tags:
- name: Validate
paths:
/api/validate:
post:
operationId: validate
summary: Check a Jabbertoon cartoon, scene, move, pack or character
description: 'Checks a cartoon, with the editor''s own checks, before anyone sees it. Give one of cartoon, program, pack, character or file. Returns errors (it will not play as written: also a character or background the site lacks) and warnings, each {code, where, says, fix, url}, with did_you_mean and an RFC 6902 patch when certain; issues a viewer would see (off stage, overlapping, an empty stage, a line cut off) with a summary of who is where and says what when (seconds; x as a share of the stage); and, when ok, the canonical program and a link. repair: true also returns the program with every certain patch applied. A written scene is played and read out (written_scene; playing: call again), kept until played, its answer an hour; nothing else is kept. Example: list_characters'' cartoon_example.'
security: []
responses:
'200':
description: What validate answers. ok is false when what you sent has problems; they are listed with where, says and fix.
content:
application/json:
schema:
type: object
required:
- ok
- url
properties:
ok:
type: boolean
description: True when there are no errors.
url:
type: string
description: The page that describes this format.
checked:
type: string
description: 'What was checked: program, character, pack or cartoon.'
kind:
type:
- string
- 'null'
description: The program's kind (behaviour, scene, cartoon), character, or the pack's type.
errors:
type: array
items:
$ref: '#/components/schemas/Problem'
description: 'The errors, in order: the first 50 at most (error_count says how many there are).'
error_count:
type: integer
description: How many errors the checks found.
warnings:
type: array
items:
$ref: '#/components/schemas/Problem'
description: 'The warnings, in order: the first 50 at most (warning_count says how many there are).'
warning_count:
type: integer
description: How many warnings the checks found.
summary:
type:
- object
- 'null'
description: 'What the cartoon shows: its length, its cast, and per scene who is where, who says what when and the captions (seconds; x as a share of the stage).'
issues:
type: array
description: 'What a viewer would see go wrong, in time order: {code, at_s, who, says, fix, url}.'
checks_run:
type: array
description: 'Each check of issues: full, approximate (and why) or not_run (and why).'
play_check:
type:
- object
- 'null'
description: 'On your own computer: the cartoon played as a video would (ok, ran_s, cut, errors). Online: null.'
text:
type:
- string
- 'null'
description: The program as screenplay text (on your own computer; null online, and text_reason says why).
text_reason:
type: string
program:
type:
- object
- 'null'
description: The program that was checked, as canonical JSON (a cartoon file's cast and places merged in).
link:
type:
- string
- 'null'
description: 'When ok: a jabbertoon.com link that opens it (share_link gives the same).'
written_scene:
type: object
description: 'An editor cartoon''s written scene: status played (ok, refused, seconds, lines, shots, notes, nearest, read at at_s), playing or busy (retry_after_s), or not_here; says what to do.'
repaired:
type: object
description: 'With repair: true: {program, text (when the cartoon was sent as screenplay text, on the local door: the repaired program written as text), changes: [{code, where, from, to}], ok, error_count, warning_count}.'
engine:
$ref: '#/components/schemas/Engine'
notes:
type: array
items:
type: string
error:
$ref: '#/components/schemas/Problem'
4XX:
$ref: '#/components/responses/Problem'
5XX:
$ref: '#/components/responses/Problem'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
cartoon:
type:
- object
- string
description: 'A cartoon: its program, a cartoon file {cast, program}, a project file, or its screenplay text (read only on your own computer).'
program:
type: object
description: A move (get_move gives ready-made ones) or a scene program.
pack:
type: object
description: 'A whole pack: its manifest and its content.'
character:
type: object
description: Your own character, {"name", "content"}, or a character pack.
file:
type: string
maxLength: 255
description: 'On your own computer only: a .json or .txt file''s name in the output folder.'
repair:
type: boolean
description: 'true: also return repaired: the program with every certain patch applied, and the changes.'
at_s:
type: array
items:
type: number
minimum: 0
maxItems: 3
description: A written scene's moments to read out, seconds.
minProperties: 1
additionalProperties: false
example:
cartoon:
cast:
dog:
name: Biscuit
designed:
kind: animal3d
preset: dog
cat:
name: Mia
designed:
kind: person3d
who: ria
at:
x: 0.7
facing: -1
program:
v: 1
kind: cartoon
name: Hello, Mia
scripts:
- hat:
'on': scene
name: Hello
body:
- op: enter
who: dog
from: left
x: 0.3
- op: does
who: dog
behaviour: c4c:beh:wave_hello
- op: say
who: dog
text: Hi, Mia! Do you want to play?
- op: does
who: cat
behaviour: c4c:beh:bounce
- op: say
who: cat
text: Yes, please!
mood: happy
tags:
- Validate
components:
schemas:
Problem:
type: object
required:
- code
- where
- says
- fix
properties:
code:
type: string
where:
type:
- string
- 'null'
says:
type: string
fix:
type:
- string
- 'null'
url:
type: string
description: The code's entry on https://jabbertoon.com/docs/errors/.
did_you_mean:
type: array
items:
type: string
patch:
type: array
items:
type: object
description: RFC 6902 operations on what you sent that make the fix, given only when the fix is certain.
Engine:
type: object
properties:
version:
type: string
description: The block language's version.
git:
type: string
description: The git tree id of the engine that answered (the same on every door).
responses:
Problem:
description: 'A request the server cannot use (400 bad_arguments, 404 not_found, 405, 413 too_large, 415, 503 busy or timeout: try again after Retry-After).'
content:
application/json:
schema:
type: object
required:
- ok
- url
- error
properties:
ok:
const: false
url:
type: string
error:
$ref: '#/components/schemas/Problem'
externalDocs:
description: 'Developers: quickstart in curl, Python and JavaScript'
url: https://jabbertoon.com/developers/
x-mcp:
url: https://jabbertoon.com/mcp
transport: streamable-http