Skip to content

Use yasync with ChatGPT file workflows

A private custom GPT can inspect your yasync transfers through a REST Action when your ChatGPT account supports GPT Actions. This gives you a concrete API-key path while the yasync MCP endpoint has no OAuth sign-in flow.

Connection guidance reviewed .

1. Choose the REST Action connection

Create a dedicated key in API keys on any registered account, including Free. A key acts as its owner; keep its value in local environment or secret settings, outside prompts and committed files.

In a private custom GPT’s Actions editor, paste the minimal OpenAPI schema below. Configure authentication as API Key with Bearer auth, and enter your yasync key in that secret field. Do not put it in the schema, GPT instructions or conversation.

Keep this GPT private: the configured key accesses your account, not each visitor’s own yasync account. The example exposes only a GET action; the underlying key still has its normal account permissions.

2. Describe a single read-only operation

This schema describes the existing transfer-list route. It is a small Action example, not a complete OpenAPI specification for yasync.

OpenAPI 3.1 schema for a private GPT Action
openapi: 3.1.0
info:
  title: yasync transfer lookup
  version: 1.0.0
servers:
  - url: https://yasync.com
paths:
  /api/v1/transfers:
    get:
      operationId: listYasyncTransfers
      summary: List transfers owned by the connected yasync account
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 5
        - name: cursor
          in: query
          description: nextCursor from the previous response
          schema:
            type: string
      responses:
        '200':
          description: Transfer page, newest IDs first
          content:
            application/json:
              schema:
                type: object
                properties:
                  transfers:
                    type: array
                    items:
                      type: object
                      properties:
                        id: { type: string }
                        title: { type: [string, 'null'] }
                        status: { type: string }
                        url: { type: string }
                        downloadCount: { type: integer }
                  nextCursor:
                    type: [string, 'null']
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

3. Test before relying on the answer

Use the editor’s action test, then try the prompt below. Compare its results with your dashboard. An empty list is valid; a 401 means the key was not accepted, and PRO_REQUIRED means that operation requires a paid capability.

Private GPT instructions
When I ask about deliveries, call listYasyncTransfers with limit 5. Report the returned title, ID, status and download count. Distinguish DRAFT from READY. Use nextCursor only when I ask for more results. Do not invent successful uploads or completed deliveries.

Check both the action response and the generated answer. A draft can already have a URL, but its presence does not mean the transfer is ready to download.

MCP and local-file boundaries

ChatGPT’s MCP plugin authentication flow is different from GPT Actions. yasync currently accepts fixed Bearer API keys and provides no OAuth discovery or sign-in flow. A ChatGPT MCP connection that cannot present that key needs an authenticated adapter; pasting the server URL alone is insufficient.

This Action lists metadata only. It does not upload files attached to ChatGPT or read a local folder. Use the desktop app or CLI for delivery, then inspect the completed transfer from ChatGPT. A developer can build a separate authenticated upload adapter using the REST reference.

Official references

Examples follow the published client configuration and yasync API contracts. They are not a certification of every client version or an authenticated end-to-end test.