fileCreate
Requires access scope,
access scope or
access scope. Also: Users must have create files permissions.
Creates file assets using an external URL or for files that were previously uploaded using the stagedUploadsCreate mutation. These files are added to the Files page in Shopify admin.
Files are processed asynchronously. Some data is not available until processing is completed. Check fileStatus to know when the files are READY or FAILED. See the FileStatus for the complete set of possible fileStatus values.
To get a list of all files, use the files query.
Arguments
- Anchor to filesfiles•[File
Create requiredInput!]! List of new files to be created.
Anchor to FileCreatePayload returnsFileCreatePayload returns
- Anchor to filesfiles•
The newly created files.
- Anchor to userErrorsuser•
Errors [FilesUser non-nullError!]! The list of errors that occurred from executing the mutation.
- Create a file using a staged upload URL
- Create a file using an external URL
- Create an image with custom filename
- fileCreate reference
Examples
mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}
curl -X POST \
https://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \
-H 'Content-Type: application/json' \
-H 'X-Shopify-Access-Token: {access_token}' \
-d '{
"query": "mutation fileCreate($files: [FileCreateInput!]!) { fileCreate(files: $files) { files { id fileStatus alt createdAt } } }",
"variables": {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
}
}'
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`#graphql
mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}`,
{
variables: {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
},
},
);
const data = await response.json();
const client = new shopify.clients.Graphql({session});
const data = await client.query({
data: {
"query": `mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}`,
"variables": {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
},
},
});
session = ShopifyAPI::Auth::Session.new(
shop: "your-development-store.myshopify.com",
access_token: access_token
)
client = ShopifyAPI::Clients::Graphql::Admin.new(
session: session
)
query = <<~QUERY
mutation fileCreate($files: [FileCreateInput!]!) {
fileCreate(files: $files) {
files {
id
fileStatus
alt
createdAt
}
}
}
QUERY
variables = {
"files": {
"alt": "fallback text for a video",
"contentType": "VIDEO",
"originalSource": "https://snowdevil.myshopify.com/admin/tmp/files"
}
}
response = client.query(query: query, variables: variables)