Skip to main content
This example shows how to request a temporary upload URL from EveryBite and then upload an items.json catalog directly to private S3 storage.
You do not need an AWS account or AWS credentials for this upload. The temporary URL returned by EveryBite carries its own signature.

Arguments

businessId has no default. Omitting it is a GraphQL validation error and the request is rejected before it reaches the resolver. An empty string is rejected by the NonEmptyString scalar.
The value is used verbatim and is not validated for format. A malformed businessId produces a malformed object key rather than an error, so the upload lands in the wrong place without failing. Always check objectKey in the response to confirm what was written.
1

Request an upload URL

The EveryBite-issued bearer token must be available in the EVERYBITE_<provider-name>_TOKEN environment variable.
Example response:
The object key is derived from the businessId you supplied:
2

Upload items.json

Copy the complete uploadUrl from the response and use it before expiresAt:
A successful S3 upload normally returns an empty response body. The uploaded object will be stored at the objectKey returned by the API, for example:

Handling the upload URL

The temporary URL normally expires after approximately 15 minutes. Keep it quoted because it contains & characters, do not modify it, and send exactly Content-Type: application/json.