Showpad · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Showpad Assets API

27 actions 27 updates phrasing extends openapi/showpad-assets-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Showpad's API. It is a proposal applied on top of the contract, not a document Showpad publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 27 · first 16 shown; the file carries all of them

$.info
$.paths['/assets.json'].get
$.paths['/assets.json'].post
$.paths['/assets/count.json'].get
$.paths['/assets/description.json'].get
$.paths['/assets/{id1}/tags/{id2}.json'].get
$.paths['/assets/{id1}/tags/{id2}/link.json'].post
$.paths['/assets/{id1}/tags/{id2}/unlink.json'].post
$.paths['/assets/{id}.json'].get
$.paths['/assets/{id}.json'].put
$.paths['/assets/{id}.json'].post
$.paths['/assets/{id}.json'].delete
$.paths['/assets/{id}/comments.json'].get
$.paths['/assets/{id}/comments.json'].post
$.paths['/assets/{id}/link.json'].post
$.paths['/assets/{id}/tags.json'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Showpad Assets API
  version: 1.0.0
extends: openapi/showpad-assets-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: 26
- target: $.paths['/assets.json'].get
  update:
    x-apievangelist-phrasing:
      intent: List assets (legacy endpoint)
      effect: read
      questions:
      - Can I still list assets with the older .json assets endpoint?
      - How do I filter the legacy asset list to only shareable or sensitive files?
      instructions:
      - text: Using the legacy assets.json endpoint, list assets of file type {filetype}.
        slots:
          filetype: query.filetype
      - text: With the older list endpoint, find assets whose original file name is {originalName}.
        slots:
          originalName: query.originalName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload an asset (legacy endpoint)
      effect: write
      questions:
      - Is the old .json create-asset endpoint still usable for uploading a file?
      - Can I set an expiry date when creating an asset the legacy way?
      instructions:
      - text: Using the legacy create endpoint, upload {file} as an asset named {name}.
        slots:
          file: requestBody.file
          name: requestBody.name
      - text: Via assets.json, create asset {name} that expires at {expiresAt}.
        slots:
          name: requestBody.name
          expiresAt: requestBody.expiresAt
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/count.json'].get
  update:
    x-apievangelist-phrasing:
      intent: Count assets
      effect: read
      questions:
      - How many assets are in our library?
      - What's the count of downloadable assets right now?
      instructions:
      - text: Count all assets.
      - text: Count the assets with file type {filetype}.
        slots:
          filetype: query.filetype
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/description.json'].get
  update:
    x-apievangelist-phrasing:
      intent: Describe the asset data model
      effect: read
      questions:
      - What properties does the asset model have in the legacy API?
      - Where can I see which asset calls and parameters are allowed?
      instructions:
      - text: Describe the asset model and its available API calls.
      - text: Show me the field definitions for the asset resource.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id1}/tags/{id2}.json'].get
  update:
    x-apievangelist-phrasing:
      intent: Link or unlink an asset and tag via GET
      effect: write
      questions:
      - Is there a GET-based override to tag or untag an asset for clients that can't send POST?
      - Can I change an asset's tag assignment from the asset side with the method parameter?
      instructions:
      - text: From asset {id1}, use method {method} to change its link to tag {id2}.
        slots:
          method: query.method
          id1: path.id1
          id2: path.id2
      - text: Through GET on the asset path, apply {method} to asset {id1} and tag {id2}.
        slots:
          method: query.method
          id1: path.id1
          id2: path.id2
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id1}/tags/{id2}/link.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Tag an asset (from the asset side)
      effect: write
      questions:
      - How do I attach an existing tag to an asset using the asset's tag link endpoint?
      - Can I tag one asset by giving the asset ID first and then the tag ID?
      instructions:
      - text: On asset {id1}, link tag {id2}.
        slots:
          id1: path.id1
          id2: path.id2
      - text: Apply existing tag {id2} to asset {id1} via the asset tag link.
        slots:
          id1: path.id1
          id2: path.id2
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id1}/tags/{id2}/unlink.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Untag an asset (from the asset side)
      effect: write
      questions:
      - How do I remove a tag from an asset through the asset's unlink endpoint?
      - Can I untag an asset without deleting the tag itself?
      instructions:
      - text: On asset {id1}, unlink tag {id2}.
        slots:
          id1: path.id1
          id2: path.id2
      - text: Strip tag {id2} off asset {id1} via the asset tag unlink.
        slots:
          id1: path.id1
          id2: path.id2
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an asset (legacy endpoint)
      effect: read
      questions:
      - Can I fetch one asset through the older .json endpoint?
      - What does the legacy single-asset response include?
      instructions:
      - text: Using the legacy endpoint, get asset {id}.
        slots:
          id: path.id
      - text: Fetch asset {id} from assets/{id}.json.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an asset (legacy PUT)
      effect: write
      questions:
      - How do I edit an asset's details with a PUT on the legacy endpoint?
      - Can I make an asset non-downloadable with a legacy PUT update?
      instructions:
      - text: PUT a legacy update renaming asset {id} to {name}.
        slots:
          id: path.id
          name: requestBody.name
      - text: With legacy PUT, set downloadable to {isDownloadable} on asset {id}.
        slots:
          id: path.id
          isDownloadable: requestBody.isDownloadable
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Update an asset (legacy POST .json)
      effect: write
      questions:
      - Is there a POST variant on the legacy .json path for editing an asset?
      - Can I mark an asset sensitive through the old POST update endpoint?
      instructions:
      - text: Via legacy POST to assets/{id}.json, set sensitive to {isSensitive}.
        slots:
          id: path.id
          isSensitive: requestBody.isSensitive
      - text: Using the old POST .json update, change asset {id}'s description to {description}.
        slots:
          id: path.id
          description: requestBody.description
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}.json'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an asset (legacy endpoint)
      effect: destructive
      questions:
      - Can I still delete an asset using the legacy .json endpoint?
      - What's the older way to remove an asset by its ID?
      instructions:
      - text: Using the legacy endpoint, delete asset {id}.
        slots:
          id: path.id
      - text: Remove asset {id} via assets/{id}.json.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}/comments.json'].get
  update:
    x-apievangelist-phrasing:
      intent: List comments on an asset
      effect: read
      questions:
      - What comments have people left on a particular asset?
      - Can I see only the comments on an asset created after a certain date?
      instructions:
      - text: List the comments on asset {id}.
        slots:
          id: path.id
      - text: Show comments on asset {id} created since {createdSince}.
        slots:
          id: path.id
          createdSince: query.createdSince
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}/comments.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Comment on an asset
      effect: write
      questions:
      - How do I add a comment to a specific asset?
      - Can an unregistered visitor's comment be recorded against an asset?
      instructions:
      - text: Comment {message} on asset {id}.
        slots:
          id: path.id
          message: requestBody.message
      - text: Post the comment {message} on asset {id} for unregistered user {unregisteredUserFirstName}.
        slots:
          id: path.id
          message: requestBody.message
          unregisteredUserFirstName: requestBody.unregisteredUserFirstName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}/link.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Link related resources to an asset
      effect: write
      questions:
      - How do I attach several related resources to one asset with a Link list?
      - Can I connect an asset to other resources in bulk?
      instructions:
      - text: Link the resources {Link} to asset {id}.
        slots:
          id: path.id
          Link: requestBody.Link
      - text: Attach {Link} to asset {id} as related resources.
        slots:
          id: path.id
          Link: requestBody.Link
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}/tags.json'].get
  update:
    x-apievangelist-phrasing:
      intent: List an asset's tags
      effect: read
      questions:
      - Which tags are on a given asset?
      - Can I check whether an asset carries a tag with a specific name?
      instructions:
      - text: List the tags on asset {id}.
        slots:
          id: path.id
      - text: Check if asset {id} has a tag named {name}.
        slots:
          id: path.id
          name: query.name
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}/tags.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new tag on an asset
      effect: write
      questions:
      - How do I create a brand-new tag and apply it to an asset in one call?
      - Can I set the division of a tag I'm creating on an asset?
      instructions:
      - text: Create tag {name} and add it to asset {id}.
        slots:
          id: path.id
          name: requestBody.name
      - text: Add a new tag {name} in division {divisionId} to asset {id}.
        slots:
          id: path.id
          name: requestBody.name
          divisionId: requestBody.divisionId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{id}/unlink.json'].post
  update:
    x-apievangelist-phrasing:
      intent: Unlink related resources from an asset
      effect: write
      questions:
      - How do I detach a list of related resources from an asset?
      - Can I remove several resource links from one asset at once?
      instructions:
      - text: Unlink the resources {Link} from asset {id}.
        slots:
          id: path.id
          Link: requestBody.Link
      - text: Detach {Link} from asset {id}.
        slots:
          id: path.id
          Link: requestBody.Link
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets'].get
  update:
    x-apievangelist-phrasing:
      intent: List assets
      effect: read
      questions:
      - How do I list the assets in our Showpad library filtered by tag or division?
      - Can I look up assets by their external IDs or slugs?
      - Which assets carry a given set of tags?
      instructions:
      - text: List assets in divisions {divisionIds}.
        slots:
          divisionIds: query.divisionIds
      - text: List assets tagged {tagIds}.
        slots:
          tagIds: query.tagIds
      - text: Find assets with external IDs {externalIds}.
        slots:
          externalIds: query.externalIds
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an asset record
      effect: write
      questions:
      - How do I create a new asset record in a division?
      - Can I set languages, countries and authors when creating an asset?
      instructions:
      - text: Create an asset named {name} in division {division}.
        slots:
          name: requestBody.name
          division: requestBody.division
      - text: Create asset {name} in division {division} with tags {tags}.
        slots:
          name: requestBody.name
          division: requestBody.division
          tags: requestBody.tags
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/query'].post
  update:
    x-apievangelist-phrasing:
      intent: Search assets with ShowQL
      effect: read
      questions:
      - Can I filter assets with complex conditions on metadata, languages and countries?
      - How do I page through a large ShowQL result set with a cursor?
      instructions:
      - text: Query assets with the ShowQL expression {query}.
        slots:
          query: requestBody.query
      - text: Get the next page of ShowQL results for {query} using cursor {cursor}.
        slots:
          query: requestBody.query
          cursor: requestBody.cursor
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{assetId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an asset
      effect: read
      questions:
      - How do I retrieve one asset's metadata by its ID?
      - What details come back for a single asset?
      instructions:
      - text: Get asset {assetId}.
        slots:
          assetId: path.assetId
      - text: Show the metadata of asset {assetId}.
        slots:
          assetId: path.assetId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{assetId}'].post
  update:
    x-apievangelist-phrasing:
      intent: Update an asset
      effect: write
      questions:
      - How do I archive an asset or change its permissions?
      - Can I update an asset's languages and localization?
      instructions:
      - text: Archive asset {assetId} by setting archived to {isArchived}.
        slots:
          assetId: path.assetId
          isArchived: requestBody.isArchived
      - text: Set the tags of asset {assetId} to {tags}.
        slots:
          assetId: path.assetId
          tags: requestBody.tags
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{assetId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Permanently delete an asset
      effect: destructive
      questions:
      - How do I permanently delete an asset from our library?
      - Can a deleted asset be recovered afterwards?
      instructions:
      - text: Permanently delete asset {assetId}.
        slots:
          assetId: path.assetId
      - text: Remove asset {assetId} from the Showpad library for good.
        slots:
          assetId: path.assetId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{assetId}/files'].get
  update:
    x-apievangelist-phrasing:
      intent: List an asset's file versions
      effect: read
      questions:
      - Which file versions are attached to an asset?
      - Can I see the original and processed files for one asset?
      instructions:
      - text: List the files of asset {assetId}.
        slots:
          assetId: path.assetId
      - text: Show all file versions belonging to asset {assetId}.
        slots:
          assetId: path.assetId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{assetId}/files'].post
  update:
    x-apievangelist-phrasing:
      intent: Attach a new file to an asset
      effect: write
      questions:
      - How do I upload a new file version to an existing asset?
      - Can I send an MD5 checksum when adding a file to an asset?
      instructions:
      - text: Attach a new file to asset {assetId}.
        slots:
          assetId: path.assetId
      - text: Add file {name} with checksum {contentMD5} to asset {assetId}.
        slots:
          assetId: path.assetId
          name: requestBody.name
          contentMD5: requestBody.contentMD5
      method: generated
      generated: '2026-10-01'
- target: $.paths['/assets/{assetId}/files/{fileId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an asset file's metadata
      effect: read
      questions:
      - How do I see the metadata of one specific file on an asset?
      - Does fetching a single asset file return the binary content?
      instructions:
      - text: Get file {fileId} of asset {assetId}.
        slots:
          assetId: path.assetId
          fileId: path.fileId
      - text: Show metadata for file {fileId} on asset {assetId}.
        slots:
          assetId: path.assetId
          fileId: path.fileId
      method: generated
      generated: '2026-10-01'