Python POST Samples

Score with Scoresheet

import http.client
import mimetypes
from codecs import encode

conn = http.client.HTTPSConnection("api2.archery-records.net")
dataList = []
boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=file; filename={0}'.format('/<PATH>')))

fileType = mimetypes.guess_type('/<PATH>')[0] or 'application/octet-stream'
dataList.append(encode('Content-Type: {}'.format(fileType)))
dataList.append(encode(''))

with open('/<PATH>', 'rb') as f:
  dataList.append(f.read())
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=data;'))

dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))

dataList.append(encode("{
  \"member_id\": \"<GUID>\",
  \"age_group_id\": \"<GUID>\",
  \"class_id\": \"<GUID>\",
  \"date_shot\": \"2025-04-30T00:00:00\",
  \"golds\": 0,
  \"hits\": 60,
  \"location\": \"Anywhere Club\",
  \"notes\": \"\",
  \"qualifying\": true,
  \"record_qualifying\": false,
  \"record_status\": false,
  \"round_id\": \"<GUID>\",
  \"score\": 259,
  \"status\": 1,
  \"tens\": 45,
  \"type_id\": \"<GUID>\",
  \"user_1\": \"\",
  \"user_2\": \"\",
  \"distances\": [
    {
      \"distance\": \"18 m\",
      \"face\": \"40 cm\",
      \"score\": 259,
      \"hits\": 60,
\"golds\": 0,
      \"tens\": 45,
      \"xs\": 0,
      \"sightmark\": \"4.5\"
    }
  ]
}"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload = body
headers = {
  'Authorization': 'Basic <APIKEY>',
  'Content-Type': 'multipart/form-data; boundary=---XXXX---',
  'Content-type': 'multipart/form-data; boundary={}'.format(boundary)
}
conn.request("POST", "/api/scores", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

Score Only


import http.client

conn = http.client.HTTPSConnection("api2.archery-records.net")
payload = "{\r\n  \"member_id\": \"<GUID>\",
\"age_group_id\": \"<GUID>\",
\"class_id\": \"<GUID>\",
\"date_shot\": \"2025-04-30T00:00:00\",
\"golds\": 0,\r\n  \"hits\": 60,
\"location\": \"Anywhere Club\",
\"notes\": \"\",
\"qualifying\": true,
\"record_qualifying\": false,
\"record_status\": false,
\"round_id\": \"<GUID>\",
\"score\": 259,
\"status\": 1,
\"tens\": 45,
\"type_id\": \"<GUID>\",
\"user_1\": \"\",
\"user_2\": \"\",
\"distances\": [
{\"distance\": \"18 m\",
\"face\": \"40 cm\",
\"score\": 259,
\"hits\": 60,
\"golds\": 0,
\"tens\": 45,
\"xs\": 0,
\"sightmark\": \"4.5\"
}
]
}"
headers = {
  'Authorization': 'Basic <APIKEY>',
  'Content-Type': 'application/json'
}
conn.request("POST", "/api/scores", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))