{"id":987522415,"date":"2026-01-29T11:19:44","date_gmt":"2026-01-29T11:19:44","guid":{"rendered":"https:\/\/www.teamogy.com\/?p=987522415"},"modified":"2026-01-29T11:19:47","modified_gmt":"2026-01-29T11:19:47","slug":"programmatic-user-secure-api-access-in-teamogy","status":"publish","type":"post","link":"https:\/\/www.teamogy.com\/es\/manual\/programmatic-user-secure-api-access-in-teamogy\/","title":{"rendered":"Programmatic User \u2013 Secure API Access in Teamogy"},"content":{"rendered":"<p>[et_pb_section fb_built=\u00bb1&#8243; _builder_version=\u00bb4.16&#8243; global_colors_info=\u00bb{}\u00bb][et_pb_row column_structure=\u00bb3_4,1_4&#8243; module_class=\u00bb et_pb_row_fullwidth\u00bb _builder_version=\u00bb4.16&#8243; width=\u00bb89%\u00bb width_tablet=\u00bb80%\u00bb width_phone=\u00bb\u00bb width_last_edited=\u00bbon|desktop\u00bb max_width=\u00bb89%\u00bb max_width_tablet=\u00bb80%\u00bb max_width_phone=\u00bb\u00bb max_width_last_edited=\u00bbon|desktop\u00bb custom_padding=\u00bb27px|0px|0|0|false|false\u00bb make_fullwidth=\u00bbon\u00bb global_colors_info=\u00bb{}\u00bb][et_pb_column type=\u00bb3_4&#8243; _builder_version=\u00bb4.16&#8243; custom_padding=\u00bb|||\u00bb global_colors_info=\u00bb{}\u00bb custom_padding__hover=\u00bb|||\u00bb][et_pb_text _builder_version=\u00bb4.25.1&#8243; custom_margin=\u00bb|40px|40px|||\u00bb custom_padding=\u00bb||2px|||\u00bb global_colors_info=\u00bb{}\u00bb]<\/p>\n<h2>Programmatic User \u2013 a Secure way to Work with the API<\/h2>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb4.27.5&#8243; custom_margin=\u00bb|40px|33px|||\u00bb hover_enabled=\u00bb0&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243;]<\/p>\n<h5>Programmatic User and API Access<\/h5>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb4.27.5&#8243; text_font=\u00bb|300|||||||\u00bb ul_font=\u00bb||||||||\u00bb custom_margin=\u00bb|40px|40px|||\u00bb hover_enabled=\u00bb0&#8243; ul_text_shadow_style=\u00bbpreset3&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243;]<\/p>\n<p class=\"p1\">External system integrations with Teamogy are implemented using the Teamogy API.<br \/><strong>Access to the API is secured via an API token (API key).<\/strong><\/p>\n<p class=\"p1\">Each API token is always associated with a specific user in Teamogy and <strong>inherits all permissions assigned to that user.<\/strong><br \/>From the system perspective, all API operations are processed in the same way as actions performed manually by the associated user in the Teamogy application.<\/p>\n<p class=\"p1\"><strong>For this reason, the choice of the user under which the API token is generated is critical.<\/strong><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb4.27.5&#8243; custom_margin=\u00bb|40px|32px|||\u00bb hover_enabled=\u00bb0&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243;]<\/p>\n<div class=\"flex flex-grow flex-col max-w-full\">\n<div data-message-author-role=\"assistant\" data-message-id=\"03a1d6fc-f64d-48bc-885b-989063a67c4a\" dir=\"auto\" class=\"min-h-[20px] text-message flex flex-col items-start whitespace-pre-wrap break-words [.text-message+&amp;]:mt-5 juice:w-full juice:items-end overflow-x-auto gap-2\">\n<div class=\"flex w-full flex-col gap-1 juice:empty:hidden juice:first:pt-[3px]\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<h5>Why not use a Personal User Account<\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"mt-1 flex gap-3 empty:hidden juice:-ml-3\">\n<div class=\"items-center justify-start rounded-xl p-1 flex\">\n<div class=\"flex items-center vc-button-group vc-button-group-34\">\n<div class=\"flex items-center pb-0.5 juice:pb-0\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb4.27.5&#8243; text_font=\u00bb|300|||||||\u00bb ul_font=\u00bb||||||||\u00bb min_height=\u00bb71px\u00bb custom_margin=\u00bb|40px|9px|||\u00bb hover_enabled=\u00bb0&#8243; ul_text_shadow_style=\u00bbpreset3&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243;]<\/p>\n<p class=\"p1\">API tokens inherit the full permission set of the user they are linked to.<br \/>Therefore, <strong>personal user accounts<\/strong> (e.g. company owners, accountants, administrators) <strong>are not suitable <\/strong>for <strong>API integrations.<\/strong><\/p>\n<p class=\"p1\"><strong>Using a personal user account for API access introduces the following risks:<\/strong><\/p>\n<ol class=\"ul1\">\n<li class=\"li1\">The API token <strong>inherits permissions<\/strong> that are often broader than required for the integration.<\/li>\n<li class=\"li1\">The token holder (for example, an external developer or integration provider) <strong>may gain access to all data<\/strong> available to the personal user account.<\/li>\n<li class=\"li1\">System activity <strong>is no longer clearly distinguishable between actions performed<\/strong> by a human user and actions executed by an automated integration.<\/li>\n<li class=\"li1\"><strong>Token management<\/strong> becomes complex in cases such as role changes, user deactivation, or security incidents.<\/li>\n<\/ol>\n<p class=\"p1\">For security and operational reasons, <strong>the use of personal user accounts for API integrations is strongly discouraged.<\/strong><br \/><strong>Personal user accounts are not intended for API communication.<\/strong><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb4.27.5&#8243; custom_margin=\u00bb30px|40px|33px|||\u00bb custom_padding=\u00bb0px|||||\u00bb hover_enabled=\u00bb0&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243;]<\/p>\n<div class=\"flex flex-grow flex-col max-w-full\">\n<div data-message-author-role=\"assistant\" data-message-id=\"03a1d6fc-f64d-48bc-885b-989063a67c4a\" dir=\"auto\" class=\"min-h-[20px] text-message flex flex-col items-start whitespace-pre-wrap break-words [.text-message+&amp;]:mt-5 juice:w-full juice:items-end overflow-x-auto gap-2\">\n<div class=\"flex w-full flex-col gap-1 juice:empty:hidden juice:first:pt-[3px]\">\n<div class=\"markdown prose w-full break-words dark:prose-invert light\">\n<h5>Recommended Approach: Programmatic user<\/h5>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb4.27.5&#8243; text_font=\u00bb|300|||||||\u00bb ul_font=\u00bb||||||||\u00bb custom_margin=\u00bb|40px|40px|||\u00bb hover_enabled=\u00bb0&#8243; ul_text_shadow_style=\u00bbpreset3&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243;]<\/p>\n<p class=\"p1\">Teamogy therefore supports the use of a <strong>Programmatic User.<\/strong><\/p>\n<p class=\"p1\"><strong>A programmatic user is a dedicated technical account intended exclusively for API access and system integrations.<\/strong><\/p>\n<p class=\"p2\"><strong>Characteristics of a Programmatic User<\/strong><\/p>\n<ol class=\"ul1\">\n<li class=\"li1\"><strong>Fully separated<\/strong> from personal user accounts.<\/li>\n<li class=\"li1\"><strong>Hidden<\/strong> from standard Teamogy usage (not available in user selections, lists, or overviews).<\/li>\n<li class=\"li1\">Assigned <strong>explicitly defined permissions<\/strong> limited to the scope required by the integration.<\/li>\n<li class=\"li1\"><strong>API tokens<\/strong> generated under a programmatic user <strong>are<\/strong> <strong>easy to manage, control, and audit.<\/strong><\/li>\n<\/ol>\n<p class=\"p1\"><strong>This approach follows the principle of least privilege:<\/strong><\/p>\n<p class=\"p1\">An integration should be granted only the permissions necessary for its intended functionality.<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb4.27.5&#8243; text_font=\u00bb|300|||||||\u00bb ul_font=\u00bb||||||||\u00bb custom_margin=\u00bb|40px|40px|||\u00bb hover_enabled=\u00bb0&#8243; ul_text_shadow_style=\u00bbpreset3&#8243; global_colors_info=\u00bb{}\u00bb sticky_enabled=\u00bb0&#8243; custom_padding=\u00bb||0px|||\u00bb]<\/p>\n<p><strong>Click to read more<\/strong> &#8211; <span style=\"text-decoration: underline\"><a href=\"https:\/\/www.teamogy.com\/en\/manual\/programmatic-user-setup-and-configuration\/\" target=\"_blank\" rel=\"noopener\" title=\"How to create Programmatic user\">How to create a Programmatic user<\/a><\/span><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\u00bb3.26.5&#8243; text_font=\u00bb|300|||||||\u00bb custom_margin=\u00bb-14px|40px||||\u00bb custom_padding=\u00bb12px|0px||||\u00bb text_font_last_edited=\u00bboff|desktop\u00bb global_module=\u00bb14686&#8243; saved_tabs=\u00bball\u00bb global_colors_info=\u00bb{}\u00bb]<\/p>\n<p><span style=\"color: #f26522\"><b>Get in Touch<\/b><\/span><\/p>\n<p><span style=\"color: #000000\">If you have problem or need further assistance, do not hesitate contact Teamogy Support. Use online chat (inside Teamogy or everywhere on\u00a0<span style=\"text-decoration: underline;color: #0c71c3\"><a href=\"https:\/\/www.teamogy.com\" style=\"color: #0c71c3;text-decoration: underline\">www.Teamogy.com<\/a><\/span> in the lower right corner) and you will get prompt reply.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=\u00bb1_4&#8243; _builder_version=\u00bb4.16&#8243; custom_padding=\u00bb|||\u00bb global_colors_info=\u00bb{}\u00bb custom_padding__hover=\u00bb|||\u00bb][et_pb_sidebar area=\u00bbet_pb_widget_area_1&#8243; _builder_version=\u00bb4.16&#8243; header_font=\u00bb||||||||\u00bb header_font_size=\u00bb30px\u00bb body_font=\u00bb||||||||\u00bb body_font_size=\u00bb14px\u00bb body_line_height=\u00bb1.6em\u00bb global_colors_info=\u00bb{}\u00bb][\/et_pb_sidebar][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Programmatic User \u2013 a Secure way to Work with the APIProgrammatic User and API AccessExternal system integrations with Teamogy are implemented using the Teamogy API.Access to the API is secured via an API token (API key). Each API token is always associated with a specific user in Teamogy and inherits all permissions assigned to that [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[291],"tags":[],"class_list":["post-987522415","post","type-post","status-publish","format-standard","hentry","category-manual"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/posts\/987522415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/comments?post=987522415"}],"version-history":[{"count":5,"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/posts\/987522415\/revisions"}],"predecessor-version":[{"id":987522431,"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/posts\/987522415\/revisions\/987522431"}],"wp:attachment":[{"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/media?parent=987522415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/categories?post=987522415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.teamogy.com\/es\/wp-json\/wp\/v2\/tags?post=987522415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}