Hi @ks_1, here are two ways you can achieve this for a file upload:
- Using
curl:
curl https://<kc_url>/api/v1/metadata.json -H "Authorization: Token <token>" \
-F "xform=<xform_id>" \
-F "data_value=<filename>" \
-F "data_type=media" \
-F "data_file=@<path/to/file>"
- Using a Python script:
import requests
URL = 'https://<kc_url>/api/v1/metadata.json'
TOKEN = '<token>'
FILE_PATH = '<path/to/file>'
FILENAME = '<filename>'
MIME = 'text/csv'
XFORM = '<xform_id>'
headers = {'Authorization': f'Token {TOKEN}'}
files = {'data_file': (FILENAME, open(f'{FILE_PATH}{FILENAME}', 'rb').read(), MIME)}
data = {
'data_value': FILENAME,
'xform': XFORM,
'data_type': 'media',
'data_file_type': MIME,
}
response = requests.post(URL, data=data, files=files, headers=headers)
