> ## Documentation Index
> Fetch the complete documentation index at: https://docs.storiza.store/llms.txt
> Use this file to discover all available pages before exploring further.

# Read a file as text

> A file's contents as text, inside the normal response envelope.

`GET /apps/{id}/files/content` streams the same file as `application/octet-stream` for downloads — which is right for a browser and useless to anything that reads JSON, because the bytes never appear in `data`. This is the callable form: `data.content` is the text.

Capped at 512 KB. A larger file comes back with `truncated: true` and the first 512 KB, so a caller always gets something rather than an error. Use `offset` to page through the rest.

**Text only.** A file that is not valid UTF-8 is reported with `binary: true` and no content — reading a binary as a string produces replacement characters that look like data and are not.

Templates that do not allow file access refuse this the same way they refuse the rest of the file API.

**Required API key permission:** `apps:read`



## OpenAPI

````yaml /openapi.json get /apps/{id}/files/text
openapi: 3.0.0
info:
  title: Storiza API
  version: '1.0'
  description: Manage Storiza servers, apps and subscriptions programmatically.
servers:
  - url: https://api.storiza.store
security:
  - bearerAuth: []
tags:
  - name: Servers
    description: Create, order, renew and upgrade VPS servers, and read their details.
  - name: Server power & commands
    description: >-
      Start, stop, reboot and force-stop a server, check its status and run
      commands on it.
  - name: Server settings
    description: >-
      Rename a server, reinstall its operating system and follow its
      installation.
  - name: Server firewall
    description: Turn a server's firewall on or off and manage its rules.
  - name: Server metrics
    description: CPU, memory, disk and network usage, now and over time.
  - name: Server backups
    description: Order the backup add-on, and take, list and delete backups.
  - name: Server snapshots
    description: Take, list and delete snapshots of a server.
  - name: Server sharing
    description: A share link that lets someone else open the server.
  - name: Server catalog
    description: >-
      Plans, operating systems, categories, datacenters and backup plans. Public
      — no key needed.
  - name: Apps
    description: >-
      Deploy, order, renew and configure apps — game servers, databases and
      bots.
  - name: App lifecycle & console
    description: >-
      Start, stop, restart and kill an app, read its output and metrics, and
      send it commands.
  - name: App files
    description: >-
      Read, write, move and delete the files in an app's volume, and its SFTP
      access.
  - name: App backups
    description: Back up an app, download a backup, and restore from one.
  - name: App domains
    description: Your own domains for an app, and their DNS verification.
  - name: App groups
    description: Private networks that let your apps reach each other by hostname.
  - name: App catalog
    description: Templates, plans and locations for apps.
  - name: Subscriptions
    description: What you pay for, how often it renews, and stopping or resuming it.
  - name: Payments
    description: >-
      Follow a payment after an order, and the methods and currencies you can
      pay with.
  - name: Account
    description: Your profile, and a summary of everything you own.
  - name: SSH keys
    description: Public keys you can install on new Linux servers.
paths:
  /apps/{id}/files/text:
    get:
      tags:
        - App files
      summary: Read a file as text
      description: >-
        A file's contents as text, inside the normal response envelope.


        `GET /apps/{id}/files/content` streams the same file as
        `application/octet-stream` for downloads — which is right for a browser
        and useless to anything that reads JSON, because the bytes never appear
        in `data`. This is the callable form: `data.content` is the text.


        Capped at 512 KB. A larger file comes back with `truncated: true` and
        the first 512 KB, so a caller always gets something rather than an
        error. Use `offset` to page through the rest.


        **Text only.** A file that is not valid UTF-8 is reported with `binary:
        true` and no content — reading a binary as a string produces replacement
        characters that look like data and are not.


        Templates that do not allow file access refuse this the same way they
        refuse the rest of the file API.


        **Required API key permission:** `apps:read`
      parameters:
        - schema:
            type: string
            format: uuid
          required: true
          name: id
          in: path
        - schema:
            type: string
            minLength: 1
          required: true
          name: path
          in: query
        - schema:
            type: integer
            nullable: true
            minimum: 0
            default: 0
          required: false
          name: offset
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 524288
            default: 524288
          required: false
          name: length
          in: query
      responses:
        '200':
          description: File read
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - true
                  message:
                    type: string
                    enum:
                      - File read
                  data:
                    type: object
                    properties:
                      path:
                        type: string
                      content:
                        type: string
                      bytes:
                        type: number
                      truncated:
                        type: boolean
                      binary:
                        type: boolean
                    required:
                      - path
                      - content
                      - bytes
                      - truncated
                      - binary
                required:
                  - success
                  - message
                  - data
        '401':
          description: Authentication required | Invalid API key | API key has expired
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  type:
                    type: string
                  code:
                    type: string
                  error:
                    type: string
                  details:
                    nullable: true
                required:
                  - success
                  - type
                  - code
                  - error
              examples:
                authenticationRequired:
                  summary: Authentication required
                  value:
                    success: false
                    type: API
                    code: AUTHENTICATION_ERROR
                    error: Authentication required
                invalidApiKey:
                  summary: Invalid API key
                  value:
                    success: false
                    type: API
                    code: INVALID_API_KEY
                    error: Invalid API key
                expiredApiKey:
                  summary: API key has expired
                  value:
                    success: false
                    type: API
                    code: EXPIRED_API_KEY
                    error: API key has expired
        '403':
          description: >-
            Account is banned | Account is suspended | Insufficient permissions
            | This endpoint cannot be accessed with this authentication method |
            API key lacks the permission required for this endpoint | This API
            key is not permitted from your IP address
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  type:
                    type: string
                  code:
                    type: string
                  error:
                    type: string
                  details:
                    nullable: true
                required:
                  - success
                  - type
                  - code
                  - error
              examples:
                accountBanned:
                  summary: Account is banned
                  value:
                    success: false
                    type: API
                    code: ACCOUNT_BANNED
                    error: Account is banned
                accountSuspended:
                  summary: Account is suspended
                  value:
                    success: false
                    type: API
                    code: ACCOUNT_SUSPENDED
                    error: Account is suspended
                insufficientPermissions:
                  summary: Insufficient permissions
                  value:
                    success: false
                    type: API
                    code: AUTHORIZATION_ERROR
                    error: Insufficient permissions
                transportNotAllowed:
                  summary: >-
                    This endpoint cannot be accessed with this authentication
                    method
                  value:
                    success: false
                    type: API
                    code: TRANSPORT_NOT_ALLOWED
                    error: >-
                      This endpoint cannot be accessed with this authentication
                      method
                missingPermission:
                  summary: API key lacks the permission required for this endpoint
                  value:
                    success: false
                    type: API
                    code: MISSING_PERMISSION
                    error: API key lacks the permission required for this endpoint
                ipNotAllowed:
                  summary: This API key is not permitted from your IP address
                  value:
                    success: false
                    type: API
                    code: IP_NOT_ALLOWED
                    error: This API key is not permitted from your IP address
        '404':
          description: App not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  type:
                    type: string
                  code:
                    type: string
                  error:
                    type: string
                  details:
                    nullable: true
                required:
                  - success
                  - type
                  - code
                  - error
              examples:
                appNotFound:
                  summary: App not found
                  value:
                    success: false
                    type: API
                    code: APP_NOT_FOUND
                    error: App not found
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  type:
                    type: string
                    enum:
                      - API
                  code:
                    type: string
                    enum:
                      - VALIDATION_ERROR
                  error:
                    type: string
                    enum:
                      - Validation error
                  details:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        _errors:
                          type: array
                          items:
                            type: string
                required:
                  - success
                  - type
                  - code
                  - error
                  - details
              example:
                success: false
                type: API
                code: VALIDATION_ERROR
                error: Validation error
                details:
                  _errors:
                    - The whole schema has some validation problems
                  some_field:
                    _errors:
                      - This field has some validation problem
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    enum:
                      - false
                  type:
                    type: string
                    enum:
                      - API
                  code:
                    type: string
                    enum:
                      - INTERNAL_ERROR
                  error:
                    type: string
                    enum:
                      - Internal server error
                  details:
                    nullable: true
                required:
                  - success
                  - type
                  - code
                  - error
              example:
                success: false
                type: API
                code: INTERNAL_ERROR
                error: Internal server error
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key from the Storiza dashboard (API & Integrations), sent as
        `Authorization: Bearer stz_…`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.