'POST /api/bookmarks/v1/bookmarks/
Request data: {"usage_id": "<usage-id>"}'

def post(self, request):

    if (not request.data):
        return self.error_response(ugettext_noop(u'No    data    provided.'), DEFAULT_USER_MESSAGE)
    usage_id = request.data.get('usage_id', None)
    if (not usage_id):
        return self.error_response(ugettext_noop(u'Parameter    usage_id    not    provided.'), DEFAULT_USER_MESSAGE)
    try:
        usage_key = UsageKey.from_string(unquote_slashes(usage_id))
    except InvalidKeyError:
        error_message = ugettext_noop(u'Invalid    usage_id:    {usage_id}.').format(usage_id=usage_id)
        log.error(error_message)
        return self.error_response(error_message, DEFAULT_USER_MESSAGE)
    try:
        bookmark = api.create_bookmark(user=self.request.user, usage_key=usage_key)
    except ItemNotFoundError:
        error_message = ugettext_noop(u'Block    with    usage_id:    {usage_id}    not    found.').format(usage_id=usage_id)
        log.error(error_message)
        return self.error_response(error_message, DEFAULT_USER_MESSAGE)
    except BookmarksLimitReachedError:
        error_message = ugettext_noop(u'You    can    create    up    to    {max_num_bookmarks_per_course}    bookmarks.    You    must    remove    some    bookmarks    before    you    can    add    new    ones.').format(max_num_bookmarks_per_course=settings.MAX_BOOKMARKS_PER_COURSE)
        log.info(u'Attempted    to    create    more    than    %s    bookmarks', settings.MAX_BOOKMARKS_PER_COURSE)
        return self.error_response(error_message)
    return Response(bookmark, status=status.HTTP_201_CREATED)
