Skip to main content

Hello, I am using the SDK to upload an image to a column on a board, and I’m receiving a 500 error. I am passing the file through an HTML input which returns a File e.g:


File: {name: 'sample.pdf', lastModified: 1653471602427, etc...}

I am using the SDK as stated in this post: Announcement: Uploading files to monday.com has just become easier :)


My code:


const RESPONSE = await monday.api(
`
mutation addFile($id: Int!, $file: File!) {
add_file_to_column(item_id: $id, column_id: "files", file: $file) {
id
}
}
`,
{
variables: {
id: parseInt(id),
file,
},
},
);

When I run the mutation I get a 500 POST error from the https://api.monday.com/v2 url.


Hoping someone can help me understand what’s going wrong. Cheers!

Hello @rhymnz and welcome to the community!


I hope you like it here 💪


You have to use the endpoint https://api.monday.com/v2/file for this!


Let me know if that does it 🙂


Thanks! I have a CORS issue with v2/file/, but /v2/ works fine.


For anyone who stumbles across this question here’s the working solution:


export async function submitFileToColumn(data: { id: number; file: File }) {
try {
const { id, file } = data;

const FORM_DATA = new FormData();
FORM_DATA.append("query", `mutation addFile($file: File!) { add_file_to_column(item_id: ${id}, column_id: "files", file: $file) {id}}`);
FORM_DATA.append("variablesefile]", file, file.name);

const RESPONSE = await fetch("https://api.monday.com/v2/", {
method: "POST",
body: FORM_DATA,
headers: {
"Authorization": process.env.MONDAY_API_TOKEN || ""
}
});

const RESPONSE_DATA = await RESPONSE.json();

if (RESPONSE_DATA.status === 200) {
return Promise.resolve(RESPONSE_DATA);
} else {
throw new Error(RESPONSE_DATA);
}
} catch (errResponse) {
return Promise.reject(errResponse);
}
}

Reply