Topics/Chapters API Calls

These are the methods for working with Topics in MyFreestone®. Topics belong to Seminars.

Methods and Examples

Get a Topic

Get a specific Topic by ID.

Method/URL

GET https://api.myfreestone.com/topic/{id}

Return [status]

(object) - A Topic object [200]

Create a Topic

Create a new Topic with the supplied parameters.

Method/URL

POST https://api.myfreestone.com/topic/

Authentication Level

20

Parameters

(int) seminar_id (required) - The seminar the topic will belong to.
(string) title - The subtitle of the topic.
(string) subtitle - The subtitle of the topic.
(string) description - The description of the topic.
(string) agendatime - A datetime for the topic.
(string) agendatext - Text to display.

Return [status]

(object) - The newly created Topic object [201]

Update a Topic

Update an existing Topic by ID, with the supplied parameters.

Method/URL

PUT https://api.myfreestone.com/topic/{id}

Authentication Level

20

Parameters

(string) title - The subtitle of the topic.
(string) subtitle - The subtitle of the topic.
(string) description - The description of the topic.
(int) topic_order - The sorted order for the topic.

Return [status]

(null) - [204]

Delete a Topic

Delete an existing Topic by ID.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}

Authentication Level

20

Return [status]

(null) - [204]

Get a Topic's Seminar

Get the Seminar that the specified Topic belongs to.

Method/URL

GET https://api.myfreestone.com/topic/{id}/seminar

Return [status]

(object) - A Seminar object [200]

Get all Topic Products

Get a list of Products belonging to the specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/products

Return [status]

(array) - An array of Product objects [200]

Get the Topic Quiz

Get the Quiz belonging to the Topic, should it exist.

Method/URL

GET https://api.myfreestone.com/topic/{id}/quiz

Return [status]

(object) - A Quiz object [200]

Get all Topic Approved Credits

Get a list of Approved Credits belonging to the specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/approved_credits

Return [status]

(array) - An array of Approved Credit objects [200]

Get an Approved Credit for a Topic

Get a specific Approved Credit belonging to the specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/approved_credit/{approved_credit_id}

Return [status]

(object) - An Approved Credit object [200]

Add Approved Credit to a Topic

Add a new Approved Credit to a specified Topic.

Method/URL

POST https://api.myfreestone.com/topic/{id}/approved_credit

Parameters

(int) credit_type_id (required) - The credit type to create.
(int) credit_reporting_org_id (required) - The CRO for the credit.
(double) num_hours - The number of credit hours the credit offers.
(string) statement - The credit statement.

Return [status]

(object) - The newly created Approved Credit object [201]

Delete Approved Credit

Remove Approved Credit from a specified Topic.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/approved_credit/{approved_credit_id}

Return [status]

(null) - [204]

Get all Topic Tags

Get a list of Tags belonging to a specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/tags

Return [status]

(array) - An array of Tag objects [200]

Add a Tag to a Topic

Add a new or existing Tag to a specified Topic.

Method/URL

POST https://api.myfreestone.com/topic/{id}/tag

Parameters

(string) name (required) - The tag.

Return [status]

(null) - [201]

Delete a Tag

Remove a Tag from a specified Topic.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/tag/{*tag_id}

Parameters

(string) name - If not supplying a tag_id, remove the tag by name.

Return [status]

(null) - [204]

Get all Topic Speakers

Get a list of Speakers belonging to a specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/speakers

Return [status]

(array) - An array of Speaker objects [200]

Add a Speaker to a Topic

Add an existing Speaker to a specified Topic.

Method/URL

POST https://api.myfreestone.com/topic/{id}/speaker/{speaker_id}

Parameters

(int) role - The role.

Return [status]

(object) - The newly created Topic Speaker object [201]

Delete a Speaker

Remove a Speaker from a specified Topic.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/speaker/{speaker_id}

Return [status]

(null) - [204]

Get all Topic Coupons

Get a list of Coupons belonging to a specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/coupons

Return [status]

(array) - An array of Coupon objects [200]

Get a Coupon

Get a specific Coupon belonging to the specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/coupon/{coupon_id}

Return [status]

(object) - A Coupon object [200]

Add a Coupon to a Topic

Add a new Coupon to a specified Topic.

Method/URL

POST https://api.myfreestone.com/topic/{id}/coupon

Parameters

(string) coupon_name (required) - The name for the coupon.
(string) code (required) - The code used to activate the coupon.
(string) provider_discount_id - An external ID used to reference the coupon.
(bool) flate_rate - Whether or not the coupon is a flat rate or percentage discount.
(double) rate - The discount.
(bool) active - Whether or not the coupon is active.
(string) start_date - The date when the coupon activates.
(string) expiration_date - The date when the coupon expires.

Return [status]

(object) - The newly created Coupon object [201]

Edit a Coupon

Edit an existing Coupon.

Method/URL

PUT https://api.myfreestone.com/topic/{id}/coupon/{coupon_id}

Parameters

(string) coupon_name - The name for the coupon.
(string) code - The code used to activate the coupon.
(string) provider_discount_id - An external ID used to reference the coupon.
(bool) flate_rate - Whether or not the coupon is a flat rate or percentage discount.
(double) rate - The discount.
(bool) active - Whether or not the coupon is active.
(string) start_date - The date when the coupon activates.
(string) expiration_date - The date when the coupon expires.

Return [status]

(null) - [204]

Delete a Coupon

Remove a Coupon from a specified Topic.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/coupon/{coupon_id}

Return [status]

(null) - [204]

Remove quiz from Topic

Remove quiz from specified topic

Method/URL

GET https://api.myfreestone.com/topic/{id}/quiz/{quiz_id}

Return [status]

(null) - [204]

Get all Topic Resources

Get a list of Resources belonging to a specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/resources

Return [status]

(array) - An array of Resource objects [200]

Get a Topic Resource

Get a specific Resource belonging to the specified Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/resource/{resource_id}

Return [status]

(object) - A Resource object [200]

Get a Topic Player Resource

Get the Player Resource for a specific Topic.

Method/URL

GET https://api.myfreestone.com/topic/{id}/resource/player

Return [status]

(object) - A Resource object [200]

Get Topic Certificates

Get Certificates belonging to the Topic, should it exist.

Method/URL

GET https://api.myfreestone.com/topic/{id}/certificates

Return [status]

(object) - An array  Certificate objects [200]

Get a Certificate

Get a specific certificate and any applicable mapped certificate fields.

Method/URL

GET https://api.myfreestone.com/topic/{id}/certificate/{certificate_id}

Return [status]

(object) - A Certificate object [200]

Delete a Certificate

Remove a Certificate from a specified Topic.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/certificate/{certificate_id}

Return [status]

(null) - [204]

Get Checkpoints

Get all checkpoints and settings for specified topic

Method/URL

GET https://api.myfreestone.com/topic/{id}/checkpoints/

Return [status]

(object) - A checkpoint object [200]

Remove one or all checkpoints

Remove a specfic checkpoint or all checkpoints from a topic. *If you ommit the checkpoint_id then it will remove all checkpoints.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/checkpoints/{checkpoint_id}

Return [status]

(null) - [204]

Add checkpoints to a Topic

You can add one more more checkpoints to a topic. There are basic quick setup options, or a more detailed singular checkpoint entry which allows recording of a question and answers for that checkpoint

Method/URL

POST https://api.myfreestone.com/topic/{id}/checkpoints

Parameters

(bool) thirty_seconds - Whether or not to create a checkpoint thirty seconds after program starts.
(bool) two_minutes - Whether or not to create a checkpoint two minutes before the end of program.
(string) interval - Creates checkpoints every X amount of minutes through the duration of program.
(string) timecode - Seconds from beginning of program to create a single checkpoint
(string) question - Question to present if a single checkpoint is submitted
(string) answers - JSON array of answers. First dimension is incremental index. Second dimension are properties of answer (text, correct, feedback). 'text'(string)- answer to present -- 'correct'(bool)- whether this answer is the correct answer -- 'feedback'(string)- text to present after the question has been answered

Return [status]

(object) - Checkpoints object for the topic [200]

Update a checkpoint

Update a single checkpoint with params supplied. All applicable question and answers should be submitted in update or they will be removed.

Method/URL

PUT https://api.myfreestone.com/topic/{id}/checkpoint

Parameters

(int) checkpoint_id - The checkpoint ID you are updating. If not supplied a new one should be created
(string) timecode - Seconds from beginning of program to create a single checkpoint
(string) question - Question to present if a single checkpoint is submitted
(string) answers - Json array of answers. First dimension is incremental index. Second dimension are properties of answer (text, correct, feedback). 'text'(string)- answer to present -- 'correct'(bool)- whether this answer is the correct answer -- 'feedback'(string)- text to present after the question has been answered

Return [status]

(object) - Checkpoints object for the topic [200]

Get a Checkpoint

Get all information on a particular checkpoint

Method/URL

GET https://api.myfreestone.com/topic/{id}/checkpoint/{checkpoint_id}

Return [status]

(object) - A checkpoint object [200]

Get Bookmark

Get all information on a particular bookmark

Method/URL

GET https://api.myfreestone.com/topic/{id}/bookmark/

Return [status]

(object) - A bookmark object [200]

Get Bookmarks

Get all bookmarks for specified topic

Method/URL

GET https://api.myfreestone.com/topic/{id}/bookmarks/

Return [status]

(object) - A bookmark object [200]

Add a Bookmark to a Topic

Add a bookmark to a specified topic

Method/URL

POST https://api.myfreestone.com/topic/{id}/bookmarks

Parameters

(string) timecode - Seconds from beginning of program to create a single checkpoint
(string) text - Text to be presented for bookmark

Return [status]

(object) - Bookmark object [200]

Update a bookmark

Update a bookmark to a specified topic

Method/URL

PUT https://api.myfreestone.com/topic/{id}/bookmarks/{bookmark_id}

Parameters

(int) bookmark_id - The bookmark ID you are updating.
(string) timecode - Seconds from beginning of program to create a single checkpoint
(string) text - Text to be presented for bookmark

Return [status]

(object) - Bookmarks object for the topic [200]

Remove one or all bookmarks

Remove a specfic bookmark or all bookmarks from a topic. *If you ommit the bookmark_id then it will remove all checkpoints.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/bookmarks/{bookmark_id}

Return [status]

(null) - [204]

Get a Topic Tab Group

Get a Topic's Tab Group, if it has one.

Method/URL

GET https://api.myfreestone.com/topic/{id}/tab_group

Return [status]

(object) - A Tab Group object [200]

Get a Topic Tabset

Get Tabset assigned to specified topic

Method/URL

GET https://api.myfreestone.com/topic/{id}/tabset

Return [status]

(object) - A Tabset object [200]

Update a Topic Tabset

Updates a topic tabset assignment

Method/URL

PUT https://api.myfreestone.com/topic/{id}/tabset/{tabset_id}

Return [status]

null [204]

Get a Topic's Auto-Archive Tabset

Get auto-archive Tabset assigned to specified topic

Method/URL

GET https://api.myfreestone.com/topic/{id}/auto_archive_tabset

Return [status]

(object) - A Tabset object [200]

Update a Topic's Auto-Archive Tabset

Updates a topic's auto-archive tabset assignment

Method/URL

PUT https://api.myfreestone.com/topic/{id}/auto_archive_tabset/{tabset_id}

Return [status]

null [204]

Get all Topics Approved Credits

Get a list of Approved Credits belonging to the Topics.

Method/URL

GET https://api.myfreestone.com/topic/credits_approved

Parameters

(array) topic_ids (required) - An arry of the topic IDs.

Return [status]

(array) - An array of Approved Credit objects [200]

Get the Topics Quiz

Get the Quizzes belonging to the Topics.

Method/URL

GET https://api.myfreestone.com/topic/topicsquizzes

Parameters

(array) topic_ids (required) - An arry of the topic IDs.

Return [status]

An array of Quiz objects.

Get Captions

Get all captions for specified topic

Method/URL

GET https://api.myfreestone.com/topic/{id}/captions/

Return [status]

(object) - A checkpoint object [200]

Add Caption to Topic

Creates a new Caption attached to the Topic.

Method/URL

POST https://api.myfreestone.com/topic/{id}/caption

Parameters

(string) url (required) - The URL of the caption file.
(string) language (required) - The language of the caption file.

Return [status]

(object) - The newly created Caption object [201]

Delete Caption

Delete an existing Caption attached to the Topic.

Method/URL

DELETE https://api.myfreestone.com/topic/{id}/caption/{caption_id}

Return [status]

(null) - [204]