Professional ActiveTextbook (PRO ATB) platform is also available through API, providing great opportunity to integrate ATB with your systems and to customize your experience with ActiveTextbook.

This is a restful API, ready to use from your Web application or your Web site. On top of the API, we provide Single Sign-On (SSO) options based on OAuth 2.0 standard. Pre-made blocks are available for WordPress.

Look at the API specification below. To inquire about customization options, contact us!


# Portal 2.0 API #

Most routes that operate on a model/entity i.e. books, annotation sets have
the following routes:
  List:
    GET    (list url)
  Create:
    POST   (list url)
  Read (Show details):
    GET    (list url)/:id
  Update:
    PUT    (list url)/:id
  Destroy:
    DELETE (list url)/:id

The Create and Update routes will usually take the same parameters.
As a shorthand, any routes that support this will be notated as
    CRUD   (list url)
      Parameters for create/update

For example,
  CRUD     /portal/api/books
    book[backing_file] - The file to upload (as a file, not the filename/path) (required)
    book[name] - The title of the book (required)
    book[description] - The description of the book
    book[book_category_id] - The book category ID, if any categories are configured
                             (able to be by the admin only), this field is required.
                             Refer to book category section for ids.
    book[tags] - Comma separated string of tags to assign to the book
    book[cover_image] - A custom cover image file

Means that there are routes for listing, creating, reading, updating, and destroying a book,
with the parameters accepted for create and updated specified just below.

Books:
  CRUD     /portal/api/books
    book[backing_file] - The file to upload (as a file, not the filename/path) (required)
    book[name] - The title of the book (required)
    book[description] - The description of the book
    book[book_category_id] - The book category ID, if any categories are configured
                             (able to be by the admin only), this field is required.
                             Refer to book category section for ids.
    book[tags] - Comma separated string of tags to assign to the book
    book[cover_image] - A custom cover image file

Book Categories:
  List:
    GET    /portal/api/book_categories
  Thumbnail Image:
    GET    /api/book_categories/:book_category_id/thumbnail
  Details:
    GET    /api/book_categories/:id

Annotation Sets:
  CRUD   /portal/api/books/:book_id/annotation_sets
    name - The name of the annotation set
    description - The description of the annotation set

Current User:
  Details:
    GET    /portal/api/current_user
  Update:
    PUT    /portal/api/current_user
      user[full_name]
      user[email]
      user[preferred_locale]
      user[old_password]
      user[password]
      user[password_confirmation]
      user[show_tutorials]

  Login:
    POST   /api/user/login
      login
      password
      remember_me
  Logout:
    POST   /api/user/logout

To be documented:
        contacts_portal_api_book_acl_entries_group GET    /portal/api/books/:book_id/acl_entries/groups/:id/contacts
                portal_api_book_acl_entries_groups GET    /portal/api/books/:book_id/acl_entries/groups
                                                   POST   /portal/api/books/:book_id/acl_entries/groups
             new_portal_api_book_acl_entries_group GET    /portal/api/books/:book_id/acl_entries/groups/new
            edit_portal_api_book_acl_entries_group GET    /portal/api/books/:book_id/acl_entries/groups/:id/edit
                 portal_api_book_acl_entries_group GET    /portal/api/books/:book_id/acl_entries/groups/:id
                                                   PUT    /portal/api/books/:book_id/acl_entries/groups/:id
                                                   DELETE /portal/api/books/:book_id/acl_entries/groups/:id
              portal_api_book_acl_entries_contacts GET    /portal/api/books/:book_id/acl_entries/contacts
                                                   POST   /portal/api/books/:book_id/acl_entries/contacts
           new_portal_api_book_acl_entries_contact GET    /portal/api/books/:book_id/acl_entries/contacts/new
          edit_portal_api_book_acl_entries_contact GET    /portal/api/books/:book_id/acl_entries/contacts/:id/edit
               portal_api_book_acl_entries_contact GET    /portal/api/books/:book_id/acl_entries/contacts/:id
                                                   PUT    /portal/api/books/:book_id/acl_entries/contacts/:id
                                                   DELETE /portal/api/books/:book_id/acl_entries/contacts/:id
         portal_api_book_acl_entries_pending_users GET    /portal/api/books/:book_id/acl_entries/pending_users
                                                   POST   /portal/api/books/:book_id/acl_entries/pending_users
      new_portal_api_book_acl_entries_pending_user GET    /portal/api/books/:book_id/acl_entries/pending_users/new
     edit_portal_api_book_acl_entries_pending_user GET    /portal/api/books/:book_id/acl_entries/pending_users/:id/edit
          portal_api_book_acl_entries_pending_user GET    /portal/api/books/:book_id/acl_entries/pending_users/:id
                                                   PUT    /portal/api/books/:book_id/acl_entries/pending_users/:id
                                                   DELETE /portal/api/books/:book_id/acl_entries/pending_users/:id
                       portal_api_reports_download GET    /portal/api/current_user/reports/download
                 quizzes_portal_api_annotation_set GET    /portal/api/current_user/annotation_sets/:id/quizzes
                comments_portal_api_annotation_set GET    /portal/api/current_user/annotation_sets/:id/comments
               find_by_user_id_portal_api_contacts GET    /portal/api/current_user/contacts/find_by_user_id
                         groups_portal_api_contact GET    /portal/api/current_user/contacts/:id/groups
                               portal_api_contacts GET    /portal/api/current_user/contacts
                                                   POST   /portal/api/current_user/contacts
                            new_portal_api_contact GET    /portal/api/current_user/contacts/new
                           edit_portal_api_contact GET    /portal/api/current_user/contacts/:id/edit
                                portal_api_contact GET    /portal/api/current_user/contacts/:id
                                                   PUT    /portal/api/current_user/contacts/:id
                                                   DELETE /portal/api/current_user/contacts/:id
                         contacts_portal_api_group GET    /portal/api/current_user/groups/:id/contacts
                             join_portal_api_group POST   /portal/api/current_user/groups/:id/join
                      add_contact_portal_api_group POST   /portal/api/current_user/groups/:id/add_contact
                   remove_contact_portal_api_group DELETE /portal/api/current_user/groups/:id/remove_contact
                                 portal_api_groups GET    /portal/api/current_user/groups
                                                   POST   /portal/api/current_user/groups
                              new_portal_api_group GET    /portal/api/current_user/groups/new
                             edit_portal_api_group GET    /portal/api/current_user/groups/:id/edit
                                  portal_api_group GET    /portal/api/current_user/groups/:id
                                                   PUT    /portal/api/current_user/groups/:id
                                                   DELETE /portal/api/current_user/groups/:id
                portal_api_user_signup_invitations GET    /portal/api/current_user/user_signup_invitations
                                                   POST   /portal/api/current_user/user_signup_invitations
             new_portal_api_user_signup_invitation GET    /portal/api/current_user/user_signup_invitations/new
            edit_portal_api_user_signup_invitation GET    /portal/api/current_user/user_signup_invitations/:id/edit
                 portal_api_user_signup_invitation GET    /portal/api/current_user/user_signup_invitations/:id
                                                   PUT    /portal/api/current_user/user_signup_invitations/:id
                                                   DELETE /portal/api/current_user/user_signup_invitations/:id
                                portal_api_reports GET    /portal/api/current_user/reports
                                                   POST   /portal/api/current_user/reports
                             new_portal_api_report GET    /portal/api/current_user/reports/new
                            edit_portal_api_report GET    /portal/api/current_user/reports/:id/edit
                                 portal_api_report GET    /portal/api/current_user/reports/:id
                                                   PUT    /portal/api/current_user/reports/:id
                                                   DELETE /portal/api/current_user/reports/:id
                         portal_api_coupons_redeem POST   /portal/api/current_user/coupons/redeem
                                portal_api_coupons GET    /portal/api/current_user/coupons
                                                   POST   /portal/api/current_user/coupons
                             new_portal_api_coupon GET    /portal/api/current_user/coupons/new
                            edit_portal_api_coupon GET    /portal/api/current_user/coupons/:id/edit
                                 portal_api_coupon GET    /portal/api/current_user/coupons/:id
                                                   PUT    /portal/api/current_user/coupons/:id
                                                   DELETE /portal/api/current_user/coupons/:id
   api_active_textbook_annotation_set_offline_sync POST   /api/active_textbooks/:active_textbook_id/annotation_sets/:annotation_set_id/offline_sync                         api/offline_sync#sync {:format=>:json}
    api_active_textbook_annotation_set_media_items GET    /api/active_textbooks/:active_textbook_id/annotation_sets/:annotation_set_id/media_items
                  api_offline_downloads_properties GET    /api/active_textbooks/:active_textbook_id/offline_downloads/properties                                            api/offline_downloads#properties {:format=>:json}
                       api_offline_downloads_fetch GET    /api/active_textbooks/:active_textbook_id/offline_downloads(/annotation_sets/:annotation_set_id)/fetch/:type      api/offline_downloads#fetch {:format=>:json}
                              api_user_accept_eula POST   /api/user/accept_eula
                       api_validate_client_version GET    /api/validate_client_version
                                                   POST   /api/user/facebook_login