# 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'