Narrative
GET/api/v1/narrative/universes
Authorization
bearer_token In: header
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Full-text search over this list's searchable fields.
1 <= length <= 200Comma-separated sort keys, - for descending, at most 1. Keys: name, created_at. Default: -created_at.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Include each universe's story, actor, and session counts
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes
Authorization
bearer_token In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "created_at": "2019-08-24T14:15:22Z", "description": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "settings": { "allow_session_creation": true, "allow_story_creation": true, "max_concurrent_sessions": 0, "max_stories": 0 }, "stats": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}GET/api/v1/narrative/universes/{universe_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string"{ "created_at": "2019-08-24T14:15:22Z", "description": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "settings": { "allow_session_creation": true, "allow_story_creation": true, "max_concurrent_sessions": 0, "max_stories": 0 }, "stats": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}PATCH/api/v1/narrative/universes/{universe_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string" \ -H "Content-Type: application/json" \ -d '{}'{ "created_at": "2019-08-24T14:15:22Z", "description": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "settings": { "allow_session_creation": true, "allow_story_creation": true, "max_concurrent_sessions": 0, "max_stories": 0 }, "stats": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}DELETE/api/v1/narrative/universes/{universe_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string"GET/api/v1/narrative/universes/{universe_id}/actor-templates
Authorization
bearer_token In: header
Path Parameters
Universe ID
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Full-text search over this list's searchable fields.
1 <= length <= 200Comma-separated sort keys, - for descending, at most 1. Keys: name, version, updated_at, created_at. Default: -created_at.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/actor-templates"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes/{universe_id}/actor-templates
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/actor-templates" \ -H "Content-Type: application/json" \ -d '{ "actor_type": "character", "name": "string" }'{ "actor_type": "character", "color": "string", "created_at": "2019-08-24T14:15:22Z", "default_attribute_ids": [ "string" ], "default_properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "description": "string", "image_name": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "publish_state": "draft", "tags": [ "string" ], "template_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}GET/api/v1/narrative/universes/{universe_id}/actor-templates/{template_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Template ID
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/actor-templates/string"{ "actor_type": "character", "color": "string", "created_at": "2019-08-24T14:15:22Z", "default_attribute_ids": [ "string" ], "default_properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "description": "string", "image_name": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "publish_state": "draft", "tags": [ "string" ], "template_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}PATCH/api/v1/narrative/universes/{universe_id}/actor-templates/{template_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Template ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/actor-templates/string" \ -H "Content-Type: application/json" \ -d '{}'{ "actor_type": "character", "color": "string", "created_at": "2019-08-24T14:15:22Z", "default_attribute_ids": [ "string" ], "default_properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "description": "string", "image_name": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "publish_state": "draft", "tags": [ "string" ], "template_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}DELETE/api/v1/narrative/universes/{universe_id}/actor-templates/{template_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Template ID
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/actor-templates/string"GET/api/v1/narrative/universes/{universe_id}/actors
Authorization
bearer_token In: header
Path Parameters
Universe ID
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Full-text search over this list's searchable fields.
1 <= length <= 200Comma-separated sort keys, - for descending, at most 1. Keys: name, version, updated_at, created_at. Default: -created_at.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Also list the session and story instances replicated from each matched actor
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/actors"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes/{universe_id}/actors
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Unified actor creation request. Handles:
- Direct creation (no source_actor_id)
- Import from another actor (source_actor_id set)
- Template instantiation (template_id set)
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/actors" \ -H "Content-Type: application/json" \ -d '{}'{ "actor_id": "string", "actor_type": "character", "attributes": [ { "attribute_id": "string", "name": "string", "override_properties": null, "template_id": "string", "updated_at": "2019-08-24T14:15:22Z", "value": { "type": "number", "value": 0.1 }, "version": 0 } ], "control_id": "string", "created_at": "2019-08-24T14:15:22Z", "last_modified_by": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "player_controlled": true, "properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "publish_state": "draft", "scope": "universe", "session_id": "string", "source_actor_id": "string", "source_version": 0, "story_id": "string", "tags": [ "string" ], "template_id": "string", "template_snapshot": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}GET/api/v1/narrative/universes/{universe_id}/actors/{actor_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/actors/string"{ "actor_id": "string", "actor_type": "character", "attributes": [ { "attribute_id": "string", "name": "string", "override_properties": null, "template_id": "string", "updated_at": "2019-08-24T14:15:22Z", "value": { "type": "number", "value": 0.1 }, "version": 0 } ], "control_id": "string", "created_at": "2019-08-24T14:15:22Z", "last_modified_by": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "player_controlled": true, "properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "publish_state": "draft", "scope": "universe", "session_id": "string", "source_actor_id": "string", "source_version": 0, "story_id": "string", "tags": [ "string" ], "template_id": "string", "template_snapshot": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}PATCH/api/v1/narrative/universes/{universe_id}/actors/{actor_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/actors/string" \ -H "Content-Type: application/json" \ -d '{}'{ "actor_id": "string", "actor_type": "character", "attributes": [ { "attribute_id": "string", "name": "string", "override_properties": null, "template_id": "string", "updated_at": "2019-08-24T14:15:22Z", "value": { "type": "number", "value": 0.1 }, "version": 0 } ], "control_id": "string", "created_at": "2019-08-24T14:15:22Z", "last_modified_by": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "player_controlled": true, "properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "publish_state": "draft", "scope": "universe", "session_id": "string", "source_actor_id": "string", "source_version": 0, "story_id": "string", "tags": [ "string" ], "template_id": "string", "template_snapshot": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}DELETE/api/v1/narrative/universes/{universe_id}/actors/{actor_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/actors/string"PATCH/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/attributes/{attribute_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Attribute ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/actors/string/attributes/string" \ -H "Content-Type: application/json" \ -d '{}'{ "actor_id": "string", "actor_type": "character", "attributes": [ { "attribute_id": "string", "name": "string", "override_properties": null, "template_id": "string", "updated_at": "2019-08-24T14:15:22Z", "value": { "type": "number", "value": 0.1 }, "version": 0 } ], "control_id": "string", "created_at": "2019-08-24T14:15:22Z", "last_modified_by": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "player_controlled": true, "properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "publish_state": "draft", "scope": "universe", "session_id": "string", "source_actor_id": "string", "source_version": 0, "story_id": "string", "tags": [ "string" ], "template_id": "string", "template_snapshot": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0}GET/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/control
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/actors/string/control"{ "actor_id": "string", "allowed_mutations": { "property1": true, "property2": true }, "control_id": "string", "control_mode": "exclusive", "created_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "is_expired": true, "on_release": { "action": "discard", "notify_webhook": "string" }, "player_id": "string", "session_id": "string", "source_scope": "universe", "universe_id": "string"}POST/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/control
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/actors/string/control" \ -H "Content-Type: application/json" \ -d '{ "player_id": "string", "session_id": "string" }'{ "actor_id": "string", "allowed_mutations": { "property1": true, "property2": true }, "control_id": "string", "control_mode": "exclusive", "created_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "is_expired": true, "on_release": { "action": "discard", "notify_webhook": "string" }, "player_id": "string", "session_id": "string", "source_scope": "universe", "universe_id": "string"}DELETE/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/control
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/actors/string/control" \ -H "Content-Type: application/json" \ -d '{}'GET/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/events/{event_key}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Event Key
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/actors/string/events/string"{ "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null}PATCH/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/events/{event_key}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Event Key (idempotent)
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/actors/string/events/string" \ -H "Content-Type: application/json" \ -d '{}'{ "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null}DELETE/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/events/{event_key}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Event Key
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/actors/string/events/string"POST/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/promote
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/actors/string/promote" \ -H "Content-Type: application/json" \ -d '{ "from_scope": "universe", "to_scope": "universe" }'{ "actor": { "actor_id": "string", "actor_type": "character", "attributes": [ { "attribute_id": "string", "name": "string", "override_properties": null, "template_id": "string", "updated_at": "2019-08-24T14:15:22Z", "value": { "type": "number", "value": 0.1 }, "version": 0 } ], "control_id": "string", "created_at": "2019-08-24T14:15:22Z", "last_modified_by": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "player_controlled": true, "properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "publish_state": "draft", "scope": "universe", "session_id": "string", "source_actor_id": "string", "source_version": 0, "story_id": "string", "tags": [ "string" ], "template_id": "string", "template_snapshot": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0 }, "conflicts_resolved": 0, "fields_promoted": [ "string" ], "from_scope": "universe", "source_actor_id": "string", "success": true, "target_actor_id": "string", "to_scope": "universe"}POST/api/v1/narrative/universes/{universe_id}/actors/{actor_id}/replicate
Authorization
bearer_token In: header
Path Parameters
Universe ID
Actor ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/actors/string/replicate" \ -H "Content-Type: application/json" \ -d '{ "new_actor_id": "string", "to_scope": "universe" }'{ "actor": { "actor_id": "string", "actor_type": "character", "attributes": [ { "attribute_id": "string", "name": "string", "override_properties": null, "template_id": "string", "updated_at": "2019-08-24T14:15:22Z", "value": { "type": "number", "value": 0.1 }, "version": 0 } ], "control_id": "string", "created_at": "2019-08-24T14:15:22Z", "last_modified_by": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "player_controlled": true, "properties": { "avatar_image_name": "string", "description": "string", "display_name": "string", "image_name": "string" }, "publish_state": "draft", "scope": "universe", "session_id": "string", "source_actor_id": "string", "source_version": 0, "story_id": "string", "tags": [ "string" ], "template_id": "string", "template_snapshot": null, "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z", "version": 0 }, "new_actor_id": "string", "source_actor_id": "string", "success": true}GET/api/v1/narrative/universes/{universe_id}/attribute-templates
Authorization
bearer_token In: header
Path Parameters
Universe ID
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Full-text search over this list's searchable fields.
1 <= length <= 200Comma-separated sort keys, - for descending, at most 1. Keys: name, min_value, max_value, updated_at, created_at. Default: -created_at.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/attribute-templates"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes/{universe_id}/attribute-templates
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/attribute-templates" \ -H "Content-Type: application/json" \ -d '{ "attribute_type": "number", "name": "string" }'{ "attribute_type": "number", "color": "string", "created_at": "2019-08-24T14:15:22Z", "default_value": null, "description": "string", "image_name": "string", "max_value": 0, "metadata": { "property1": null, "property2": null }, "min_value": 0, "name": "string", "publish_state": "draft", "suggested_values": [ "string" ], "template_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}GET/api/v1/narrative/universes/{universe_id}/attribute-templates/{template_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Template ID
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/attribute-templates/string"{ "attribute_type": "number", "color": "string", "created_at": "2019-08-24T14:15:22Z", "default_value": null, "description": "string", "image_name": "string", "max_value": 0, "metadata": { "property1": null, "property2": null }, "min_value": 0, "name": "string", "publish_state": "draft", "suggested_values": [ "string" ], "template_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}PATCH/api/v1/narrative/universes/{universe_id}/attribute-templates/{template_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Template ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/attribute-templates/string" \ -H "Content-Type: application/json" \ -d '{}'{ "attribute_type": "number", "color": "string", "created_at": "2019-08-24T14:15:22Z", "default_value": null, "description": "string", "image_name": "string", "max_value": 0, "metadata": { "property1": null, "property2": null }, "min_value": 0, "name": "string", "publish_state": "draft", "suggested_values": [ "string" ], "template_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}DELETE/api/v1/narrative/universes/{universe_id}/attribute-templates/{template_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Template ID
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/attribute-templates/string"GET/api/v1/narrative/universes/{universe_id}/events
Authorization
bearer_token In: header
Path Parameters
Universe ID
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Comma-separated sort keys, - for descending, at most 1. Keys: created_at. Default: -created_at.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/events"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes/{universe_id}/events/aggregate
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/events/aggregate" \ -H "Content-Type: application/json" \ -d '{ "event_key": "string" }'{ "event_key": "string", "total_count": 0}POST/api/v1/narrative/universes/{universe_id}/events/batch
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
A batch of events to upsert under one universe (high-volume event ingestion). Each is upserted independently and fail-fast; the server enforces a cap.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/events/batch" \ -H "Content-Type: application/json" \ -d '{ "events": [ { "actor_id": "string", "event": {}, "event_key": "string" } ] }'{ "count": 0, "results": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ]}GET/api/v1/narrative/universes/{universe_id}/sessions
Authorization
bearer_token In: header
Path Parameters
Universe ID
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Comma-separated sort keys, - for descending, at most 1. Keys: expires_at, updated_at, created_at. Default: -created_at.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Only sessions that have not expired
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/sessions"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes/{universe_id}/sessions
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/sessions" \ -H "Content-Type: application/json" \ -d '{ "player_id": "string" }'{ "context": { "property1": null, "property2": null }, "created_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "is_expired": true, "player_id": "string", "session_id": "string", "settings": { "auto_save": true, "save_interval_seconds": 0, "ttl_seconds": 0 }, "story_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}GET/api/v1/narrative/universes/{universe_id}/sessions/{session_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Session ID
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/sessions/string"{ "context": { "property1": null, "property2": null }, "created_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "is_expired": true, "player_id": "string", "session_id": "string", "settings": { "auto_save": true, "save_interval_seconds": 0, "ttl_seconds": 0 }, "story_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}PATCH/api/v1/narrative/universes/{universe_id}/sessions/{session_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Session ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/sessions/string" \ -H "Content-Type: application/json" \ -d '{}'{ "context": { "property1": null, "property2": null }, "created_at": "2019-08-24T14:15:22Z", "expires_at": "2019-08-24T14:15:22Z", "is_expired": true, "player_id": "string", "session_id": "string", "settings": { "auto_save": true, "save_interval_seconds": 0, "ttl_seconds": 0 }, "story_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}DELETE/api/v1/narrative/universes/{universe_id}/sessions/{session_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Session ID
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/sessions/string"GET/api/v1/narrative/universes/{universe_id}/stories
Authorization
bearer_token In: header
Path Parameters
Universe ID
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Full-text search over this list's searchable fields.
1 <= length <= 200Comma-separated sort keys, - for descending, at most 1. Keys: name, updated_at, created_at. Default: -created_at.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/stories"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes/{universe_id}/stories
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/stories" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "created_at": "2019-08-24T14:15:22Z", "description": "string", "graph_data": null, "lore_compiled": null, "lore_compiler_version": "string", "lore_source": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "publish_state": "draft", "settings": { "actor_import_mode": "copy_on_write", "allow_sessions": true, "divergence_point": null, "max_sessions": 0 }, "stats": null, "story_id": "string", "story_type": "string", "tags": [ "string" ], "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}GET/api/v1/narrative/universes/{universe_id}/stories/{story_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Story ID
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/stories/string"{ "created_at": "2019-08-24T14:15:22Z", "description": "string", "graph_data": null, "lore_compiled": null, "lore_compiler_version": "string", "lore_source": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "publish_state": "draft", "settings": { "actor_import_mode": "copy_on_write", "allow_sessions": true, "divergence_point": null, "max_sessions": 0 }, "stats": null, "story_id": "string", "story_type": "string", "tags": [ "string" ], "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}PATCH/api/v1/narrative/universes/{universe_id}/stories/{story_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Story ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/stories/string" \ -H "Content-Type: application/json" \ -d '{}'{ "created_at": "2019-08-24T14:15:22Z", "description": "string", "graph_data": null, "lore_compiled": null, "lore_compiler_version": "string", "lore_source": "string", "metadata": { "property1": null, "property2": null }, "name": "string", "publish_state": "draft", "settings": { "actor_import_mode": "copy_on_write", "allow_sessions": true, "divergence_point": null, "max_sessions": 0 }, "stats": null, "story_id": "string", "story_type": "string", "tags": [ "string" ], "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}DELETE/api/v1/narrative/universes/{universe_id}/stories/{story_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Story ID
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/stories/string"GET/api/v1/narrative/universes/{universe_id}/tags
Authorization
bearer_token In: header
Path Parameters
Universe ID
Query Parameters
Conditions as filter[][]=. Conditions on different fields all apply. in (any of) and all (every one of, on fields holding several values) take a comma-separated list (\, for a literal comma). exists takes true or false. Datetimes are RFC 3339, now, or a time before now such as -30m, -6h or -7d.
Full-text search over this list's searchable fields.
1 <= length <= 200Comma-separated sort keys, - for descending, at most 1. Keys: created_at, name. Default: name.
Rows per page, 1 to 100 (default 25).
1 <= value <= 100The page.next_cursor of the previous page. Cannot be combined with page.
A 1-based page number, for jumping. Cannot be combined with cursor.
1 <= valueSet to true to include the number of matching rows in page.total.
Response Body
application/json
curl -X GET "https://example.com/api/v1/narrative/universes/string/tags"{ "items": [ { "actor_id": "string", "created_at": "2019-08-24T14:15:22Z", "event_id": "string", "event_key": "string", "metadata": { "property1": null, "property2": null }, "session_id": "string", "story_id": "string", "universe_id": "string", "value_json": null } ], "page": { "has_more": true, "next_cursor": "string", "page": 0, "total": 0 }}POST/api/v1/narrative/universes/{universe_id}/tags
Authorization
bearer_token In: header
Path Parameters
Universe ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/api/v1/narrative/universes/string/tags" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "color": "string", "created_at": "2019-08-24T14:15:22Z", "name": "string", "tag_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}PATCH/api/v1/narrative/universes/{universe_id}/tags/{tag_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Tag ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X PATCH "https://example.com/api/v1/narrative/universes/string/tags/string" \ -H "Content-Type: application/json" \ -d '{}'{ "color": "string", "created_at": "2019-08-24T14:15:22Z", "name": "string", "tag_id": "string", "universe_id": "string", "updated_at": "2019-08-24T14:15:22Z"}DELETE/api/v1/narrative/universes/{universe_id}/tags/{tag_id}
Authorization
bearer_token In: header
Path Parameters
Universe ID
Tag ID
Response Body
curl -X DELETE "https://example.com/api/v1/narrative/universes/string/tags/string"