POST
/
api
/
assets
import SnagSolutions from '@snagsolutions/sdk';

const client = new SnagSolutions({
  apiKey: process.env['X_API_KEY'], // This is the default and can be omitted
});

async function main() {
  const response = await client.assets.createAsset({ fileName: 'example.png', fileSize: 1024 });

  console.log(response.signedUrl);
}

main();
{
  "signedUrl": "https://assets.snagsolutions.io/organizations/123e4567-e89b-12d3-a456-426614174222/websites/123e4567-e89b-12d3-a456-426614174111/images/example.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ABJSSMZGO3T2ZKBVJOG2%2F20240702%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240702T072637Z&X-Amz-Expires=60&X-Amz-Signature=6f7952568b7861edd14afb0915870970c9b048ba5237f7a70a16b0f10b96587e&X-Amz-SignedHeaders=host&x-id=PutObject",
  "url": "https://assets.snagsolutions.io/organizations/123e4567-e89b-12d3-a456-426614174222/websites/123e4567-e89b-12d3-a456-426614174111/images/example.png"
}

Authorizations

X-API-KEY
string
header
required

Body

application/json
Body

Schema for uploading an asset with organization, website, and user details.

fileName
string
required

The name of the file, must match the regex pattern (converted to lowercase) and have a valid extension.

Example:

"example.png"

fileSize
number
required

Size of the file in bytes. Uploaded file must match this file size. 1mb for images and 10mb for videos.

Example:

1024

organizationId
string

UUID of the organization (optional, converted to lowercase)

Example:

"123e4567-e89b-12d3-a456-426614174222"

websiteId
string

UUID of the website (optional, converted to lowercase)

Example:

"123e4567-e89b-12d3-a456-426614174111"

userId
string

UUID of the user (optional, converted to lowercase)

Example:

"123e4567-e89b-12d3-a456-426614174333"

filePath
enum<string>

The file path, must be a valid enum value.

Available options:
announcements,
images,
videos,
banners,
fonts,
posts,
profiles,
minting,
loyalty
Example:

"images"

Response

200
application/json
200

Response returned upon successful generation of the signed URL for uploading the file.

signedUrl
string
required

The pre-signed URL to be used for uploading the file.

Example:

"https://assets.snagsolutions.io/organizations/123e4567-e89b-12d3-a456-426614174222/websites/123e4567-e89b-12d3-a456-426614174111/images/example.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ABJSSMZGO3T2ZKBVJOG2%2F20240702%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240702T072637Z&X-Amz-Expires=60&X-Amz-Signature=6f7952568b7861edd14afb0915870970c9b048ba5237f7a70a16b0f10b96587e&X-Amz-SignedHeaders=host&x-id=PutObject"

url
string
required

The URL of the uploaded file.

Example:

"https://assets.snagsolutions.io/organizations/123e4567-e89b-12d3-a456-426614174222/websites/123e4567-e89b-12d3-a456-426614174111/images/example.png"