BackResto module assets API

The module assets API from BackResto — 3 operation(s) for module assets.

Operations 3

POST /v1/ingest/restaurants/{restaurantId}/collections/{collection}/records/{recordId}/assets/{assetId}/upload-url Reserve a record attachment upload #
POST /v1/ingest/restaurants/{restaurantId}/collections/{collection}/records/{recordId}/assets/{assetId}/complete Confirm a record attachment upload #
GET /v1/restaurants/{restaurantId}/collections/{collection}/records/{recordId}/assets List the attachments of a record #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/backresto-com:backresto-com-module-assets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

backresto-com-module-assets-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Backresto Com module assets API
  version: '1.0'
  contact:
    name: BackResto
    url: https://developers.backresto.com/en/docs/support
    email: contact@backresto.com
  description: 'Operations tagged module assets across 2 of this provider''s published API definitions: api_backresto.json, backresto-com-api-openapi.json. Each path carries the servers of the definition it was published in.'
tags:
- name: module assets
paths:
  /v1/ingest/restaurants/{restaurantId}/collections/{collection}/records/{recordId}/assets/{assetId}/upload-url:
    post:
      operationId: ModuleAssetIngestController_reserve
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                anyOf:
                - type: object
                  properties:
                    objectKey:
                      type: string
                    status:
                      type: string
                      enum:
                      - uploaded
                  required:
                  - objectKey
                  - status
                  additionalProperties: false
                - type: object
                  properties:
                    expiresAt:
                      type: string
                    headers:
                      type: object
                      properties:
                        Content-Type:
                          type: string
                      required:
                      - Content-Type
                      additionalProperties: false
                    method:
                      type: string
                      enum:
                      - PUT
                    objectKey:
                      type: string
                    status:
                      type: string
                      enum:
                      - pending
                    url:
                      type: string
                      format: uri
                  required:
                  - expiresAt
                  - headers
                  - method
                  - objectKey
                  - status
                  - url
                  additionalProperties: false
          headers:
            RateLimit:
              description: 'Remaining requests and seconds until the window resets: "<policy>";r=<remaining>;t=<seconds>.'
              schema:
                type: string
            RateLimit-Policy:
              description: 'Quota and window of the policy: "<policy>";q=<requests>;w=<seconds>.'
              schema:
                type: string
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request is invalid.
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The credential is missing or not valid. Partner routes add WWW-Authenticate with the protected resource metadata URL.
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The credential is valid but not granted this restaurant or scope.
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: No such resource.
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Rate limit exceeded; retry after the Retry-After header.
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Unexpected server error.
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: A required dependency is unavailable.
      security:
      - bearer: []
      tags:
      - module assets
      summary: Reserve a record attachment upload
      description: 'BackResto mobile app only: reserves a presigned upload for a picture or file attached to a record, or reports it already uploaded.'
  /v1/ingest/restaurants/{restaurantId}/collections/{collection}/records/{recordId}/assets/{assetId}/complete:
    post:
      operationId: ModuleAssetIngestController_complete
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  objectKey:
                    type: string
                  status:
                    type: string
                    enum:
                    - uploaded
                required:
                - objectKey
                - status
                additionalProperties: false
          headers:
            RateLimit:
              description: 'Remaining requests and seconds until the window resets: "<policy>";r=<remaining>;t=<seconds>.'
              schema:
                type: string
            RateLimit-Policy:
              description: 'Quota and window of the policy: "<policy>";q=<requests>;w=<seconds>.'
              schema:
                type: string
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request is invalid.
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The credential is missing or not valid. Partner routes add WWW-Authenticate with the protected resource metadata URL.
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The credential is valid but not granted this restaurant or scope.
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: No such resource.
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Rate limit exceeded; retry after the Retry-After header.
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Unexpected server error.
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: A required dependency is unavailable.
      security:
      - bearer: []
      tags:
      - module assets
      summary: Confirm a record attachment upload
      description: 'BackResto mobile app only: confirms that a reserved attachment reached storage.'
  /v1/restaurants/{restaurantId}/collections/{collection}/records/{recordId}/assets:
    get:
      operationId: ModuleAssetReadController_list
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          maxLength: 200
                          pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]*$
                        byteLength:
                          type: integer
                          maximum: 9007199254740991
                          exclusiveMinimum: 0
                        contentType:
                          type: string
                          enum:
                          - image/jpeg
                          - image/png
                          - image/webp
                          - image/gif
                          - image/heic
                          - image/heif
                          - image/bmp
                          - image/tiff
                          - image/avif
                          - image/svg+xml
                          - application/octet-stream
                          - application/pdf
                          - text/plain
                          - text/csv
                          - application/vnd.openxmlformats-officedocument.wordprocessingml.document
                          - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                        sha256:
                          type: string
                          pattern: ^[a-f0-9]{64}$
                        uploadedAt:
                          type: string
                          pattern: ^(0|[1-9][0-9]{0,18})$
                        urlExpiresAt:
                          type: string
                          pattern: ^(0|[1-9][0-9]{0,18})$
                        url:
                          type: string
                          format: uri
                      required:
                      - id
                      - byteLength
                      - contentType
                      - sha256
                      - uploadedAt
                      - urlExpiresAt
                      - url
                      additionalProperties: false
                required:
                - data
                additionalProperties: false
          headers:
            RateLimit:
              description: 'Remaining requests and seconds until the window resets: "<policy>";r=<remaining>;t=<seconds>.'
              schema:
                type: string
            RateLimit-Policy:
              description: 'Quota and window of the policy: "<policy>";q=<requests>;w=<seconds>.'
              schema:
                type: string
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request is invalid.
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The credential is missing or not valid. Partner routes add WWW-Authenticate with the protected resource metadata URL.
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The credential is valid but not granted this restaurant or scope.
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: No such resource.
        '429':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Rate limit exceeded; retry after the Retry-After header.
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: Unexpected server error.
        '503':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: A required dependency is unavailable.
      security:
      - bearer: []
      tags:
      - module assets
      summary: List the attachments of a record
      description: The pictures and files attached to one record, each with a short-lived download URL.
components:
  schemas:
    Problem:
      description: RFC 9457 problem details.
      properties:
        code:
          description: Machine-readable reason, on mobile ingestion routes only.
          type: string
        detail:
          type: string
        instance:
          description: The request path.
          type: string
        requestId:
          description: Echoes X-Request-ID; quote it to support.
          type: string
        status:
          type: integer
        title:
          type: string
        type:
          description: Stable URI naming the problem, e.g. https://api.backresto.com/problems/not-found.
          format: uri
          type: string
      required:
      - type
      - title
      - status
      - detail
      - instance
      - requestId
      type: object
x-refined-from:
- api_backresto.json
- backresto-com-api-openapi.json