GenuineAIGenuineAI
For usersFor developers
  • Overview
  • Guides
  • How-to
  • API reference
Documentation
  • Quickstart
  • Authentication
  • Errors
  • Rate limits
  • API reference
Platform
  • Platform overview
  • Solutions
  • Pricing
  • Sign in
Company
  • Status
  • Trust Center
  • Contact
  • Terms of Service
  • Privacy Policy

© 2026 GenuineAI Ventures LLC

support@genuinehq.com
Overview
Core
Media library
AI
    Agents
    Threads
    Messages
    Spaces
    Prompts
      List promptsgetCreate a promptpostGet a promptgetDelete a promptdeleteUpdate a promptpatchSet categoriesputGet the input formgetList prompt historygetRevert to a versionpostList recent promptsgetGet prompt statisticsget
    Prompt categories
    Wildcards
    Memories
    Assist
Documents
Knowledge
Creative
Website & content
Automation
Customer channels
Administration
Schemas
GenuineAI API
GenuineAI API

Prompts

Reusable prompts and the inputs they ask for.


List prompts

GET
https://api.genuineai.app/api/v1
/prompts

Returns the prompts available to the workspace, including ones published by the platform. A prompt the workspace does not own is listed without its text or configuration.

List prompts › query Parameters

cursor
​string · maxLength: 512 · pattern: ^[A-Za-z0-9_-]+$
limit
​integer
offset
​integer · min: 0
prompt_active
​boolean
prompt_agent
​string · uuid
prompt_author
​string · uuid
prompt_created
​array
prompt_description
​string
prompt_description_short
​string
prompt_id
​string · uuid
prompt_managed_by
​string · uuid
prompt_name
​string
prompt_tenant_categories
​array
prompt_text
​string
prompt_updated
​array
sort
​string · minLength: 1 · maxLength: 64 · pattern: ^-?[a-z0-9_]+$

List prompts › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

List prompts › Responses

Success

​Prompt[] · required
has_more
​boolean · required

Whether more rows exist past this page.

next_cursor
​string | null · required

Pass back as cursor for the next page. Null on the last page.

GET/prompts
curl https://api.genuineai.app/api/v1/prompts \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "data": [ { "prompt_id": "00000000-0000-0000-0000-000000000000", "prompt_name": "prompt_name", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_icon": "prompt_icon", "prompt_agent": "prompt_agent", "prompt_author": "prompt_author", "prompt_config": {}, "prompt_metadata": {}, "prompt_supported_models": "prompt_supported_models", "prompt_text": "prompt_text", "prompt_wildcards": "prompt_wildcards", "prompt_managed_by": "prompt_managed_by", "prompt_active": true, "prompt_created": "2024-08-25T15:00:00Z", "prompt_updated": "2024-08-25T15:00:00Z", "agent_id": "00000000-0000-0000-0000-000000000000", "agent_name": "agent_name", "agent_icon": "agent_icon", "prompt_tenant_id": "00000000-0000-0000-0000-000000000000", "prompt_tenant_categories": [ "00000000-0000-0000-0000-000000000000" ], "prompt_tenant_time_savings": 0, "last_used": "2024-08-25T15:00:00Z" } ], "has_more": true, "next_cursor": "next_cursor" }
json
application/json

Create a prompt

POST
https://api.genuineai.app/api/v1
/prompts

Creates a reusable prompt. The inputs it asks for are wildcards, which are declared separately and referenced by name.

Create a prompt › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Create a prompt › Request Body

prompt_name
​string · minLength: 1 · required
prompt_agent
​string · uuid
prompt_text
​string
prompt_description
​string
prompt_description_short
​string
​object
prompt_tenant_time_savings
​string · pattern: ^-?[0-9]+(\.[0-9]+)?…
prompt_tenant_enabled
​boolean

Create a prompt › Responses

Created

A reusable prompt and the inputs it asks for.
Prompt
prompt_id
​string · uuid
prompt_name
​string
prompt_description
​string
prompt_description_short
​string
prompt_icon
​string
prompt_agent
​string
prompt_author
​string
prompt_config
​object
prompt_metadata
​object
prompt_supported_models
​string
prompt_text
​string
prompt_wildcards
​string
prompt_managed_by
​string
prompt_active
​boolean
prompt_created
​string · date-time
prompt_updated
​string · date-time
agent_id
​string · uuid
agent_name
​string
agent_icon
​string
prompt_tenant_id
​string · uuid
prompt_tenant_categories
​string[]

How this workspace filed the prompt — ids from /prompt-categories. Per workspace, so filing a product prompt affects nobody else.

prompt_tenant_time_savings
​integer
last_used
​string · date-time
POST/prompts
curl https://api.genuineai.app/api/v1/prompts \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "prompt_name": "prompt_name", "prompt_agent": "00000000-0000-0000-0000-000000000000", "prompt_text": "prompt_text", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_config": { "canvas_output": true }, "prompt_tenant_time_savings": "prompt_tenant_time_savings", "prompt_tenant_enabled": true }'
Example Request Body
{ "prompt_name": "prompt_name", "prompt_agent": "00000000-0000-0000-0000-000000000000", "prompt_text": "prompt_text", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_config": { "canvas_output": true }, "prompt_tenant_time_savings": "prompt_tenant_time_savings", "prompt_tenant_enabled": true }
json
Example Responses
{ "prompt_id": "00000000-0000-0000-0000-000000000000", "prompt_name": "prompt_name", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_icon": "prompt_icon", "prompt_agent": "prompt_agent", "prompt_author": "prompt_author", "prompt_config": {}, "prompt_metadata": {}, "prompt_supported_models": "prompt_supported_models", "prompt_text": "prompt_text", "prompt_wildcards": "prompt_wildcards", "prompt_managed_by": "prompt_managed_by", "prompt_active": true, "prompt_created": "2024-08-25T15:00:00Z", "prompt_updated": "2024-08-25T15:00:00Z", "agent_id": "00000000-0000-0000-0000-000000000000", "agent_name": "agent_name", "agent_icon": "agent_icon", "prompt_tenant_id": "00000000-0000-0000-0000-000000000000", "prompt_tenant_categories": [ "00000000-0000-0000-0000-000000000000" ], "prompt_tenant_time_savings": 0, "last_used": "2024-08-25T15:00:00Z" }
json
application/json

Get a prompt

GET
https://api.genuineai.app/api/v1
/prompts/{id}

Returns the prompt with the wildcards it asks for. A prompt published by the platform is returned without its text.

Get a prompt › path Parameters

id
​string · uuid · required

Get a prompt › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Get a prompt › Responses

Success

A reusable prompt and the inputs it asks for.
Prompt
prompt_id
​string · uuid
prompt_name
​string
prompt_description
​string
prompt_description_short
​string
prompt_icon
​string
prompt_agent
​string
prompt_author
​string
prompt_config
​object
prompt_metadata
​object
prompt_supported_models
​string
prompt_text
​string
prompt_wildcards
​string
prompt_managed_by
​string
prompt_active
​boolean
prompt_created
​string · date-time
prompt_updated
​string · date-time
agent_id
​string · uuid
agent_name
​string
agent_icon
​string
prompt_tenant_id
​string · uuid
prompt_tenant_categories
​string[]

How this workspace filed the prompt — ids from /prompt-categories. Per workspace, so filing a product prompt affects nobody else.

prompt_tenant_time_savings
​integer
last_used
​string · date-time
GET/prompts/{id}
curl https://api.genuineai.app/api/v1/prompts/:id \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "prompt_id": "00000000-0000-0000-0000-000000000000", "prompt_name": "prompt_name", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_icon": "prompt_icon", "prompt_agent": "prompt_agent", "prompt_author": "prompt_author", "prompt_config": {}, "prompt_metadata": {}, "prompt_supported_models": "prompt_supported_models", "prompt_text": "prompt_text", "prompt_wildcards": "prompt_wildcards", "prompt_managed_by": "prompt_managed_by", "prompt_active": true, "prompt_created": "2024-08-25T15:00:00Z", "prompt_updated": "2024-08-25T15:00:00Z", "agent_id": "00000000-0000-0000-0000-000000000000", "agent_name": "agent_name", "agent_icon": "agent_icon", "prompt_tenant_id": "00000000-0000-0000-0000-000000000000", "prompt_tenant_categories": [ "00000000-0000-0000-0000-000000000000" ], "prompt_tenant_time_savings": 0, "last_used": "2024-08-25T15:00:00Z" }
json
application/json

Delete a prompt

DELETE
https://api.genuineai.app/api/v1
/prompts/{id}

Deactivates the prompt. Threads that already used it keep the messages it produced.

Delete a prompt › path Parameters

id
​string · uuid · required

Delete a prompt › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Delete a prompt › Responses

Success. No content.

No data returned
DELETE/prompts/{id}
curl https://api.genuineai.app/api/v1/prompts/:id \ --request DELETE \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
No example specified for this content type

Update a prompt

PATCH
https://api.genuineai.app/api/v1
/prompts/{id}

Applies the prompt_-prefixed fields present in the body. A prompt the workspace does not own cannot be edited, only used.

Update a prompt › path Parameters

id
​string · uuid · required

Update a prompt › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Update a prompt › Request Body optional

prompt_name
​string
prompt_text
​string
prompt_agent
​string · uuid
prompt_description
​string
prompt_description_short
​string
​object

Update a prompt › Responses

Success

A reusable prompt and the inputs it asks for.
Prompt
prompt_id
​string · uuid
prompt_name
​string
prompt_description
​string
prompt_description_short
​string
prompt_icon
​string
prompt_agent
​string
prompt_author
​string
prompt_config
​object
prompt_metadata
​object
prompt_supported_models
​string
prompt_text
​string
prompt_wildcards
​string
prompt_managed_by
​string
prompt_active
​boolean
prompt_created
​string · date-time
prompt_updated
​string · date-time
agent_id
​string · uuid
agent_name
​string
agent_icon
​string
prompt_tenant_id
​string · uuid
prompt_tenant_categories
​string[]

How this workspace filed the prompt — ids from /prompt-categories. Per workspace, so filing a product prompt affects nobody else.

prompt_tenant_time_savings
​integer
last_used
​string · date-time
PATCH/prompts/{id}
curl https://api.genuineai.app/api/v1/prompts/:id \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "prompt_name": "prompt_name", "prompt_text": "prompt_text", "prompt_agent": "00000000-0000-0000-0000-000000000000", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_config": { "canvas_output": true } }'
Example Request Body
{ "prompt_name": "prompt_name", "prompt_text": "prompt_text", "prompt_agent": "00000000-0000-0000-0000-000000000000", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_config": { "canvas_output": true } }
json
Example Responses
{ "prompt_id": "00000000-0000-0000-0000-000000000000", "prompt_name": "prompt_name", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_icon": "prompt_icon", "prompt_agent": "prompt_agent", "prompt_author": "prompt_author", "prompt_config": {}, "prompt_metadata": {}, "prompt_supported_models": "prompt_supported_models", "prompt_text": "prompt_text", "prompt_wildcards": "prompt_wildcards", "prompt_managed_by": "prompt_managed_by", "prompt_active": true, "prompt_created": "2024-08-25T15:00:00Z", "prompt_updated": "2024-08-25T15:00:00Z", "agent_id": "00000000-0000-0000-0000-000000000000", "agent_name": "agent_name", "agent_icon": "agent_icon", "prompt_tenant_id": "00000000-0000-0000-0000-000000000000", "prompt_tenant_categories": [ "00000000-0000-0000-0000-000000000000" ], "prompt_tenant_time_savings": 0, "last_used": "2024-08-25T15:00:00Z" }
json
application/json

Set categories

PUT
https://api.genuineai.app/api/v1
/prompts/{id}/categories

Replaces how the calling workspace files the prompt — per workspace, so filing a product prompt affects nobody else. Categories are the workspace's own taxonomy, defined under /prompt-categories.

Set categories › path Parameters

id
​string · uuid · required

Set categories › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Set categories › Request Body

categories
​string[] · required

Set categories › Responses

Success

No data returned
PUT/prompts/{id}/categories
curl https://api.genuineai.app/api/v1/prompts/:id/categories \ --request PUT \ --header 'Content-Type: application/json' \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>' \ --data '{ "categories": [ "00000000-0000-0000-0000-000000000000" ] }'
Example Request Body
{ "categories": [ "00000000-0000-0000-0000-000000000000" ] }
json
Example Responses
No example specified for this content type

Get the input form

GET
https://api.genuineai.app/api/v1
/prompts/{id}/form

The fields a prompt asks for before it runs, resolved from the wildcards it references — this is what a caller needs in order to supply its inputs.

Get the input form › path Parameters

id
​string · uuid · required

Get the input form › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Get the input form › Responses

Success

No data returned
GET/prompts/{id}/form
curl https://api.genuineai.app/api/v1/prompts/:id/form \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
No example specified for this content type

List prompt history

GET
https://api.genuineai.app/api/v1
/prompts/{id}/history

Every recorded change, newest first, each as a per-field {from, to} changeset.

List prompt history › path Parameters

id
​string · uuid · required

List prompt history › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

List prompt history › Responses

Success

​object[]
history_id
​string · uuid
history_timestamp
​string · date-time
history_user
​string | null · uuid
history_op
​string

The kind of change — insert, update or delete.

​object

One entry per field that changed, keyed by column name.

history_ref
​object

What the writer noted about the change rather than the columns: the action that made it, or the reason it was made.

GET/prompts/{id}/history
curl https://api.genuineai.app/api/v1/prompts/:id/history \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
[ { "history_id": "00000000-0000-0000-0000-000000000000", "history_timestamp": "2024-08-25T15:00:00Z", "history_user": "00000000-0000-0000-0000-000000000000", "history_op": "history_op", "history_changeset": { "key": { "from": {}, "to": {} } }, "history_ref": {} } ]
json
application/json

Revert to a version

POST
https://api.genuineai.app/api/v1
/prompts/{id}/history/{history_id}/revert

Puts the prompt back to the state a history entry recorded, and audits the restore itself so it can be undone in turn. Only the fields the history view shows are written.

Restoring the prompt text re-derives the input form from it, so the fields the prompt asks for match the text that is now stored.

A restore can write less than the version held, and skipped says what it left alone and why — a field whose stored value was last written outside the app has no audited value to restore over.

For a platform-published prompt this restores only the calling workspace's own overrides, the same fields its history returns.

Revert to a version › path Parameters

history_id
​string · uuid · required
id
​string · uuid · required

Revert to a version › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Revert to a version › Responses

Success

restored
​string[]

Columns written back, by name.

​object[]

Columns the version carried that were deliberately not written.

POST/prompts/{id}/history/{history_id}/revert
curl https://api.genuineai.app/api/v1/prompts/:id/history/:history_id/revert \ --request POST \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "restored": [ "string" ], "skipped": [ { "field": "field", "reason": "unrecorded", "detail": "detail" } ] }
json
application/json

List recent prompts

GET
https://api.genuineai.app/api/v1
/prompts/recent

Returns the prompts the calling user has run most recently, newest first. last_used is when they last ran it.

List recent prompts › query Parameters

limit
​string · pattern: ^-?[0-9]+(\.[0-9]+)?…

List recent prompts › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

List recent prompts › Responses

Success

​Prompt[] · required
has_more
​boolean · required

Whether more rows exist past this page.

next_cursor
​string | null · required

Pass back as cursor for the next page. Null on the last page.

GET/prompts/recent
curl https://api.genuineai.app/api/v1/prompts/recent \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
{ "data": [ { "prompt_id": "00000000-0000-0000-0000-000000000000", "prompt_name": "prompt_name", "prompt_description": "prompt_description", "prompt_description_short": "prompt_description_short", "prompt_icon": "prompt_icon", "prompt_agent": "prompt_agent", "prompt_author": "prompt_author", "prompt_config": {}, "prompt_metadata": {}, "prompt_supported_models": "prompt_supported_models", "prompt_text": "prompt_text", "prompt_wildcards": "prompt_wildcards", "prompt_managed_by": "prompt_managed_by", "prompt_active": true, "prompt_created": "2024-08-25T15:00:00Z", "prompt_updated": "2024-08-25T15:00:00Z", "agent_id": "00000000-0000-0000-0000-000000000000", "agent_name": "agent_name", "agent_icon": "agent_icon", "prompt_tenant_id": "00000000-0000-0000-0000-000000000000", "prompt_tenant_categories": [ "00000000-0000-0000-0000-000000000000" ], "prompt_tenant_time_savings": 0, "last_used": "2024-08-25T15:00:00Z" } ], "has_more": true, "next_cursor": "next_cursor" }
json
application/json

Get prompt statistics

GET
https://api.genuineai.app/api/v1
/prompts/stats

How many prompts exist and how heavily they are used, for a dashboard rather than a listing.

Get prompt statistics › Headers

X-Tenant-Id
​string · uuid · required

The workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.

Get prompt statistics › Responses

Success

No data returned
GET/prompts/stats
curl https://api.genuineai.app/api/v1/prompts/stats \ --header 'X-Tenant-Id: <string>' \ --header 'X-Api-Key: <api-key>'
Example Responses
No example specified for this content type

SpacesPrompt categories