fileCreate
Requires access scope,
access scope or
access scope.
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.
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-07/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();
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)
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"
}
},
},
});