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"))