Upload Media

    This API lets you upload media files which can be used to send MMS. Plivo supports up to a total of 10 attachments in an upload API/SDK call with a maximum of 2MB per attachment. 

    • Media uploaded and sent to customers through MMS is saved inside the system for 1 year.
    • Unused media (Media that is uploaded but not used for sending MMS ) will be cleaned up every 6 hours.

    API Endpoint

    POST https://api.plivo.com/v1/Account/{auth_id}/Media/

    Headers

    Set the header to multipart/form-data

    Arguments

    fileRequiredtype(file)This argument allows you to attach one or more(max 10) files as attachments in the body of the request.

    Returns

    Returns a JSON response containing the list of media objects uploaded.

    Response

    HTTP Status Code: 200

    {
        "api_id": "<api_id>",
        "objects": [
            {
                "content_type": "image/jpeg",
                "file_name": "sample_file1.jpg",
                "media_id": "<media_id>",
                "size": 85277,
                "status": "success",
                "status_code": 201,
                "upload_time": "2020-02-17T07:16:09.153289Z",
                "media_url": "https://media.plivo.com/Account/<auth_id>/Media/<media_id>"
            },
            {
                "content_type": "image/png",
                "file_name": "sample_file2.png",
                "media_id": "<media_id>",
                "size": 16709,
                "status": "success",
                "status_code": 201,
                "upload_time": "2020-02-18T11:21:55.972100055Z",
                "media_url": "https://media.plivo.com/Account/<auth_id>/Media/<media_id>"
            }
        ]
    }
    

    Example Request

    1
    2
    3
    4
    5
    
    import plivo
    client = plivo.RestClient("<auth_id>", "<auth_token>")
    response = client.media.upload(['<video/image file path>',
    '<video/image file path>'])
    print(response)
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    require 'rubygems'
    require 'plivo'
    
    include Plivo
    include Plivo::Exceptions
    
    api = RestClient.new("AUTH_ID", "AUTH_TOKEN")
    begin
     response = api.media.upload(['file_to_upload1''])
     puts response
     rescue PlivoRESTError => e
      puts 'Exception: ' + e.message
    end
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    let plivo = require('plivo');
    
    let client = new plivo.Client('<auth_id>', '<auth_token>');
    client.media.upload(["/tmp/test.jpeg","/tmp/test2.jpeg"]).then(
      function (media) {
        console.log("\n============ response ===========\n", media)
      }
    ).catch(function (response) {
      console.log("\n============ Error :: ===========\n", response);
    });
    
    1
    
    Will be updated shortly
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    package com.plivo.api;
    import java.io.IOException;
    import com.plivo.api.exceptions.PlivoRestException;
    import com.plivo.api.models.media.Media;
    
    public class Test {
        public static void main(String[] args) {
          Plivo.init("AUTH_ID", "AUTH_TOKEN");
          try {
            MediaResponse mediaResponse = Media.creator(new String[]{"upload_file1","upload_file2"}).create();
            System.out.println(mediaResponse);
          } catch (IOException e) {
            e.printStackTrace();
          } catch (PlivoRestException e) {
            e.printStackTrace();
          }
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    using System;
    using Plivo;
    using Plivo.Exception;
    
    namespace SdkTestDotnet
    {
        class Program
        {
            static void Main(string[] args)
            {
                var api = new PlivoApi("AUTH_ID", "AUTH_TOKEN");
                try
                {
                    string[] files = { "file_to_upload1", "file_to_upload2"};
                    var response = api.Media.Upload(files);
                    Console.WriteLine(response);
                }
                catch (PlivoRestException e)
                {
                    Console.WriteLine("Exception: " + e.Message);
                }
            }
        }
    }
    
    1
    2
    3
    4
    
    curl -i --user auth_id:auth_token \
      -H "Content-Type: multipart/form-data" \
      --form 'file=@local_path_of_image'\
      https://api.plivo.com/v1/Account/{auth_id}/Media/
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    package main
    
    import (
            "fmt"
    
            plivo "github.com/plivo/plivo-go"
    )
    
    func main() {
    
            // MAIN ACCOUNT
            client, err := plivo.NewClient("AUTH_ID",
                    "AUTH_TOKEN",
                    &plivo.ClientOptions{})
            if err != nil {
                    panic(err)
            }
    
    //upload media
            uploadResp, err := client.Media.Upload(plivo.MediaUpload{
                    UploadFiles: []plivo.Files{
                            plivo.Files{
                                    FilePath:    "<file_path>",
                                    ContentType: "<content_type>",
                            },
                    },
            },
            )
            if err != nil {
                    panic(err)
            }
            fmt.Printf("Response: %#v\n", uploadResp)
    }