# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Drip Contracts API version: 1.0.0 extends: openapi/drippay-contracts-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['/v1/contracts'].get update: x-apievangelist-phrasing: intent: List customer contracts effect: read questions: - Which contracts does a particular customer have with us? - Can I see only my active contracts, newest first? instructions: - text: List contracts for customer {customerId}. slots: customerId: query.customerId - text: Show all contracts with status {status}. slots: status: query.status method: generated generated: '2026-09-26' - target: $.paths['/v1/contracts'].post update: x-apievangelist-phrasing: intent: Create a per-customer contract effect: write questions: - How do I set up an enterprise deal with a prepaid commit for a customer? - Can a contract cap how much a customer is billed? - What does a contract with a minimum commit and a percentage discount look like? instructions: - text: Create contract {name} for customer {customerId} starting {startDate}. slots: name: requestBody.name customerId: requestBody.customerId startDate: requestBody.startDate - text: Create a {discountPct}% discount contract {name} for {customerId} from {startDate} to {endDate}. slots: discountPct: requestBody.discountPct name: requestBody.name customerId: requestBody.customerId startDate: requestBody.startDate endDate: requestBody.endDate - text: Set up contract {name} for {customerId} from {startDate} with a {prepaidAmountUsdc} USDC prepaid commit. slots: name: requestBody.name customerId: requestBody.customerId startDate: requestBody.startDate prepaidAmountUsdc: requestBody.prepaidAmountUsdc - text: Create contract {name} for {customerId} starting {startDate} with a spend cap of {maximumUsdc} USDC. slots: name: requestBody.name customerId: requestBody.customerId startDate: requestBody.startDate maximumUsdc: requestBody.maximumUsdc method: generated generated: '2026-09-26' - target: $.paths['/v1/contracts/{id}'].get update: x-apievangelist-phrasing: intent: Get a contract with balance and overrides effect: read questions: - How much prepaid balance is left on a customer's contract? - What price overrides are on one specific contract? instructions: - text: Get contract {id}. slots: id: path.id - text: Show the prepaid balance and price overrides on contract {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/contracts/{id}'].delete update: x-apievangelist-phrasing: intent: Cancel a contract permanently effect: destructive questions: - Can a cancelled contract ever be reactivated? - What happens to the remaining prepaid balance when I cancel a contract? instructions: - text: Cancel contract {id}. slots: id: path.id - text: Terminate the customer agreement {id} so its overrides stop applying. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/contracts/{id}'].patch update: x-apievangelist-phrasing: intent: Amend an active contract's terms effect: write questions: - How do I extend the end date on an existing contract? - Which contract terms can't be changed after it's created? - Are included units merged or replaced when I amend a contract? instructions: - text: Extend contract {id} to end on {endDate}. slots: id: path.id endDate: requestBody.endDate - text: Change the discount on existing contract {id} to {discountPct}%. slots: id: path.id discountPct: requestBody.discountPct - text: Raise the spend cap on contract {id} to {maximumUsdc} USDC. slots: id: path.id maximumUsdc: requestBody.maximumUsdc method: generated generated: '2026-09-26' - target: $.paths['/v1/contracts/{id}/overrides'].post update: x-apievangelist-phrasing: intent: Add a negotiated price override to a contract effect: write questions: - How do I give one customer a lower per-unit rate than the default plan? - Can I update an existing unit price override on a contract? instructions: - text: Set {unitType} to {unitPriceUsd} per unit on contract {id}. slots: unitType: requestBody.unitType unitPriceUsd: requestBody.unitPriceUsd id: path.id - text: Add a negotiated rate of {unitPriceUsd} for {unitType} to contract {id}. slots: unitPriceUsd: requestBody.unitPriceUsd unitType: requestBody.unitType id: path.id method: generated generated: '2026-09-26' - target: $.paths['/v1/contracts/{id}/overrides/{unitType}'].delete update: x-apievangelist-phrasing: intent: Remove a price override from a contract effect: destructive questions: - How do I put a customer back on the default rate for one usage type? - Does the unit type have to match exactly when removing an override? instructions: - text: Remove the {unitType} price override from contract {id}. slots: unitType: path.unitType id: path.id - text: Revert contract {id} to the default plan rate for {unitType}. slots: id: path.id unitType: path.unitType method: generated generated: '2026-09-26'