Prisma · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Prisma Client CRUD API
8 actions
8 updates
phrasing
extends
openapi/prisma-crud-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Prisma's API. It is a proposal applied on top of the contract, not a document Prisma publishes.
What the actions change
x-apievangelist-phrasing
Targets 8
$.info
$.paths['/{model}'].get
$.paths['/{model}'].post
$.paths['/{model}/{id}'].get
$.paths['/{model}/{id}'].put
$.paths['/{model}/{id}'].delete
$.paths['/{model}/upsert'].post
$.paths['/{model}/first'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Prisma Client CRUD API
version: 1.0.0
extends: openapi/prisma-crud-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 7
- target: $.paths['/{model}'].get
update:
x-apievangelist-phrasing:
intent: Find records with filters, sorting and paging
effect: read
questions:
- How do I query records with filters, sorting and pagination?
- Can I load related records together with the results?
- Is there a way to return only distinct values of a field?
instructions:
- text: Find {model} records where {where}, ordered by {orderBy}.
slots:
model: path.model
where: query.where
orderBy: query.orderBy
- text: Get {take} {model} records, skipping the first {skip}.
slots:
take: query.take
model: path.model
skip: query.skip
- text: List all {model} records including {include}.
slots:
model: path.model
include: query.include
method: generated
generated: '2026-09-26'
- target: $.paths['/{model}'].post
update:
x-apievangelist-phrasing:
intent: Create a new record
effect: write
questions:
- How do I create a new record in a model?
- Can I create related records in the same request as the parent?
instructions:
- text: Create a {model} record with {data}.
slots:
model: path.model
data: requestBody.data
- text: Add a new {model} with {data} and return {include}.
slots:
model: path.model
data: requestBody.data
include: requestBody.include
method: generated
generated: '2026-09-26'
- target: $.paths['/{model}/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one record by its unique ID
effect: read
questions:
- What's the way to fetch a single record by its ID?
- What comes back if no record has that unique ID?
instructions:
- text: Get {model} record {id}.
slots:
model: path.model
id: path.id
- text: Fetch {model} {id} with {include} loaded.
slots:
model: path.model
id: path.id
include: query.include
method: generated
generated: '2026-09-26'
- target: $.paths['/{model}/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a record by its ID
effect: write
questions:
- Can I increment a numeric field atomically when updating a record?
- How do I change fields on an existing record by its ID?
instructions:
- text: Update {model} {id} with {data}.
slots:
model: path.model
id: path.id
data: requestBody.data
- text: Change record {id} in {model} to {data} and return {select}.
slots:
id: path.id
model: path.model
data: requestBody.data
select: requestBody.select
method: generated
generated: '2026-09-26'
- target: $.paths['/{model}/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete one record by its ID
effect: destructive
questions:
- Will deleting a record cascade to its related rows?
- Does deleting a single record return what was removed?
instructions:
- text: Delete {model} record {id}.
slots:
model: path.model
id: path.id
- text: Remove {id} from {model} permanently.
slots:
id: path.id
model: path.model
method: generated
generated: '2026-09-26'
- target: $.paths['/{model}/upsert'].post
update:
x-apievangelist-phrasing:
intent: Create a record or update it if it exists
effect: write
questions:
- Can I create a record only if it doesn't exist and update it otherwise?
- What do I need to send for an upsert?
instructions:
- text: Upsert a {model} where {where}, creating {create} or updating {update}.
slots:
model: path.model
where: requestBody.where
create: requestBody.create
update: requestBody.update
- text: If a {model} matches {where} apply {update}, else insert {create}.
slots:
model: path.model
where: requestBody.where
update: requestBody.update
create: requestBody.create
method: generated
generated: '2026-09-26'
- target: $.paths['/{model}/first'].get
update:
x-apievangelist-phrasing:
intent: Get the first record that matches a filter
effect: read
questions:
- Which call returns just the first record that matches a filter?
- Can I control which record counts as first by ordering?
instructions:
- text: Find the first {model} where {where}.
slots:
model: path.model
where: query.where
- text: Get the top {model} record when sorted by {orderBy}.
slots:
model: path.model
orderBy: query.orderBy
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.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.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/prisma-crud-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API 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.