API Documentation | ChatRPG (1.0.0)

Download OpenAPI specification:

API fro ChatRPG

User

Create

New user registration

Request Body schema: application/json
name
required
string

Name of new user

email
required
string <email>

Email address of new user

password
required
string

Password for user

confirm_password
required
string

Confirmation password

url
string <url>

User validation. Create hidden input, empty by default. Fails if it is anything other than an empty string.

Responses

Request samples

Content type
application/json
{
  • "name": "John Smith",
  • "email": "john.smith@mail.com",
  • "password": "password123",
  • "confirm_password": "password123",
  • "url": ""
}

Response samples

Content type
applicaton/json
{
  • "success": true
}

Get One

Retrieve the user data for a user

Authorizations:
UserAuth

Responses

Response samples

Content type
application/json
{
  • "id": "019e5a61-2977-773c-aeb4-d9be192ec0c4",
  • "name": "John Smith",
  • "email": "john.smith@mail.com"
}

Login

User login

Request Body schema: application/json
email
required
string <email>

User email

password
required
string <password>

User password

Responses

Request samples

Content type
application/json
{
  • "email": "john.smith@mail.com",
  • "password": "password123"
}

Response samples

Content type
application/json
{
  • "success": true
}

Log out

User log out

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Payment Intent

Create the Stripe payment intent for the user

Authorizations:
UserAuth
Request Body schema: application/json
token_packs
required
number >= 5

Number of token packs for the user to purchase

Responses

Request samples

Content type
application/json
{
  • "token_packs": 8
}

Response samples

Content type
application/json
{
  • "client-secret": "pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH"
}

Game

Get Many

Retrieve a list of games for the logged in user

Authorizations:
UserAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create

Create a new game

Authorizations:
UserAuth
Request Body schema: application/json
title
required
string

Title for the game

game_context
required
string

Any information/context that the user wants to provide for the running of the overall game.

Responses

Request samples

Content type
application/json
{
  • "title": "Demon Barber of Fleet Street",
  • "game_context": "Lorem Ipsum, etc..."
}

Response samples

Content type
application/json
{
  • "id": "019eb747-4371-7230-b3f0-53550cd253c6",
  • "title": "Demon Barber of Fleet Street",
  • "world_context": "Lorem Ipsum, etc...",
  • "created_at": "2026-06-11T15:26:34.176Z"
}

Get One

Retrieve all necessary data for a single game

Authorizations:
UserAuth
path Parameters
game_id
required
string <uuid>
Example: 019ec246-dd08-7e1b-ba4e-e941d8ba2206

Game ID

Responses

Response samples

Content type
application/json
{
  • "game": {
    },
  • "character": {
    },
  • "sessions": [
    ],
  • "turns": [
    ],
  • "tokens_remaining": 873042
}

Character

Create

Create playable character for a game

Authorizations:
UserAuth
path Parameters
game_id
required
string <uuid>
Example: 019eb861-4cca-7721-8eb6-524f9edc6d17

Game ID

Request Body schema: application/json
name
required
string

User chosen name of the character

description
required
string

User provided details/description of their character

Responses

Request samples

Content type
application/json
{
  • "name": "Sweeney Todd",
  • "description": "Lorem Ipsum, etc..."
}

Response samples

Content type
application/json
{
  • "id": "019eb74c-632b-7c1e-87bc-bac42335d85a",
  • "game_id": "019eb74e-00ce-76ca-a88e-6ffaa8062b26",
  • "name": "Sweeney Todd",
  • "description": "Lorem Ipsum, etc..."
}

Session

Create

Create a new session. Will also be the first turn to set the scene.

Authorizations:
UserAuth
path Parameters
game_id
required
string <uuid>
Example: 019eb91d-9820-7624-b22b-4e2423b1942b

Game ID

Responses

Response samples

Content type
application/json
{
  • "id": "019eb74f-c5c3-771c-b3ce-399a9ffeafe0",
  • "game_id": "cbc7d94e-12fe-4773-b095-43ce28d601d4",
  • "summary": "Lorem Ipsum, etc...",
  • "started_at": "2026-06-11T15:42:12.281Z",
  • "ended_at": "2026-06-11T15:42:50.417Z"
}

Turn

Create

Create a new turn

Authorizations:
UserAuth
path Parameters
game_id
required
string <uuid>
Example: 019ec14f-c42c-7ad2-a0fb-37f712eba704

Game ID

session_id
required
string <uuid>
Example: 019ec150-72ef-7f9e-b164-6dbbcc045e29

Session ID

Request Body schema: application/json
content
required
string

User response and instructions for the turn

Responses

Request samples

Content type
application/json
{
  • "content": "Pull out my sword and swing at the enemy"
}

Response samples

Content type
application/json
{
  • "turn": {
    },
  • "tokens_remaining": 997364
}