# 3. Finalize Upload: https://api.linkedin.com/rest/videos?action=finalizeUpload POST https://graph.facebook.com/rest/videos Content-Type: application/json Reference: https://docs.deao.dev/cloudflare/social-media-posting/linkedin/upload-video/3-finalize-upload-https-api-linkedin-com-rest-videos-action-finalize-upload ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: collection version: 1.0.0 paths: /rest/videos: post: operationId: >- 3-finalize-upload-https-api-linkedin-com-rest-videos-action-finalize-upload summary: >- 3. Finalize Upload: https://api.linkedin.com/rest/videos?action=finalizeUpload tags: - >- subpackage_socialMediaPosting.subpackage_socialMediaPosting/linkedin.subpackage_socialMediaPosting/linkedin/uploadVideo parameters: - name: action in: query required: false schema: type: string - name: LinkedIn-Version in: header required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: >- #/components/schemas/Social Media Posting_Linkedin_Upload Video_3. Finalize Upload: https://api.linkedin.com/rest/videos?action=finalizeUpload_Response_200 requestBody: content: application/json: schema: type: string servers: - url: https://graph.facebook.com - url: https://www.youtube.com - url: https://youtube-video-summarizer-gpt-ai.p.rapidapi.com - url: https://api.cloudflare.com - url: https://dev-musiccast.odoo.com - url: https://api.search.brave.com - url: https://og-image-generator-dev.deao.workers.dev - url: https://musiccast.odoo.com - url: https://m.musicca.st - url: https://api.stripe.com - url: https://api.kie.ai - url: https://api.pexels.com - url: https://api.shotstack.io - url: https://oauth2.googleapis.com - url: https://www.googleapis.com - url: https://api.linkedin.com - url: https://www.linkedin.com - url: https://rupload.facebook.com - url: https://api.x.com - url: https://open.tiktokapis.com - url: https://open-upload-sg.tiktokapis.com - url: https://social-media-posting-dev.deao.workers.dev components: schemas: 'Social Media Posting_Linkedin_Upload Video_3. Finalize Upload: https://api.linkedin.com/rest/videos?action=finalizeUpload_Response_200': type: object properties: {} description: Empty response body title: >- Social Media Posting_Linkedin_Upload Video_3. Finalize Upload: https://api.linkedin.com/rest/videos?action=finalizeUpload_Response_200 ``` ## SDK Code Examples ```python import requests url = "https://graph.facebook.com/rest/videos" querystring = {"action":"finalizeUpload"} payload = "{ \"finalizeUploadRequest\": { \"video\": \"urn:li:video:D4E10AQHN1RlRbqCaiQ\", //{video} \"uploadToken\": \"\", \"uploadedPartIds\": [ \"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\", \"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\" ] } }" headers = { "LinkedIn-Version": "202603", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers, params=querystring) print(response.json()) ``` ```javascript const url = 'https://graph.facebook.com/rest/videos?action=finalizeUpload'; const options = { method: 'POST', headers: {'LinkedIn-Version': '202603', 'Content-Type': 'application/json'}, body: '"{\n \"finalizeUploadRequest\": {\n \"video\": \"urn:li:video:D4E10AQHN1RlRbqCaiQ\", //{video}\n \"uploadToken\": \"\",\n \"uploadedPartIds\": [\n \"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\",\n \"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\"\n ]\n }\n}"' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://graph.facebook.com/rest/videos?action=finalizeUpload" payload := strings.NewReader("\"{\\n \\\"finalizeUploadRequest\\\": {\\n \\\"video\\\": \\\"urn:li:video:D4E10AQHN1RlRbqCaiQ\\\", //{video}\\n \\\"uploadToken\\\": \\\"\\\",\\n \\\"uploadedPartIds\\\": [\\n \\\"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\\\",\\n \\\"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\\\"\\n ]\\n }\\n}\"") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("LinkedIn-Version", "202603") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://graph.facebook.com/rest/videos?action=finalizeUpload") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["LinkedIn-Version"] = '202603' request["Content-Type"] = 'application/json' request.body = "\"{\\n \\\"finalizeUploadRequest\\\": {\\n \\\"video\\\": \\\"urn:li:video:D4E10AQHN1RlRbqCaiQ\\\", //{video}\\n \\\"uploadToken\\\": \\\"\\\",\\n \\\"uploadedPartIds\\\": [\\n \\\"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\\\",\\n \\\"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\\\"\\n ]\\n }\\n}\"" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://graph.facebook.com/rest/videos?action=finalizeUpload") .header("LinkedIn-Version", "202603") .header("Content-Type", "application/json") .body("\"{\\n \\\"finalizeUploadRequest\\\": {\\n \\\"video\\\": \\\"urn:li:video:D4E10AQHN1RlRbqCaiQ\\\", //{video}\\n \\\"uploadToken\\\": \\\"\\\",\\n \\\"uploadedPartIds\\\": [\\n \\\"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\\\",\\n \\\"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\\\"\\n ]\\n }\\n}\"") .asString(); ``` ```php request('POST', 'https://graph.facebook.com/rest/videos?action=finalizeUpload', [ 'body' => '"{\\n \\"finalizeUploadRequest\\": {\\n \\"video\\": \\"urn:li:video:D4E10AQHN1RlRbqCaiQ\\", //{video}\\n \\"uploadToken\\": \\"\\",\\n \\"uploadedPartIds\\": [\\n \\"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\\",\\n \\"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\\"\\n ]\\n }\\n}"', 'headers' => [ 'Content-Type' => 'application/json', 'LinkedIn-Version' => '202603', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://graph.facebook.com/rest/videos?action=finalizeUpload"); var request = new RestRequest(Method.POST); request.AddHeader("LinkedIn-Version", "202603"); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "\"{\\n \\\"finalizeUploadRequest\\\": {\\n \\\"video\\\": \\\"urn:li:video:D4E10AQHN1RlRbqCaiQ\\\", //{video}\\n \\\"uploadToken\\\": \\\"\\\",\\n \\\"uploadedPartIds\\\": [\\n \\\"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\\\",\\n \\\"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\\\"\\n ]\\n }\\n}\"", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "LinkedIn-Version": "202603", "Content-Type": "application/json" ] let parameters = "{ \"finalizeUploadRequest\": { \"video\": \"urn:li:video:D4E10AQHN1RlRbqCaiQ\", //{video} \"uploadToken\": \"\", \"uploadedPartIds\": [ \"/ambry-video/signedId/AQIi2gRcxkB56QAAAZ0W7J0y_qt2NWOoNB7_X1oYsKAbXOPBeWv0n8BMZucDWdGSng8fcEz7klcC8YdIe8Tg8sIl2STiBnvhIch1UPFYZqVcI47z64-cD7AVz96EQ4v89w5nxiB7oZo3wdAx5r0Du-toDaNRL7pSWCehLkznUkYqAubRGPuYH1jwdThYhgaxzXdr0E9ak3k1g_Bq8kaDl4mDak3b0Jfoh8018gX9C-9UcqXomcYAyOqsdlDUUb7N-wbQ3iZd3X8.bin\", \"/ambry-video/signedId/AQIks1ltRMVhLQAAAZ0W7UcMkBVe4HnMsVlstnqOZ8Wx1KJSm9CxjuE4cn_-OTN4SsWg0tBkiU2u93HYZliANwS5Lg9Oscy1gfA9d1iOS15I6RPGMDV4qNSJ6f_FSR6NZM1c-MWSJuO4ja9LEAwYWQ36zGV1iVIPUfXcNQI8b1ZehEcGBO31DsID3gj_vUBOk4p2HAX_JU8xx8hxtQTNyms_6R7UBWbYLgPMdHsb_23mraywaFoY45QDipMr6vVw7sFNiJ1x9Qc.bin\" ] } }" as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://graph.facebook.com/rest/videos?action=finalizeUpload")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```