# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Edge Impulse Projects API version: 1.0.0 extends: openapi/edge-impulse-projects-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 60 - target: $.paths['/api/projects'].get update: x-apievangelist-phrasing: intent: List the projects I can access effect: read questions: - Which Edge Impulse projects does my account have access to? - If I authenticate with a project API key, what does the active-projects list show? instructions: - text: List all my active Edge Impulse projects. - text: Show every active project my login can open. method: generated generated: '2026-10-01' - target: $.paths['/api/projects/create'].post update: x-apievangelist-phrasing: intent: Create a new project effect: write questions: - How do I start a brand-new Edge Impulse project? - Can a new project be created as public instead of private? instructions: - text: Create a new project called {name}. slots: name: requestBody.projectName - text: Create a project named {name} with {visibility} visibility. slots: name: requestBody.projectName visibility: requestBody.projectVisibility method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/devkeys'].get update: x-apievangelist-phrasing: intent: Get a project's development API and HMAC keys effect: read questions: - Where do I find the development API key and HMAC key together for a project? - Why would a project's development keys come back undefined? instructions: - text: Get both development keys (API and HMAC) for project {project}. slots: project: path.projectId - text: Fetch the dev API key and dev HMAC key pair of project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/downloads'].get update: x-apievangelist-phrasing: intent: List a project's downloadable files effect: read questions: - What files can I download from my project, like trained models or datasets? - Can I see the downloads for a specific impulse rather than the default one? instructions: - text: List the available downloads for project {project}. slots: project: path.projectId - text: Show downloads for impulse {impulse} in project {project}. slots: project: path.projectId impulse: query.impulseId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/csv-wizard/download-config'].get update: x-apievangelist-phrasing: intent: Download the CSV Wizard config effect: read questions: - Can I export the CSV Wizard configuration of a project as a JSON file? - What happens if I download the CSV Wizard config when none is set? instructions: - text: Download the CSV Wizard config JSON for project {project}. slots: project: path.projectId - text: Export project {project}'s CSV import wizard settings. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/csv-wizard/uploaded-file'].get update: x-apievangelist-phrasing: intent: Check if the CSV Wizard source file exists effect: read questions: - Is the sample file I used to set up the CSV Wizard still available? - Can I check whether a CSV Wizard source file was stored without downloading it? instructions: - text: Check whether the CSV Wizard source file is still stored for project {project}. slots: project: path.projectId - text: Tell me if project {project} has the file the CSV Wizard was configured from. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/csv-wizard/uploaded-file'].post update: x-apievangelist-phrasing: intent: Store the CSV Wizard source file effect: write questions: - Can I save the CSV file the wizard was based on alongside the project? - Where does the CSV Wizard keep the example file I configured it with? instructions: - text: Store {file} as the CSV Wizard source file for project {project}. slots: project: path.projectId file: requestBody.file - text: Upload the CSV Wizard's base file to project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/csv-wizard/uploaded-file/download'].get update: x-apievangelist-phrasing: intent: Download the CSV Wizard source file effect: read questions: - How can I get back the original CSV I used to configure the CSV Wizard? - Is it possible to download the file the CSV import wizard was built from? instructions: - text: Download the CSV Wizard source file from project {project}. slots: project: path.projectId - text: Retrieve the original CSV the wizard was configured with in project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/collaborators/add'].post update: x-apievangelist-phrasing: intent: Add a collaborator to a project effect: write questions: - How do I invite a teammate to work on my Edge Impulse project? - Can I add a collaborator by email address instead of username? instructions: - text: Add {user} as a collaborator on project {project}. slots: project: path.projectId user: requestBody.usernameOrEmail - text: Give {user} collaborator access to project {project}. slots: project: path.projectId user: requestBody.usernameOrEmail method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/collaborators/remove'].post update: x-apievangelist-phrasing: intent: Remove a collaborator from a project effect: destructive questions: - Can I remove someone's access to my project? - Why can't I remove the last remaining collaborator on a project? instructions: - text: Remove {user} as a collaborator from project {project}. slots: project: path.projectId user: requestBody.usernameOrEmail - text: Revoke {user}'s collaborator access to project {project}. slots: project: path.projectId user: requestBody.usernameOrEmail method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/collaborators/transfer-ownership'].post update: x-apievangelist-phrasing: intent: Transfer a project to another user effect: destructive questions: - Can I hand ownership of my project to another person? - What do I need to transfer a project to a different user account? instructions: - text: Transfer ownership of project {project} to user {user}. slots: project: path.projectId user: requestBody.usernameOrEmail - text: Make {user} the new owner of project {project}. slots: project: path.projectId user: requestBody.usernameOrEmail method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/collaborators/transfer-ownership-org'].post update: x-apievangelist-phrasing: intent: Transfer a project to an organization effect: destructive questions: - Can I move my personal project into an organization? - Which ID do I need to transfer project ownership to an organization? instructions: - text: Transfer project {project} to organization {org}. slots: project: path.projectId org: requestBody.organizationId - text: Hand ownership of project {project} over to organization {org}. slots: project: path.projectId org: requestBody.organizationId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/hmackeys'].get update: x-apievangelist-phrasing: intent: List a project's HMAC keys effect: read questions: - Which HMAC keys are configured on my project? - Can I see every HMAC signing key, not just the development one? instructions: - text: List all HMAC keys for project {project}. slots: project: path.projectId - text: Show every HMAC key registered on project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/hmackeys'].post update: x-apievangelist-phrasing: intent: Add an HMAC key to a project effect: write questions: - How do I add a new HMAC key for signing device data? - If I mark a new HMAC key as development, what happens to the old development key? instructions: - text: Add HMAC key {key} named {name} to project {project}. slots: project: path.projectId key: requestBody.hmacKey name: requestBody.name - text: Add HMAC key {key} called {name} to project {project} with development flag {dev}. slots: project: path.projectId key: requestBody.hmacKey name: requestBody.name dev: requestBody.isDevelopmentKey method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/hmackeys/{hmacId}'].delete update: x-apievangelist-phrasing: intent: Revoke an HMAC key effect: destructive questions: - Can I delete an HMAC key I no longer use? - What breaks if I revoke the development HMAC key? instructions: - text: Revoke HMAC key {hmac} in project {project}. slots: project: path.projectId hmac: path.hmacId - text: Delete HMAC key {hmac} from project {project}. slots: project: path.projectId hmac: path.hmacId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/apikeys'].get update: x-apievangelist-phrasing: intent: List a project's API keys effect: read questions: - What API keys exist for my project? - Why does the API key list only show part of each key? instructions: - text: List all API keys for project {project}. slots: project: path.projectId - text: Show the API keys and their roles on project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/apikeys'].post update: x-apievangelist-phrasing: intent: Add an API key to a project effect: write questions: - How do I create a new API key with a specific role for my project? - Can I supply my own API key value, and what prefix must it start with? instructions: - text: Add an API key named {name} with role {role} to project {project}. slots: project: path.projectId name: requestBody.name role: requestBody.role - text: Create API key {name} with role {role} on project {project} and set development flag {dev}. slots: project: path.projectId name: requestBody.name role: requestBody.role dev: requestBody.isDevelopmentKey method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/apikeys/{apiKeyId}'].delete update: x-apievangelist-phrasing: intent: Revoke a project API key effect: destructive questions: - Can I revoke a full-access project API key that leaked? - What stops working if the development API key is revoked? instructions: - text: Revoke API key {key} on project {project}. slots: project: path.projectId key: path.apiKeyId - text: Delete project {project}'s API key {key}. slots: project: path.projectId key: path.apiKeyId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/emails'].get update: x-apievangelist-phrasing: intent: List emails sent about a project effect: read questions: - Which emails has Edge Impulse sent regarding my project? - Can I review the notification emails sent for a project? instructions: - text: List every email sent about project {project}. slots: project: path.projectId - text: Show the email history for project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/socket-token'].get update: x-apievangelist-phrasing: intent: Get a websocket auth token effect: read questions: - What token do I need to connect to the project websocket? - How can a client authenticate to the web socket interface? instructions: - text: Get a websocket token for project {project}. slots: project: path.projectId - text: Issue a socket authentication token for project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/data-axes'].get update: x-apievangelist-phrasing: intent: Summarize the axes in training data effect: read questions: - Which sensor axes appear in my project's training data? - Can I list data axes while ignoring disabled samples? instructions: - text: Get the data axes summary for project {project}. slots: project: path.projectId - text: 'List the training data axes of project {project}, include disabled samples: {disabled}.' slots: project: path.projectId disabled: query.includeDisabled method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/data-summary'].get update: x-apievangelist-phrasing: intent: Summarize a project's training data effect: read questions: - How many training items and labels does my project have, and how long is the data in total? - Can the training data summary leave out samples that are still processing? instructions: - text: Summarize the training set of project {project}. slots: project: path.projectId - text: 'Get the training data summary for project {project} with unprocessed samples included: {unprocessed}.' slots: project: path.projectId unprocessed: query.includeNotProcessed method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/data-interval'].get update: x-apievangelist-phrasing: intent: Get the training data sample interval effect: read questions: - What sampling interval in milliseconds does my training data use? - If my data has mixed intervals, which one is reported? instructions: - text: Get the training data interval in ms for project {project}. slots: project: path.projectId - text: Tell me the sample interval of project {project}'s training data. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/compute-time-limit'].post update: x-apievangelist-phrasing: intent: Set the job compute time limit effect: write questions: - Can I raise the compute time limit for training jobs on a project? - Who is allowed to change a project's job compute time limit? instructions: - text: Set the job compute time limit of project {project} to {limit}. slots: project: path.projectId limit: requestBody.jobLimitM - text: Change project {project}'s compute limit for jobs to {limit}. slots: project: path.projectId limit: requestBody.jobLimitM method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/dsp-file-size-limit'].post update: x-apievangelist-phrasing: intent: Set the DSP file size limit effect: write questions: - Can I change the maximum DSP file size for a project? - What is the default DSP file size limit in megabytes? instructions: - text: Set the DSP file size limit of project {project} to {mb} MB. slots: project: path.projectId mb: requestBody.dspFileSizeMb - text: Raise project {project}'s DSP file limit to {mb} MB. slots: project: path.projectId mb: requestBody.dspFileSizeMb method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/versions'].get update: x-apievangelist-phrasing: intent: List all versions of a project effect: read questions: - What saved versions exist for my project, private ones included? - Can I see the full version history of a project? instructions: - text: List all versions of project {project}. slots: project: path.projectId - text: Show every saved version, public and private, of project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/versions/public'].get update: x-apievangelist-phrasing: intent: List a project's public versions effect: read questions: - Which versions of a project have been made public? - Can I list public versions without authenticating? instructions: - text: List only the public versions of project {project}. slots: project: path.projectId - text: Show the publicly shared versions of project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/versions/{versionId}'].post update: x-apievangelist-phrasing: intent: Update a project version's description effect: write questions: - Can I edit the description of a saved project version? - Does updating a version change fields I leave out? instructions: - text: Update version {version} of project {project} with description {description}. slots: project: path.projectId version: path.versionId description: requestBody.description - text: Change the description of version {version} in project {project}. slots: project: path.projectId version: path.versionId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/versions/{versionId}'].delete update: x-apievangelist-phrasing: intent: Delete a project version effect: destructive questions: - Can I delete an old version of my project? - Is a deleted version also removed from cold storage? instructions: - text: Delete version {version} of project {project}. slots: project: path.projectId version: path.versionId - text: Remove saved version {version} from project {project}. slots: project: path.projectId version: path.versionId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/versions/{versionId}/make-private'].post update: x-apievangelist-phrasing: intent: Make a public version private effect: write questions: - I published a project version by mistake; can I make it private again? - Is there a way to unpublish a public version without deleting it? instructions: - text: Make version {version} of project {project} private. slots: project: path.projectId version: path.versionId - text: Unpublish public version {version} in project {project}. slots: project: path.projectId version: path.versionId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/readme/upload-image'].post update: x-apievangelist-phrasing: intent: Upload an image for the project readme effect: write questions: - Can I add images to my project's readme? - Where are readme images hosted after upload? instructions: - text: Upload {image} as a readme image for project {project}. slots: project: path.projectId image: requestBody.image - text: Add an image to the readme of project {project} and give me its path. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/launch-getting-started'].post update: x-apievangelist-phrasing: intent: Reset a project via the getting started wizard effect: destructive questions: - What does launching the getting started wizard do to my existing data? - Is relaunching the getting started wizard reversible? instructions: - text: Launch the getting started wizard on project {project}, clearing all its data. slots: project: path.projectId - text: Wipe project {project} and restart the getting started wizard. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/last-modification'].get update: x-apievangelist-phrasing: intent: Get when a project was last modified effect: read questions: - When was my project's data or impulse last changed? - Does training an impulse update the project's last modification date? instructions: - text: Get the last modification date of project {project}. slots: project: path.projectId - text: Tell me when project {project} was last modified. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/development-boards'].get update: x-apievangelist-phrasing: intent: List development boards for a project effect: read questions: - Which development boards are available for my project? - What hardware boards can I pick from in a project? instructions: - text: List the development boards for project {project}. slots: project: path.projectId - text: Show supported dev boards in project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/target-constraints'].get update: x-apievangelist-phrasing: intent: Get a project's target device constraints effect: read questions: - What target device constraints and application budget are set on my project? - Can I read the hardware attributes configured for my target device? instructions: - text: Get the target constraints for project {project}. slots: project: path.projectId - text: Show the target hardware and latency/memory budget of project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/target-constraints'].post update: x-apievangelist-phrasing: intent: Set target device constraints effect: write questions: - How do I tell the project which target devices and resource budgets I'm designing for? - Can I define multiple candidate target devices with their own application budgets? instructions: - text: Set target devices {devices} with budgets {budgets} on project {project}. slots: project: path.projectId devices: requestBody.targetDevices budgets: requestBody.applicationBudgets - text: Update project {project}'s target constraints to devices {devices} and application budgets {budgets}. slots: project: path.projectId devices: requestBody.targetDevices budgets: requestBody.applicationBudgets method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/model-variants'].get update: x-apievangelist-phrasing: intent: List model variants for a project effect: read questions: - Which model variants, like quantized or float, are available for my trained blocks? - Can I see model variants for a non-default impulse? instructions: - text: List the model variants available in project {project}. slots: project: path.projectId - text: Get model variants for impulse {impulse} of project {project}. slots: project: path.projectId impulse: query.impulseId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/dismiss-notification'].post update: x-apievangelist-phrasing: intent: Dismiss a project notification effect: write questions: - Can I dismiss a notification shown in my project? - Is there a way to hide a project notification for good? instructions: - text: Dismiss notification {notification} in project {project}. slots: project: path.projectId notification: requestBody.notification - text: Hide the {notification} notice on project {project}. slots: project: path.projectId notification: requestBody.notification method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/synthetic-data'].get update: x-apievangelist-phrasing: intent: Get the last synthetic data config effect: read questions: - What synthetic data settings did I last use in my project? - Can I retrieve the previous synthetic data generation config? instructions: - text: Get the last used synthetic data config for project {project}. slots: project: path.projectId - text: Show project {project}'s synthetic data settings. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions'].get update: x-apievangelist-phrasing: intent: List a project's AI Actions effect: read questions: - What AI Actions are set up in my project? - Can I see all AI Actions configured for labeling or enriching data? instructions: - text: List all AI Actions in project {project}. slots: project: path.projectId - text: Show the AI Actions defined on project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/order'].post update: x-apievangelist-phrasing: intent: Reorder a project's AI Actions effect: write questions: - Can I change the order AI Actions appear in? - Do I have to include every AI Action when reordering them? instructions: - text: Reorder the AI Actions in project {project} to {order}. slots: project: path.projectId order: requestBody.orderByActionId - text: Set the AI Action order of project {project} using action IDs {order}. slots: project: path.projectId order: requestBody.orderByActionId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/create'].post update: x-apievangelist-phrasing: intent: Create a new AI Action effect: write questions: - How do I add a new AI Action to my project? - Can I start a blank AI Action and configure it later? instructions: - text: Create a new AI Action in project {project}. slots: project: path.projectId - text: Add an empty AI Action to project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/new'].get update: x-apievangelist-phrasing: intent: Get the default config for a new AI Action effect: read questions: - What does the starting configuration of a new AI Action look like? - Can I preview the template config before creating an AI Action? instructions: - text: Get the template config for a new AI Action in project {project}. slots: project: path.projectId - text: Show the default settings a new AI Action would start with in project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/{actionId}'].get update: x-apievangelist-phrasing: intent: Get an AI Action's config effect: read questions: - Can I view the steps and data filter of an existing AI Action? - Which metadata does a particular AI Action set after it runs? instructions: - text: Get the config of AI Action {action} in project {project}. slots: project: path.projectId action: path.actionId - text: Show AI Action {action}'s steps and data selection in project {project}. slots: project: path.projectId action: path.actionId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/{actionId}'].post update: x-apievangelist-phrasing: intent: Save an AI Action's config effect: write questions: - How do I save changes to the steps of an AI Action? - Can an AI Action be limited to samples with a certain metadata key and value? instructions: - text: Save AI Action {action} in project {project} with steps {steps} on data category {category}. slots: project: path.projectId action: path.actionId steps: requestBody.steps category: requestBody.dataCategory - text: Rename AI Action {action} in project {project} to {name}, keeping steps {steps} and category {category}. slots: project: path.projectId action: path.actionId name: requestBody.name steps: requestBody.steps category: requestBody.dataCategory method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/{actionId}'].delete update: x-apievangelist-phrasing: intent: Delete an AI Action effect: destructive questions: - Can I remove an AI Action I no longer need? - Is deleting an AI Action config permanent? instructions: - text: Delete AI Action {action} from project {project}. slots: project: path.projectId action: path.actionId - text: Remove the AI Action {action} config in project {project}. slots: project: path.projectId action: path.actionId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/{actionId}/preview-samples'].post update: x-apievangelist-phrasing: intent: Preview samples for an AI Action effect: write questions: - Can I see a random set of samples an AI Action would run on before running it? - Is it possible to preview AI Action samples for an action that isn't created yet? instructions: - text: Preview up to {count} random samples from category {category} for AI Action {action} in project {project}. slots: project: path.projectId action: path.actionId count: requestBody.maxDataPreviewCount category: requestBody.dataCategory - text: 'Show sample previews for AI Action {action} in project {project} and save the preview config: {save}.' slots: project: path.projectId action: path.actionId save: requestBody.saveConfig method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/ai-actions/{actionId}/clear-proposed-changes'].get update: x-apievangelist-phrasing: intent: Clear an AI Action's proposed changes effect: destructive questions: - Can I discard all proposed changes from an AI Actions job? - How do I throw away AI Action suggestions I don't want to apply? instructions: - text: Clear the proposed changes for AI Action {action} in project {project}. slots: project: path.projectId action: path.actionId - text: Discard AI Action {action}'s pending proposals in project {project}. slots: project: path.projectId action: path.actionId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/tags'].post update: x-apievangelist-phrasing: intent: Update a project's tags effect: write questions: - Can I tag my project with keywords? - Does updating project tags replace the whole list? instructions: - text: Set the tags of project {project} to {tags}. slots: project: path.projectId tags: requestBody.tags - text: Replace project {project}'s tag list with {tags}. slots: project: path.projectId tags: requestBody.tags method: generated generated: '2026-10-01' - target: $.paths['/api/projects/public'].get update: x-apievangelist-phrasing: intent: Browse public projects effect: read questions: - Where can I browse public Edge Impulse projects shared by others? - Can I search public projects by name or owner and filter by project type? instructions: - text: List public projects whose name or owner contains {term}. slots: term: query.project - text: Show {limit} public projects of types {types}. slots: limit: query.limit types: query.projectTypes method: generated generated: '2026-10-01' - target: $.paths['/api/projects/types'].get update: x-apievangelist-phrasing: intent: List public project types effect: read questions: - What project types can public projects be filtered by? - Which categories of public projects exist? instructions: - text: List the available public project types. - text: Show every project type used to classify public projects. method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}'].get update: x-apievangelist-phrasing: intent: Get full project information effect: read questions: - How do I get everything about my project, including its data summary and impulse? - Can I fetch project details for a specific impulse instead of the default one? instructions: - text: Get all information about project {project}. slots: project: path.projectId - text: Show project {project}'s full details for impulse {impulse}. slots: project: path.projectId impulse: query.impulseId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}'].post update: x-apievangelist-phrasing: intent: Update project settings effect: write questions: - Can I rename my project or change its logo? - Is it possible to switch a project to train on GPU or change its readme? instructions: - text: Rename project {project} to {name}. slots: project: path.projectId name: requestBody.name - text: Set the visibility of project {project} to {visibility}. slots: project: path.projectId visibility: requestBody.projectVisibility - text: Update the readme of project {project} to {readme}. slots: project: path.projectId readme: requestBody.readme method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}'].delete update: x-apievangelist-phrasing: intent: Delete a project and all its data effect: destructive questions: - How do I permanently delete a project? - Can a removed project and its data ever be recovered? instructions: - text: Delete project {project} and all its data. slots: project: path.projectId - text: Permanently remove project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/public-info'].get update: x-apievangelist-phrasing: intent: Get a public project's summary effect: read questions: - Can I get summary information about someone else's public project? - What public info is available for a shared project? instructions: - text: Get the public summary of project {project}. slots: project: path.projectId - text: Show public info for shared project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/projects/api-key-info'].get update: x-apievangelist-phrasing: intent: Check the current API key's role and project effect: read questions: - Which project and role does the API key I'm using belong to? - Can I tell what permissions my current project API key has? instructions: - text: Show the role and project ID for my current API key. - text: Check which project this API key authenticates to. method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/devkeys/hmac'].get update: x-apievangelist-phrasing: intent: Get the HMAC development key effect: read questions: - Where can I get just the development HMAC key for a project? - Is there a dev HMAC key set on my project at all? instructions: - text: Get the development HMAC key of project {project}. slots: project: path.projectId - text: Fetch only the dev HMAC key for project {project}. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/csv-wizard/delete-config'].post update: x-apievangelist-phrasing: intent: Delete the CSV Wizard config effect: destructive questions: - How can I stop the CSV Wizard from parsing new uploads? - If I clear the CSV Wizard config, how are later CSVs uploaded? instructions: - text: Delete the CSV Wizard config for project {project}. slots: project: path.projectId - text: Clear project {project}'s CSV import wizard setup so CSVs upload as-is. slots: project: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/apikeys/ingestiononly'].post update: x-apievangelist-phrasing: intent: Add an ingestion-only API key effect: write questions: - Can I create an API key that can only upload data to my project? - What's the safest key to put on a device that only sends samples? instructions: - text: Add an ingestion-only API key named {name} to project {project}. slots: project: path.projectId name: requestBody.name - text: Create an upload-only key called {name} for project {project}. slots: project: path.projectId name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/api/{projectId}/apikeys/ingestiononly/{apiKeyId}'].delete update: x-apievangelist-phrasing: intent: Revoke an ingestion-only API key effect: destructive questions: - Can I revoke an ingestion-only key without touching my other API keys? - What error do I get if I revoke a key that isn't ingestion-only through this route? instructions: - text: Revoke ingestion-only API key {key} on project {project}. slots: project: path.projectId key: path.apiKeyId - text: Delete the upload-only key {key} from project {project}. slots: project: path.projectId key: path.apiKeyId method: generated generated: '2026-10-01'