Skip to main content
Glama

ClickUp Operator

by noah-vh
clickup.cpython-312.pyc41.6 kB
� iMg�j��<�ddlZddlmZmZmZmZmZGd�d�Zy)�N)�Optional�List�Dict�Any�Unionc���eZdZdefd�Zd�Zdeeeeffd�Z defd�Z dedefd �Z d efd �Z d edefd �Z d edefd�Zd efd�Zdefd�Zdedefd�Zdefd�Zdefd�Zd efd�Zdedefd�Zdedefd�Zdefd�Zdedefd�Zd efd�Zd edefd�Zdefd�Zdedefd �Zdyded!ed"edefd#�Zdedefd$�Zd%edefd&�Z dede!fd'�Z"d%ededefd(�Z#ded)edefd*�Z$d+�Z%d edefd,�Z&d edefd-�Z'dedefd.�Z(d/edefd0�Z)ded1ed2edeeeffd3�Z*dedeeeeffd4�Z+d edeeeeffd5�Z,dedeeeeffd6�Z-dzded7e.deeeeffd8�Z/d ed9edefd:�Z0d{ded<e1e.d=e1e.d2edeeeeff d>�Z2ded?edeeeeffd@�Z3dedAedeeeffdB�Z4dedeeeffdC�Z5ded2edeeeffdD�Z6ded?ed2edeeeffdE�Z7dedAedeeeffdF�Z8ded?edeeeffdG�Z9dedeeeffdH�Z:dedeeeffdI�Z;dedJeedKeeeefdeeeffdL�Z<dedJeedKeeeefdeeeffdM�Z=dededNedOedPedeeeff dQ�Z>dedRed2edeeeffdS�Z?dedRedeeeffdT�Z@dedRedeeeffdU�ZAdedRedVedeeeffdW�ZBdedRedeeeffdX�ZCd edRedVedeeeffdY�ZDd edRedeeeffdZ�ZEd[edRedVedeeeffd\�ZFd[edRedeeeffd]�ZGded2edeeeffd^�ZHdeded_ee.deeeffd`�ZIdedeeeffda�ZJdbed2edeeeffdc�ZKdbedeeeffdd�ZLdeedeeeffdf�ZMded2edeeeffdg�ZNdheed2edeeeffdi�ZOdedeeeffdj�ZPded1ed2edeeeffdk�ZQdedle.d2edeeeffdm�ZRdedle.deeeffdn�ZSdedle.deeeffdo�ZTdedpedqeed2edeeeff dr�ZUdedeeeffds�ZVdted2edeeeffdu�ZWdtedeeeffdv�ZXd|dw�ZYd}dx�ZZy;)~� ClickUpAPI�api_keyc�T�||_d|_|dd�|_|j�y)Nzhttps://api.clickup.com/api/v2zapplication/json)� Authorizationz Content-Type)r �base_url�headers� _setup_client)�selfr s �PC:\Users\noahv\Documents\GitHub\clickup-operator\src\clickup_operator\clickup.py�__init__zClickUpAPI.__init__s-���� �8�� �$�.� �� � ����c��tjdd��}tjdd��}tj|j||��|_y) z<Setup the HTTP client with proper timeout and retry settingsg>@g$@)�connect�� )�max_keepalive_connections�max_connections)r�timeout�limitsN)�httpx�Timeout�Limits� AsyncClientr�client)rrrs rrzClickUpAPI._setup_clientsA���-�-��d�3������2�N���'�'��L�L��� �� r�returnc��K�|jj|j�d���d{���}|j�|j �dS7�'�w)z#Get all accessible teams/workspacesz/teamN�teams�r �getr �raise_for_status�json�r�responses r� get_teamszClickUpAPI.get_teamssI���������D�M�M�?�%�)@�A�A���!�!�#��}�}��w�'�'�B���,A�A�(A�team_idc��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet spaces in a team�/team/�/spaceN�spacesr$�rr,r)s r� get_spaceszClickUpAPI.get_spacessO���������D�M�M�?�&�� ��)P�Q�Q���!�!�#��}�}��x�(�(�R���/A�A�(A�namec���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a spacer4r.r/�r'N�r �postr r&r'�rr,r4�kwargs�datar)s r� create_spacezClickUpAPI.create_space$si������'��'�����)�)��}�}�o�V�G�9�F� 3��*� � �� �!�!�#��}�}���  ���7A �A�%A �space_idc��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet lists in a space�/space/�/listN�listsr$�rr>r)s r� get_listszClickUpAPI.get_lists.sO���������D�M�M�?�'�(��5�)Q�R�R���!�!�#��}�}��w�'�'�S�r3c���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)z Create a listr4r@rAr6Nr7�rr>r4r:r;r)s r� create_listzClickUpAPI.create_list4�i������'��'�����)�)��}�}�o�W�X�J�e� 4��*� � �� �!�!�#��}�}���  �r=�list_idc���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)z Create a taskr4�/list/�/taskr6Nr7)rrIr4r:r;r)s r� create_taskzClickUpAPI.create_task>�i������'��'�����)�)��}�}�o�V�G�9�E� 2��*� � �� �!�!�#��}�}���  �r=c��K�|jj|j�d|�d�|���d{���}|j�|j �dS7�'�w)zGet tasks from a listrKrL��paramsN�tasksr$)rrIr:r)s r� get_taskszClickUpAPI.get_tasksHs]����������}�}�o�V�G�9�E� 2��)� � �� �!�!�#��}�}��w�'�'�  �s�1A�A�(A�task_idc��K�|jj|j�d|��|���d{���}|j�|j �S7�$�w)z Update a task�/task/r6N�r �putr r&r'�rrTr:r)s r� update_taskzClickUpAPI.update_taskQsV����������}�}�o�V�G�9� -��)� � �� �!�!�#��}�}���  ���0A�A�%A� comment_textc���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a comment on a taskr\rV�/commentr6Nr7)rrTr\r:r;r)s r�create_task_commentzClickUpAPI.create_task_commentZsi����� �7��7�����)�)��}�}�o�V�G�9�H� 5��*� � �� �!�!�#��}�}���  �r=c��K�|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zStart time tracking for a taskrV�/timer6Nr7rYs r�start_time_entryzClickUpAPI.start_time_entryd�Z�������)�)��}�}�o�V�G�9�E� 2��*� � �� �!�!�#��}�}���  ���1A�A�%Ac��K�|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zStop time tracking for a taskrVrar6NrWrYs r�stop_time_entryzClickUpAPI.stop_time_entrymsX����������}�}�o�V�G�9�E� 2��)� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)z&Get custom fields accessible in a listrKz/fieldN�fieldsr$�rrIr)s r�get_accessible_custom_fieldsz'ClickUpAPI.get_accessible_custom_fieldsvsU����������}�}�o�V�G�9�F� 3� � �� �!�!�#��}�}��x�(�(�  �r3c��K�|jj|j�d|�d�d|i���d{���}|j�|j �S7�$�w)zCreate a checklist in a taskrVz /checklistr4r6Nr7)rrTr4r)s r�create_checklistzClickUpAPI.create_checklist~s^�������)�)��}�}�o�V�G�9�J� 7��$��*� � �� �!�!�#��}�}���  ���3A�A�%A� checklist_idc��K�|jj|j�d|��d|i���d{���}|j�|j �S7�$�w)zEdit a checklist� /checklist/r4r6NrW)rrnr4r)s r�edit_checklistzClickUpAPI.edit_checklist�sZ����������}�}�o�[��� 7��$��)� � �� �!�!�#��}�}���  �s�2A�A�%Ac��K�|jj|j�d|����d{���}|j�|j �S7�$�w)zDelete a checklistrpN�r �deleter r&r')rrnr)s r�delete_checklistzClickUpAPI.delete_checklist�sJ�������+�+�t�}�}�o�[���,W�X�X���!�!�#��}�}���Y���.A�A�%Ac���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate an item in a checklistr4rpz/checklist_itemr6Nr7)rrnr4r:r;r)s r�create_checklist_itemz ClickUpAPI.create_checklist_item�si������'��'�����)�)��}�}�o�[���o� F��*� � �� �!�!�#��}�}���  �r=c��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet all tags in a spacer@�/tagN�tagsr$rCs r�get_space_tagszClickUpAPI.get_space_tags�sO���������D�M�M�?�'�(��4�)P�Q�Q���!�!�#��}�}��v�&�&�R�r3c���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a new tag in a spacer4r@rzr6Nr7rFs r�create_space_tagzClickUpAPI.create_space_tag�si������'��'�����)�)��}�}�o�W�X�J�d� 3��*� � �� �!�!�#��}�}���  �r=c��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet task watchersrV� /watchingN�watchersr$�rrTr)s r�get_task_watcherszClickUpAPI.get_task_watchers�sO���������D�M�M�?�&�� ��)S�T�T���!�!�#��}�}��z�*�*�U�r3� watcher_idc��K�|jj|j�d|�d�d|i���d{���}|j�|j �S7�$�w)zAdd a watcher to a taskrVr�r�r6Nr7)rrTr�r)s r�add_task_watcherzClickUpAPI.add_task_watcher�s_�������)�)��}�}�o�V�G�9�I� 6�� �+�*� � �� �!�!�#��}�}���  �rm� depends_on�dependency_typec���K�||d�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zAdd a dependency to a task.)r�r�rV� /dependencyr6Nr7)rrTr�r�r;r)s r�add_task_dependencyzClickUpAPI.add_task_dependency�sc����%�.� �����)�)�T�]�]�O�6�'��+�*V�]a�)�b�b���!�!�#��}�}���c���6A�A�%Ac��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet dependencies for a task.rVr�N� dependenciesr$r�s r�get_task_dependenciesz ClickUpAPI.get_task_dependencies�sO���������D�M�M�?�&�� ��)U�V�V���!�!�#��}�}��~�.�.�W�r3� comment_idc��K�|jj|j�d|����d{���}|j�|j �S7�$�w)zDelete a comment.� /comment/Nrs)rr�r)s r�delete_commentzClickUpAPI.delete_comment�sJ�������+�+�t�}�}�o�Y�z�l�,S�T�T���!�!�#��}�}���U�rvc��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet comments for a task.rVr^N�commentsr$r�s r� get_commentszClickUpAPI.get_comments�sO���������D�M�M�?�&�� ��)R�S�S���!�!�#��}�}��z�*�*�T�r3c���K�d|i|�}|jj|j�d|��|���d{���}|j�|j �S7�$�w)zUpdate a comment.r\r�r6NrW)rr�r\r:r;r)s r�update_commentzClickUpAPI.update_comment�s\����� �7��7�������D�M�M�?�)�J�<�)P�W[��\�\���!�!�#��}�}���]�r�� dependency_idc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)z Remove a dependency from a task.rVz /dependency/Nrs)rrTr�r)s r�remove_task_dependencyz!ClickUpAPI.remove_task_dependency�sR�������+�+�t�}�}�o�V�G�9�L�Yf�Xg�,h�i�i���!�!�#��}�}���j�rdc��K�|jj|j�d���d{���}|j�|j �dS7�'�w)z3Get information about the currently authorized user�/userN�userr$r(s r�get_authorized_userzClickUpAPI.get_authorized_user�sI���������D�M�M�?�%�)@�A�A���!�!�#��}�}��v�&�&�B�r+c���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a folder in a spacer4r@z/folderr6Nr7rFs r� create_folderzClickUpAPI.create_folder�si������'��'�����)�)��}�}�o�W�X�J�g� 6��*� � �� �!�!�#��}�}���  �r=c���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)z2Create a list directly in a space without a folderr4r@rAr6Nr7rFs r�create_folderless_listz!ClickUpAPI.create_folderless_list�rHr=c���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a goal in a teamr4r.z/goalr6Nr7r9s r� create_goalzClickUpAPI.create_goalrNr=�goal_idc���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a key result for a goalr4z/goal/z /key_resultr6Nr7)rr�r4r:r;r)s r�create_key_resultzClickUpAPI.create_key_result si������'��'�����)�)��}�}�o�V�G�9�K� 8��*� � �� �!�!�#��}�}���  �r=�emailr:c���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zInvite a guest to workspacer�r.z/guestr6Nr7�rr,r�r:r;r)s r� invite_guestzClickUpAPI.invite_guestsi������)�&�)�����)�)��}�}�o�V�G�9�F� 3��*� � �� �!�!�#��}�}���  �r=c��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet members of a taskrV�/memberN�membersr$r�s r�get_task_memberszClickUpAPI.get_task_members �U����������}�}�o�V�G�9�G� 4� � �� �!�!�#��}�}��y�)�)�  �r3c��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet members of a listrKr�Nr�r$ris r�get_list_memberszClickUpAPI.get_list_members(r�r3c��K�|jj|j�d|�d���d{���}|j�|j �dS7�'�w)zGet custom roles in a workspacer.z /customRolesN�rolesr$r1s r�get_custom_roleszClickUpAPI.get_custom_roles0sU����������}�}�o�V�G�9�L� 9� � �� �!�!�#��}�}��w�'�'�  �r3�pagec���K�|jj|j�d|�d�d|i���d{���}|j�|j �dS7�'�w)zGet task templatesr.z /taskTemplater�rPN� templatesr$)rr,r�r)s r�get_task_templateszClickUpAPI.get_task_templates8sa����������}�}�o�V�G�9�M� :��D�>�)� � �� �!�!�#��}�}��{�+�+�  �s�3A�A�(A� template_idc���K�|jj|j�d|�d|��d|i���d{���}|j�|j �S7�$�w)zCreate a task from a templaterKz/taskTemplate/r4r6Nr7)rrIr�r4r)s r�create_task_from_templatez$ClickUpAPI.create_task_from_templateAsb�������)�)��}�}�o�V�G�9�N�;�-� H��$��*� � �� �!�!�#��}�}���  �s�5A�A�%AN� start_date�end_datec��,K�|j�D��cic]\}}||�� }}}|r||d<|r||d<|jj|j�d|�d�|���d{���}|j �|j �dScc}}w7�-�w)z$Get time entries within a date ranger�r�r.� /time_entriesrPNr;)�itemsr r%r r&r') rr,r�r�r:�k�vrQr)s r�get_time_entrieszClickUpAPI.get_time_entriesJs�����#)�<�<�>�2�>�4�1�a�!�Q�$�>��2� �#-�F�<� � �!)�F�:� �������}�}�o�V�G�9�M� :��)� � �� �!�!�#��}�}��v�&�&��3�  �s�B� B �AB�$B�%.B�timer_idc���K�|jj|j�d|�d|�d���d{���}|j�|j �dS7�'�w)zGet time entry historyr.�/time_entries/z/historyNr;r$�rr,r�r)s r�get_time_entry_historyz!ClickUpAPI.get_time_entry_historyXs[����������}�}�o�V�G�9�N�8�*�H� M� � �� �!�!�#��}�}��v�&�&�  �s�2A�A�(A� time_entry_idc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zGet a single time entryr.r�Nr$�rr,r�r)s r�get_single_time_entryz ClickUpAPI.get_single_time_entry`sT����������}�}�o�V�G�9�N�=�/� J� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d���d{���}|j�|j �S7�$�w)z Get currently running time entryr.z/time_entries/currentNr$r1s r�get_running_time_entryz!ClickUpAPI.get_running_time_entryhsQ����������}�}�o�V�G�9�,A� B� � �� �!�!�#��}�}���  ���/A�A�%Ac��K�|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a time entryr.r�r6Nr7�rr,r:r)s r�create_time_entryzClickUpAPI.create_time_entrypsZ�������)�)��}�}�o�V�G�9�M� :��*� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d|��|���d{���}|j�|j �S7�$�w)zUpdate a time entryr.r�r6NrW)rr,r�r:r)s r�update_time_entryzClickUpAPI.update_time_entryys\����������}�}�o�V�G�9�N�8�*� E��)� � �� �!�!�#��}�}���  �rmc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zDelete a time entryr.r�Nrsr�s r�delete_time_entryzClickUpAPI.delete_time_entry�sV�������+�+��}�}�o�V�G�9�N�=�/� J� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zStart a time entry (v2)r.z/time_entries/start/Nr7r�s r�start_time_entry_v2zClickUpAPI.start_time_entry_v2�sW�������)�)��}�}�o�V�G�9�,@�� � K� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d���d{���}|j�|j �S7�$�w)zStop current time entry (v2)r.z/time_entries/stopNr7r1s r�stop_time_entry_v2zClickUpAPI.stop_time_entry_v2�sS�������)�)��}�}�o�V�G�9�,>� ?� � �� �!�!�#��}�}���  �r�c��K�|jj|j�d|�d���d{���}|j�|j �S7�$�w)zGet all tags from time entriesr.�/time_entries/tagsNr$r1s r�get_time_entry_tagszClickUpAPI.get_time_entry_tags�sQ����������}�}�o�V�G�9�,>� ?� � �� �!�!�#��}�}���  �r��time_entry_idsr{c���K�||d�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zAdd tags to time entries�r�r{r.r�r6Nr7�rr,r�r{r;r)s r�add_tags_to_time_entriesz#ClickUpAPI.add_tags_to_time_entries�sl����-�� �����)�)��}�}�o�V�G�9�,>� ?��*� � �� �!�!�#��}�}���  �r�c���K�||d�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zRemove tags from time entriesr�r.r�rPNrsr�s r�remove_tags_from_time_entriesz(ClickUpAPI.remove_tags_from_time_entries�sl����-�� �����+�+��}�}�o�V�G�9�,>� ?��,� � �� �!�!�#��}�}���  �r��new_name�tag_bg�tag_fgc���K�||||d�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)z"Change tag names from time entries)r4r�r�r�r.r�r6NrW)rr,r4r�r�r�r;r)s r�update_time_entry_tagz ClickUpAPI.update_time_entry_tag�sp����� ���  �� ������}�}�o�V�G�9�,>� ?��)� � �� �!�!�#��}�}���  ���8A!�A�%A!�guest_idc��K�|jj|j�d|�d|��|���d{���}|j�|j �S7�$�w)zEdit a guest on workspacer.�/guest/r6NrW)rr,r�r:r)s r� edit_guestzClickUpAPI.edit_guest�s\����������}�}�o�V�G�9�G�H�:� >��)� � �� �!�!�#��}�}���  �rmc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zRemove a guest from workspacer.r�Nrs�rr,r�r)s r� remove_guestzClickUpAPI.remove_guest��V�������+�+��}�}�o�V�G�9�G�H�:� >� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zGet guest informationr.r�Nr$r�s r� get_guestzClickUpAPI.get_guest�sT����������}�}�o�V�G�9�G�H�:� >� � �� �!�!�#��}�}���  �rd�permission_levelc���K�d|i}|jj|j�d|�d|��|���d{���}|j�|j �S7�$�w)zAdd a guest to a taskr�rVr�r6Nr7)rrTr�r�r;r)s r�add_guest_to_taskzClickUpAPI.add_guest_to_task��i����"�$4�5�����)�)��}�}�o�V�G�9�G�H�:� >��*� � �� �!�!�#��}�}���  �r=c��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zRemove a guest from a taskrVr�Nrs)rrTr�r)s r�remove_guest_from_taskz!ClickUpAPI.remove_guest_from_task�r�rdc���K�d|i}|jj|j�d|�d|��|���d{���}|j�|j �S7�$�w)zAdd a guest to a listr�rKr�r6Nr7)rrIr�r�r;r)s r�add_guest_to_listzClickUpAPI.add_guest_to_list�r�r=c��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zRemove a guest from a listrKr�Nrs)rrIr�r)s r�remove_guest_from_listz!ClickUpAPI.remove_guest_from_listr�rd� folder_idc���K�d|i}|jj|j�d|�d|��|���d{���}|j�|j �S7�$�w)zAdd a guest to a folderr��/folder/r�r6Nr7)rrr�r�r;r)s r�add_guest_to_folderzClickUpAPI.add_guest_to_folder si����"�$4�5�����)�)��}�}�o�X�i�[���z� B��*� � �� �!�!�#��}�}���  �r=c��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zRemove a guest from a folderrr�Nrs)rrr�r)s r�remove_guest_from_folderz#ClickUpAPI.remove_guest_from_foldersV�������+�+��}�}�o�X�i�[���z� B� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a team viewr.z/viewr6Nr7r�s r�create_team_viewzClickUpAPI.create_team_viewrcrd� member_idsc���K�||d�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a team (user group))r4r r.�/groupr6Nr7)rr,r4r r;r)s r�create_team_groupzClickUpAPI.create_team_group'sk�����$� �����)�)��}�}�o�V�G�9�F� 3��*� � �� �!�!�#��}�}���  �r�c��K�|jj|j�d|�d���d{���}|j�|j �S7�$�w)zGet teams (user groups)r.r Nr$r1s r�get_team_groupszClickUpAPI.get_team_groups4sP����������}�}�o�V�G�9�F� 3� � �� �!�!�#��}�}���  �r��group_idc��K�|jj|j�d|��|���d{���}|j�|j �S7�$�w)zUpdate a team (user group)�/group/r6NrW)rrr:r)s r�update_team_groupzClickUpAPI.update_team_group<sV����������}�}�o�W�X�J� /��)� � �� �!�!�#��}�}���  �r[c��K�|jj|j�d|����d{���}|j�|j �S7�$�w)zDelete a team (user group)rNrs)rrr)s r�delete_team_groupzClickUpAPI.delete_team_groupEsP�������+�+��}�}�o�W�X�J� /� � �� �!�!�#��}�}���  �rv� workspace_idc��K�|jj|j�d|�d���d{���}|j�|j �S7�$�w)zGet workspace seatsr.z/seatsNr$)rrr)s r�get_workspace_seatszClickUpAPI.get_workspace_seatsNsP����������}�}�o�V�L�>�� 8� � �� �!�!�#��}�}���  �r�c��K�|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zGet task's time in statusrVz/time_in_statusrPNr$rYs r�get_task_time_in_statusz"ClickUpAPI.get_task_time_in_statusWsX����������}�}�o�V�G�9�O� <��)� � �� �!�!�#��}�}���  �rd�task_idsc���K�dj|�}|jj|j�d|��|���d{���}|j �|j �S7�$�w)zGet bulk tasks' time in status�,z/task/bulk_time_in_status/rPN)�joinr r%r r&r')rrr:� task_ids_strr)s r�get_bulk_tasks_time_in_statusz(ClickUpAPI.get_bulk_tasks_time_in_status`se�����x�x��)� �������}�}�o�7� �~� F��)� � �� �!�!�#��}�}���  �s�AA*�A(�%A*c��K�|jj|j�d|�d���d{���}|j�|j �S7�$�w)zGet shared hierarchyr.z/sharedNr$r1s r�get_shared_hierarchyzClickUpAPI.get_shared_hierarchyksP����������}�}�o�V�G�9�G� 4� � �� �!�!�#��}�}���  �r�c���K�d|i|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zInvite a user to a workspacer�r.r�r6Nr7r�s r� invite_userzClickUpAPI.invite_usertsi������)�&�)�����)�)��}�}�o�V�G�9�E� 2��*� � �� �!�!�#��}�}���  �r=�user_idc��K�|jj|j�d|�d|��|���d{���}|j�|j �S7�$�w)zEdit a user in a workspacer.�/user/r6NrW)rr,r$r:r)s r� edit_userzClickUpAPI.edit_user~s\����������}�}�o�V�G�9�F�7�)� <��)� � �� �!�!�#��}�}���  �rmc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zRemove a user from a workspacer.r&Nrs�rr,r$r)s r� remove_userzClickUpAPI.remove_user�sV�������+�+��}�}�o�V�G�9�F�7�)� <� � �� �!�!�#��}�}���  �rdc��K�|jj|j�d|�d|����d{���}|j�|j �S7�$�w)zGet user informationr.r&Nr$r)s r�get_userzClickUpAPI.get_user�sT����������}�}�o�V�G�9�F�7�)� <� � �� �!�!�#��}�}���  �rd�endpoint�eventsc���K�||d�|�}|jj|j�d|�d�|���d{���}|j�|j �S7�$�w)zCreate a webhook)r-r.r.�/webhookr6Nr7)rr,r-r.r:r;r)s r�create_webhookzClickUpAPI.create_webhook�su����!�� �� �� ���)�)��}�}�o�V�G�9�H� 5��*� � �� �!�!�#��}�}���  �r�c��K�|jj|j�d|�d���d{���}|j�|j �S7�$�w)z Get webhooksr.r0Nr$r1s r� get_webhookszClickUpAPI.get_webhooks�sP����������}�}�o�V�G�9�H� 5� � �� �!�!�#��}�}���  �r�� webhook_idc��K�|jj|j�d|��|���d{���}|j�|j �S7�$�w)zUpdate a webhook� /webhook/r6NrW)rr4r:r)s r�update_webhookzClickUpAPI.update_webhook�sV����������}�}�o�Y�z�l� 3��)� � �� �!�!�#��}�}���  �r[c��K�|jj|j�d|����d{���}|j�|j �S7�$�w)zDelete a webhookr6Nrs)rr4r)s r�delete_webhookzClickUpAPI.delete_webhook�sP�������+�+��}�}�o�Y�z�l� 3� � �� �!�!�#��}�}���  �rvc��K�|S�w)zAsync context manager entry�)rs r� __aenter__zClickUpAPI.__aenter__�s ����� �s�c��TK�|jj��d{���y7��w)zAsync context manager exitN)r �aclose)r�exc_type�exc_val�exc_tbs r� __aexit__zClickUpAPI.__aexit__�s�����k�k� � �"�"�"�s �(�&�()� waiting_on)r)NN)r!r )r!N)[�__name__� __module__� __qualname__�strrrrrrr*r2r<rDrGrMrSrZr_rbrfrjrlrqrurxr|r~r�r��dictr�r�r��listr�r�r�r�r�r�r�r�r�r�r�r��intr�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr rrrrrrr!r#r'r*r,r1r3r7r9r<rBr;rrr r sg ����� �(��d�3��8�n�!5�(� )��)� �#��S��(��(� �#��S�����C��(�s�(�������C���c���S��)�#�)��c�������C���3�� ���3��'�S�'� �s��#��+�s�+� �c��s�����#��X[��os��/�3�/�4�/� �s��t�� +�#�+�$�+� �s��#��TX���C����PT�� '� �C��s���S�������C���s��#���#��c��S��T�RU�WZ�RZ�^��*�c�*�d�4��S��>�6J�*�*�c�*�d�4��S��>�6J�*�(�c�(�d�4��S��>�6J�(�,��,�3�,�t�D�QT�VY�QY�N�G[�,��s����TW�� '�c� '�x��}� '�_g�hk�_l� '�@C� '�HL�MQ�RU�WZ�RZ�M[�H\� '�'�C�'�3�'�4�PT�UX�Z]�U]�P^�K_�'��3��s��t�TW�Y\�T\�~���C��D��c��N���s��c��d�3�PS�8�n���s��c��S��UY�Z]�_b�Zb�Uc���s��3��4�PS�UX�PX�>��������S�RU�X�������S�#�X�������c�3�h��� �c� �4�PS�9� �\`�ae�fi�kn�fn�ao�\p� �uy�z}�@C�{C�vD� � �3� �PT�UX�PY� �ae�fj�kn�ps�ks�ft�au� �z~�@C�EH�@H�{I� � �3� �c� �S� �Z]� �gj� �os�tw�y|�t|�o}� � ���s��c��d�SV�X[�S[�n���#�����c�3�h����s��c��d�3��8�n���s��c��UX��]a�be�gj�bj�]k���C��3��4�PS�UX�PX�>���s��c��UX��]a�be�gj�bj�]k���C��3��4�PS�UX�PX�>���3��#��Y\��ae�fi�kn�fn�ao�����s��t�TW�Y\�T\�~���c��S��T�#�s�(�^�� �s� �#� �4�PS�9� �Y]�^a�cf�^f�Yg� ��S��T�#�s�(�^�����s��t�C�QT�H�~������S�#�X����c��d�3��8�n���S��C��D�QT�VY�QY�N���D��I��QT��Y]�^a�cf�^f�Yg���#��$�s�C�x�.�����S��C��D�QT�VY�QY�N���s��S��C��D�QT�VY�QY�N�����s��t�C��H�~���c��C��D��c��N�� �C� �3� ��S� � �]`� �ei�jm�or�jr�es� ��#��$�s�C�x�.���s��c��d�3�PS�8�n���s��t�C��H�~���#rr )r�typingrrrrrr r;rr�<module>rLs�� �3�3�A #�A #r

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/noah-vh/mcp-server-clickup'

If you have feedback or need assistance with the MCP directory API, please join our Discord server