Hi Stuart,
I originally needed this to upload a standard syllabus to multiple courses. I ended up just uploading HTML en masse to multiple courses. Blueprints also replaces what I wanted to do.
If you're interested in the script I was using, please view it below (I am not a programmer so the code is probably terrible). The script would hang on the sleep until I actually visited the page in a browser.
import requests
import time
HEADERS = {'Authorization':'Bearer XXXXXXX'}
#LIST COURSES HERE
li = []
count = 0
for s in li:
z = []
#FIND COURSE FOLDER ID
while z == []:
folderIDAPI = "https://montclair.instructure.com/api/v1/courses/%s/folders" % (s)
payload = {}
r = requests.get(folderIDAPI, headers = HEADERS, data=payload)
z = r.json()
print s
if z == []:
time.sleep (30)
for i in z:
if i['name'] == 'course files':
coursefilesURL = i['id']
print coursefilesURL
#ZIP FILE IMPORT TO COURSE FILES URL
ZIPFileImporter = "https://montclair.instructure.com/api/v1/courses/%s/content_migrations" % (s)
payload = {'migration_type':'zip_file_importer',
'settings[file_url]':'https://www.dropbox.com/', 'settings[folder_id]': coursefilesURL } #I used Dropbox to upload files - this works fine with other Caniverse stuff
r = requests.post(ZIPFileImporter, headers = HEADERS, data=payload)
print s + " SUCCESS"
count += 1
print count
time.sleep(2)