Skip to content

Instantly share code, notes, and snippets.

Last active Nov 4, 2020
What would you like to do? Multipart Python Example
import json
import requests
from urllib3.filepost import encode_multipart_formdata, choose_boundary
from urllib3.fields import RequestField
def encode_multipart_related(fields, boundary=None):
if boundary is None:
boundary = choose_boundary()
body, _ = encode_multipart_formdata(fields, boundary)
content_type = str('multipart/related; boundary=%s' % boundary)
return body, content_type
def encode_media_related(metadata, media, media_content_type):
# Field 1: Metadata
rf1 = RequestField(
headers={'Content-Type': 'application/json; charset=UTF-8'},
# Field 2: Media
rf2 = RequestField(
headers={'Content-Type': media_content_type},
return encode_multipart_related([rf1, rf2])
# Set the project metadata
metadata = {
'name': 'My test project',
'csvOptions': {
'textColumn': 'my_csv_text_column',
'dateColumn': 'my_csv_date_column'
'team_ids': ["team_id_one", "team_id_two"]
# Initialize media before reading the file
media = ''
# Read the file we want to upload and set as media
with open('dataset.csv') as f:
media =
# Set the body and headers for the request
# Get the API token from the Admin section
token = 'YOUR_API_TOKEN'
media_content_type = 'text/csv'
body, content_type = encode_media_related(metadata, media, media_content_type)
headers = {
'Content-Type': content_type,
'Authorization': str('Bearer %s' % token),
endpoint = ""
r =, data=body, headers=headers)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment