{"openapi":"3.0.0","info":{"title":"Account Operations - Team admin","description":"The official SeaTable API Reference (OpenAPI 3.0).","version":"6.1"},"servers":[{"url":"https://{server}","variables":{"server":{"default":"cloud.seatable.io"}}}],"x-readme":{"explorer-enabled":true,"metrics-enabled":false,"proxy-enabled":false},"tags":[{"name":"Users","description":"Manage users"},{"name":"Bases","description":"Manage bases"},{"name":"Groups","description":"Manage groups"},{"name":"Sharing Links","description":"Manage sharing links"},{"name":"Info & Settings","description":"Retrieve team info and update team settings"},{"name":"Activities & Logs","description":"Retrieve team activities and logs"},{"name":"Statistics","description":"Retrieve statistics about system activities"},{"name":"Customizing","description":"Customize team appearance"},{"name":"SAML","description":"Manage SAML settings"}],"components":{"securitySchemes":{"AccountTokenAuth":{"type":"http","scheme":"bearer","description":"This is the [Account-Token](/reference/authentication)."}},"parameters":{"page":{"name":"page","description":"The page number you want to start showing the entries. If no value is provided, 1 will be used.","in":"query","schema":{"type":"integer","minimum":1},"example":1,"required":false},"per_page":{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1},"description":"The number of results that should be returned. If no value is provided, 25 results will be returned.","example":25,"required":false},"query_base_name":{"name":"query","in":"query","schema":{"type":"string"},"description":"Exact name or a part of the name of the base, case insensitive.","example":"Example"},"dtable_uuid":{"name":"dtable_uuid","in":"query","schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"},"description":"The unique identifier of a base.","example":"5c264e76-0e5a-448a-9f34-580b551364ca"},"ignore_asset":{"name":"ignore_asset","in":"query","schema":{"type":"boolean"},"example":false,"description":"Set this to `true` to export the base without assets. Default is `false`."},"login_status":{"name":"status","in":"query","schema":{"type":"string","enum":["success","failure"]},"example":"success","description":"Set this to `success` to only return successful logins. By default, all logins are returned."},"start":{"name":"start","in":"query","schema":{"type":"string","format":"date-time"},"description":"Start date in ISO format.","example":"2025-11-01T06:00:00+01:00","required":false},"end":{"name":"end","in":"query","schema":{"type":"string","format":"date-time"},"description":"End date in ISO format.","example":"2025-11-30T18:00:00+01:00","required":false},"operation_group":{"name":"operation_group","in":"query","schema":{"type":"string","enum":["user","group","base"]},"example":"user","description":"Filter by a specific operation group. By default, all operations are returned.","required":false},"group_by":{"name":"group_by","in":"query","schema":{"type":"string","enum":["owner","dtable_uuid"]},"required":true,"description":"Query by owner or Base","example":"owner"},"date":{"name":"date","in":"query","schema":{"type":"string"},"required":true,"description":"A date string in YYYY-MM-DD format","example":"2025-01-01"},"org_id":{"name":"org_id","in":"path","schema":{"type":"integer","minimum":1},"required":true,"description":"The ID of your team/organization. Numeric. Get it from [Get Team](/reference/getteaminfo). Contact your team admin, if you are not the admin.","example":1},"base_id":{"name":"base_id","in":"path","schema":{"type":"string"},"required":true,"description":"The ID of the base. Don't mix this up with the base_uuid!","example":"000"},"base_uuid":{"name":"base_uuid","in":"path","schema":{"type":"string","pattern":"^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$"},"required":true,"description":"The unique identifier of a base. Sometimes also called dtable_uuid.","example":"5c264e76-0e5a-448a-9f34-580b551364ca"},"external_link_token":{"name":"external_link_token","description":"The token of the external link.","in":"path","schema":{"type":"string"},"required":true,"example":"d6d006b319ca4d2aa060"},"view_external_link_token":{"name":"view_external_link_token","description":"The token of the view external link.","in":"path","schema":{"type":"string"},"required":true,"example":"d6d006b319ca4d2aa060"},"invite_link_token":{"name":"invite_link_token","description":"The token of the invite link.","in":"path","schema":{"type":"string","pattern":"^[0-9a-f]{20}$"},"required":true,"example":"0366b8995d7f47d8ae3c"},"group_id":{"name":"group_id","in":"path","schema":{"type":"integer","minimum":1},"required":true,"description":"The ID of the group to query. Can be retrieved from the call [List Groups in Your Team](/reference/listgroups-1).","example":"1"},"user_id":{"name":"user_id","description":"The unique `user_id` in the form ...@auth.local. This is not the email address of the user.","in":"path","schema":{"type":"string","pattern":"^[a-f0-9]{32}(@auth.local)$"},"required":true,"example":"123456789f1e4c8d8e1c31415867317c@auth.local"},"app_name":{"name":"app_name","description":"The name of your app. Every API-Token has a name to identify the purpose. The name of the app must be unique for every base.","in":"path","schema":{"type":"string"},"required":true,"example":"My App"}},"schemas":{"team_admin_permission":{"type":"string","enum":["","r","rw"]},"team_admin_password":{"type":"string","description":"User's password to login.","example":"pw12345678"},"team_admin_expire_days":{"type":"integer","example":20},"team_admin_group_name":{"type":"string","description":"The name of the group.","example":"Sample Group","required":["group_name"]},"team_admin_group_owner":{"type":"string","description":"The `user_id` of the owner of the group. Optional. If left blank, the newly added group will not be visible to anyone but still operatable.","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6@auth.local"},"team_admin_user_id":{"type":"string","description":"The unique `user_id` in the form ...@auth.local. This is not the email address of the user.","example":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6@auth.local"},"team_admin_email":{"type":"string","description":"User's contact email to login.","example":"mai@example.com"},"team_admin_name":{"type":"string","description":"User's full name.","example":"Mai Thai"},"team_admin_contact_email":{"type":"string","description":"User's contact email.","example":"mai@example.com"},"team_admin_is_active":{"type":"boolean","description":"Determines the current status of this account. An inactive account can not login anymore."},"team_admin_is_staff":{"type":"boolean","description":"Determines if the user account has access to the system administration area."},"team_admin_with_workspace":{"type":"boolean","description":"If a workspace should be automatically created for the user. Optional. `false` by default.","example":true},"team_admin_id_in_org":{"type":"string","description":"The team ID of the user, could be a student's ID or employee ID. String.","example":"Student001"},"team_admin_quota_total":{"type":"integer","description":"Update their total quota in MB.","example":3},"team_admin_group_id":{"type":"string","description":"The ID of the group you'd like to move.","example":"1"},"anchor_group_id":{"type":"string","description":"The ID of the group where you'd like your group to be moved under.","example":"1"},"to_last":{"type":"boolean","description":"Whether you'd like to move your group to the bottom of the list (`true`). `false` by default.","example":true},"enable_force_2fa":{"type":"boolean","description":"if the 2-factor-authentication is forced (`true` or `false`).","example":true},"enable_force_sso_login":{"type":"boolean","description":"Whether login via SSO is enforced for all team members (`true` or `false`).","example":true},"enable_new_user_email":{"type":"boolean","description":"if newly added users will get a system email (`true` or `false`).","example":true},"enable_external_user_access_invite_link":{"type":"boolean","description":"if external users can access bases via invite links (`true` or `false`).","example":false},"enable_member_modify_name":{"type":"boolean","description":"if members are allowed to change their names (`true` or `false`).","example":false},"upload_file":{"type":"object","properties":{"file":{"type":"string","description":"The image you'd like to upload from your local drive. Only .jpg, .jpeg, .gif or .png are allowed.","format":"binary"}}},"new_org_name":{"type":"string","description":"The new name of your team.","example":"SeaTable GmbH"},"metadata_url":{"type":"string","description":"URL pointing to the metadata of your Identity Provider (IdP).","example":"https://<URL-of-your-idp>/metadata.yml"},"domain":{"type":"string","description":"Domain that should be connected to your SeaTable Team. Only email addresses with this domain will be redirected to your Identity Provider (IdP).","example":"example.com"},"idp_certificate":{"type":"string","description":"Provide the certificate from your IdP for this service.","example":"-----BEGIN CERTIFICATE-----xxxxxxxxxxxxxxxxxxxx-----END CERTIFICATE-----"}}},"paths":{"/api/v2.1/org/{org_id}/admin/users/":{"get":{"tags":["Users"],"summary":"List Users (Team)","operationId":"listTeamUsers","description":"List all the users in the organization, or only the admins/non-admins.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"user_list":[{"email":"1234567a6569491ba42905bf1647fd3f@auth.local","name":"Jasmin Tee","contact_email":"jasmin@example.com","quota_usage":0,"quota_total":-2,"id_in_org":"","last_login":"2021-03-02T12:58:29+00:00","id":123,"is_active":true,"ctime":"2020-11-18T12:30:31+00:00","self_usage":0,"quota":-2,"is_org_admin":true}]}}}}}},"post":{"tags":["Users"],"summary":"Add User","operationId":"addUser","description":"Add a new user in the team (organization).\n\nIn the request body, define the new user's `email`, `name` and `password`. \n\nSeaTable does not automatically create a workspace for a newly added user: the `with_workspace` parameter is `false` by default. If you would like your new user to have a workspace when they are added (so that they can start operating workspaces and bases right away with API requests), make sure you set `true` for this parameter.\n\nOtherwise, their workspace will only be created when they login to the SeaTable web interface for the first time.","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"email":{"$ref":"#/components/schemas/team_admin_email"},"name":{"$ref":"#/components/schemas/team_admin_name"},"password":{"$ref":"#/components/schemas/team_admin_password"},"with_workspace":{"$ref":"#/components/schemas/team_admin_with_workspace"}}}}}},"security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"is_active":{"type":"boolean"},"ctime":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"contact_email":{"type":"string"},"last_login":{"type":"string"},"self_usage":{"type":"integer"},"quota":{"type":"integer"},"workspace_id":{"type":"integer"}}},"example":{"id":125,"is_active":true,"ctime":"2021-03-02T13:02:46+00:00","name":"Mai Thai","email":"12345671bc384ab2b7adbec984948390@auth.local","contact_email":"mai@example.com","last_login":null,"self_usage":0,"quota":-2,"workspace_id":999}}}}}}},"/api/v2.1/org/{org_id}/admin/users/{user_id}/":{"get":{"tags":["Users"],"summary":"Get User","operationId":"getUser","description":"Get a user's details.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"},"contact_email":{"type":"string"},"quota_usage":{"type":"integer"},"quota_total":{"type":"integer"},"avatar_url":{"type":"string"},"id_in_org":{"type":"string"},"has_default_device":{"type":"boolean"},"is_force_2fa":{"type":"boolean"},"is_active":{"type":"boolean"},"is_org_admin":{"type":"boolean"}}},"example":{"email":"6196ab3dacef4e539ae8da4844b58a1f@auth.local","name":"John Doe","contact_email":"john.doe@example.org","quota_usage":0,"quota_total":-2,"avatar_url":"https://cloud.seatable.io/media/avatars/a/a/f01c6071928d63fd2837312e64d915/resized/256/70017f2bc5e0c9eeda31e8e401e2cbef.png","id_in_org":"","has_default_device":false,"is_force_2fa":true,"is_active":true,"is_org_admin":false}}}}}},"put":{"tags":["Users"],"summary":"Update User","operationId":"updateUser","description":"Update a user's details. See the parameter list for the detailed description of each entry.","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/team_admin_name"},"contact_email":{"$ref":"#/components/schemas/team_admin_contact_email"},"is_staff":{"$ref":"#/components/schemas/team_admin_is_staff"},"is_active":{"$ref":"#/components/schemas/team_admin_is_active"},"quota_total":{"$ref":"#/components/schemas/team_admin_quota_total"},"id_in_org":{"$ref":"#/components/schemas/team_admin_id_in_org"}}}}}},"security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"name":{"type":"string"},"contact_email":{"type":"string"},"quota_usage":{"type":"integer"},"quota_total":{"type":"integer"},"is_active":{"type":"boolean"},"id":{"type":"integer"},"ctime":{"type":"string"},"id_in_org":{"type":"string"},"last_login":{"type":"string"},"self_usage":{"type":"integer"},"quota":{"type":"integer"}}},"example":{"email":"23456789d1754bb4afa2c2cb7369d244@auth.local","name":"Stefan","contact_email":"test999@fun-mail.net","quota_usage":144328135,"quota_total":3000000,"is_active":true,"id":253,"ctime":"2020-11-18T12:43:22+00:00","id_in_org":"Student001","last_login":"2022-03-26T15:38:18+00:00","self_usage":144328135,"quota":3000000}}}}}},"delete":{"tags":["Users"],"summary":"Delete User","operationId":"deleteUser","description":"Delete a user by their `user_id` permanently. When you delete a user, their bases are automatically moved into the organization's trash bin.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/users/{user_id}/set-password/":{"put":{"tags":["Users"],"summary":"Reset User Password","operationId":"resetUserPassword","description":"Reset the password of a user and get a new password. The new password will be automatically sent to the user per email.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"new_password":"4nhCOEU3fl"}}}}}}},"/api/v2.1/org/{org_id}/admin/users/{user_id}/two-factor-auth/":{"put":{"tags":["Users"],"summary":"Enforce 2FA","operationId":"enforceTwofactor","description":"As the team administrator, you can force each team member to use 2-factor authentication (2FA).\n\nWhen the value of `force_2fa` is `true` in this request, the member will be requested to activate 2FA by scanning a QR code next time they log in. To cancel enforcing them to use 2FA, change the value to `false` and send this request again.\n\nThis request is to be distinguished from the next request, because cancelling the enforcement doesn't necessarily [Disable 2FA for A User in Team](/reference/disabletwofactor-1), which serves a different purpose.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"force_2fa":{"type":"boolean"}}}}}},"security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}},"delete":{"tags":["Users"],"summary":"Disable 2FA","operationId":"disableTwoFactor","description":"If a user in your team has lost their phone or deleted the authenticator App by accident, they cannot log in to SeaTable anymore if 2FA is enabled for them. In this case, you as the team administrator can disable 2FA for them.\nAgain, this is to be distinguished from the request [Enforce 2FA for A User in Team](/reference/enforcetwofactor-1) when you use `force_2fa = false`, which only cancels the enforcement of 2FA but doesn't necessarily disable it for them.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/dtables/":{"get":{"tags":["Bases"],"summary":"List Bases (Team)","operationId":"listBases","description":"List all the bases in the current organization.\n\nThe returned `id` value is the ID of the base, to be distinguished from the base's `base_uuid`. Details see the **SeaTable API Parameter Reference**.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"dtable_list":[{"id":158,"workspace_id":304,"uuid":"12345678-7e27-46a8-8b18-6cc6f3db2057","name":"Test base","created_at":"2020-11-18T12:31:29+00:00","updated_at":"2021-03-02T10:29:03+00:00","color":null,"text_color":null,"icon":null,"is_encrypted":false,"in_storage":true,"org_id":1,"email":"c882391bfa0144c4af64e4e0cde50b6c@auth.local","group_id":-1,"owner":"Jasmin Tee","owner_deleted":false,"rows_count":2},{"id":159,"workspace_id":304,"uuid":"87654321-d895-402f-9718-a85f26c65d99","name":"Project Tracker","created_at":"2020-11-18T12:31:29+00:00","updated_at":"2021-03-02T10:29:03+00:00","color":null,"text_color":null,"icon":null,"is_encrypted":false,"in_storage":true,"org_id":1,"email":"c882391bfa0144c4af64e4e0cde50b6c@auth.local","group_id":-1,"owner":"TeamAdmin","owner_deleted":false,"rows_count":20}],"count":16}}}}}}},"/api/v2.1/org/{org_id}/admin/users/{user_id}/dtables/":{"get":{"tags":["Bases"],"summary":"List User's Bases","operationId":"listUsersBases","description":"List all the bases of a certain user by the user's ID.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"dtable_list":[{"id":6,"workspace_id":2,"uuid":"3c899a81-6a0c-4111-bb19-288ebf8442fd","name":"CRM","created_at":"2025-11-28T14:16:30+01:00","updated_at":"2025-11-28T14:17:04+01:00","color":"#E91E63","text_color":null,"icon":"icon-user-interview","is_encrypted":false,"in_storage":true,"org_id":2,"email":"e38487b4357e40c8b1359223ba87a1af@auth.local","group_id":-1,"owner":"org-1-admin","owner_deleted":false,"rows_count":7},{"id":7,"workspace_id":2,"uuid":"e97bb668-da36-484c-8ac9-8aa9e0564f4c","name":"Finances","created_at":"2025-11-28T14:18:31+01:00","updated_at":"2025-11-28T14:18:31+01:00","color":"#00C9C7","text_color":null,"icon":"icon-dollar","is_encrypted":false,"in_storage":true,"org_id":2,"email":"e38487b4357e40c8b1359223ba87a1af@auth.local","group_id":-1,"owner":"org-1-admin","owner_deleted":false,"rows_count":0}],"count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/dtables/{base_uuid}/":{"get":{"tags":["Bases"],"summary":"Get Base","operationId":"getBase","description":"Get the details of a base in a team","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/base_uuid"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"workspace_id":{"type":"integer"},"uuid":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"color":{"type":"string"},"text_color":{"type":"string"},"icon":{"type":"string"},"is_encrypted":{"type":"boolean"},"in_storage":{"type":"boolean"},"org_id":{"type":"integer"},"owner":{"type":"string"},"email":{"type":"string"},"group_id":{"type":"integer"},"owner_deleted":{"type":"boolean"},"rows_count":{"type":"integer"}}},"example":{"id":158,"workspace_id":304,"uuid":"12345678-7e27-46a8-8b18-6cc6f3db2057","name":"Test base","created_at":"2020-11-18T12:31:29+00:00","updated_at":"2021-03-02T10:29:03+00:00","color":null,"text_color":null,"icon":null,"is_encrypted":false,"in_storage":true,"org_id":1,"owner":"JiweRan","email":"c882391bfa0144c4af64e4e0cde50b6c@auth.local","group_id":-1,"owner_deleted":false,"rows_count":2}}}}}},"delete":{"tags":["Bases"],"summary":"Delete Base","operationId":"deleteBase","description":"Delete a base. This base will be put into the organization's trash bin, and permanently deleted automatically after 30 days.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/base_uuid"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/trash-dtables/":{"get":{"tags":["Bases"],"summary":"List Trash Bases","operationId":"listTrashBases","description":"List the bases in the organization's trash bin.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"dtable_list":[{"id":135,"workspace_id":304,"uuid":"98765432-6db6-4950-abb9-28832c7471a0","name":"Old data","creator":"Jasmin Tee","modifier":"Jasmin Tee","created_at":"2020-12-28T18:04:05+00:00","updated_at":"2020-12-28T18:04:05+00:00","color":null,"text_color":null,"icon":null,"deleted":true,"delete_time":"2021-03-02T10:40:44+00:00","owner":"Jasmin Tee"}],"count":1}}}}}},"delete":{"tags":["Bases"],"summary":"Clear Team Trash Bin","operationId":"clearTeamTrashBin","description":"Clear the team trash bin. All the bases there will be removed permanently and cannot be restored any more.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/trash-dtables/{base_uuid}/":{"put":{"tags":["Bases"],"summary":"Restore Base from Trash","operationId":"restoreBaseFromTrash","description":"Restore a base from the trash bin.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/base_uuid"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/search-dtables/":{"get":{"tags":["Bases"],"summary":"Search Base","operationId":"searchBase","description":"By giving the exact or fuzzy match of the name of a base, you can find a base or all the bases that fit to that search criteria. The search is case-insensitive.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/query_base_name"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"results":[{"id":724,"workspace_id":204,"uuid":"12345678-ba46-4c07-8116-d237bdeb35a3","name":"Termine","created_at":"2022-01-12T10:30:01+00:00","updated_at":"2022-03-11T12:02:22+00:00","color":"#972CB0","text_color":null,"icon":"icon-leave-record","is_encrypted":false,"org_id":176,"email":"876543216569491ba42905bf1647fd3f@auth.local","group_id":-1,"owner":"Michael Jackson","owner_deleted":false,"rows_count":23}]}}}}}}},"/api/v2.1/org/{org_id}/admin/groups/":{"get":{"tags":["Groups"],"summary":"List Groups (Team)","operationId":"listGroups","description":"List all the groups existing in your team (organization). In the response, each group's ID, name, created time, name,creator etc. are returned. The `page_next` value indicates if there is a next page or not.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"group_name":{"type":"string"},"ctime":{"type":"string"},"creator_name":{"type":"string"},"creator_email":{"type":"string"},"creator_contact_email":{"type":"string"},"size":{"type":"integer"}}}},"page":{"type":"integer"},"per_page":{"type":"integer"},"page_next":{"type":"boolean"}}},"example":{"groups":[{"id":51,"group_name":"Sales Group","ctime":"2020-11-19T08:14:52+00:00","creator_name":"Michael Jackson","creator_email":"876543216569491ba42905bf1647fd3f@auth.local","creator_contact_email":"michael@example.com","size":98842},{"id":52,"group_name":"Marketing Group","ctime":"2020-11-19T08:18:03+00:00","creator_name":"Ginger Ale","creator_email":"12345678d1754bb4afa2c2cb7369d244@auth.local","creator_contact_email":"ginger@example.com","size":162010}],"page":1,"per_page":2,"page_next":true}}}}}},"post":{"tags":["Groups"],"summary":"Add Group","operationId":"addGroup","description":"Add a group in the current organization and assign a group name, and a group owner.","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"group_name":{"$ref":"#/components/schemas/team_admin_group_name"},"group_owner":{"$ref":"#/components/schemas/team_admin_group_owner"}}}}}},"security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"group_name":{"type":"string"},"ctime":{"type":"string"},"creator_email":{"type":"string"},"creator_name":{"type":"string"},"creator_contact_email":{"type":"string"}}},"example":{"id":3,"group_name":"Test group","ctime":"2021-03-02T11:10:53+00:00","creator_email":"1234567a6569491ba42905bf1647fd3f@auth.local","creator_name":"Jasmin Tee","creator_contact_email":"jasmin@example.com"}}}}}}},"/api/v2.1/org/{org_id}/admin/groups/{group_id}/":{"get":{"tags":["Groups"],"summary":"Get Group","operationId":"getGroup","description":"Get the specific information of one group by its ID.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"group_name":{"type":"string"},"ctime":{"type":"string"},"creator_email":{"type":"string"},"creator_name":{"type":"string"},"creator_contact_email":{"type":"string"}}},"example":{"id":1,"group_name":"Test Group","ctime":"2020-11-19T08:14:52+00:00","creator_email":"876543216569491ba42905bf1647fd3f@auth.local","creator_name":"Michael Jackson","creator_contact_email":"michael@example.com"}}}}}},"put":{"tags":["Groups"],"summary":"Update Group","operationId":"updateGroup","description":"Use this request to rename, and/or change owner of a group.\nIn the request body, both parameters are optional. Only use the ones that you need to update:\n*   `new_owner` is the new owner of the group, include the user's ID here. If you don't want to change the owner, remove this parameter because if you enter the current owner's ID here, you'll get an error \"User xxx is already group owner\".\n*   `new_group_name` is the new name of your group. If you don't want to change the name, remove this parameter because if you enter the current group name here you'll get an error \"There is already a group with that name\".","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"new_owner":{"$ref":"#/components/schemas/team_admin_user_id"},"new_group_name":{"$ref":"#/components/schemas/team_admin_group_name"}}}}}},"security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"group_name":{"type":"string"},"ctime":{"type":"string"},"creator_email":{"type":"string"},"creator_name":{"type":"string"},"creator_contact_email":{"type":"string"},"size":{"type":"integer"}}},"example":{"id":1,"group_name":"Group New","ctime":"2020-11-19T08:14:52+00:00","creator_email":"a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6@auth.local","creator_name":"Michael Jackson","creator_contact_email":"michael@example.com","size":98842}}}}}},"delete":{"tags":["Groups"],"summary":"Delete Group","operationId":"deleteGroup","description":"Delete a group with its ID.\n\n> 🚧 Group must be empty > > A group can only be deleted if it contains no bases. Delete or move all bases out of the group first, otherwise the API returns `400` with `\"Cannot delete group with bases\"`.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/groups/{group_id}/dtables/":{"get":{"tags":["Groups"],"summary":"List Group Bases","operationId":"listGroupBases","description":"List all the bases in a specific group in your team.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"tables":[{"id":4,"workspace_id":2,"uuid":"12345678-30d9-48a2-a5d7-09cd8ffdda4b","name":"CRM & Sales","creator":"Ginger Ale","owner":"Group New","creator_email":"12345678d1754bb4afa2c2cb7369d244@auth.local","modifier":"Ginger Ale","created_at":"2021-03-08T13:04:50+00:00","updated_at":"2021-03-08T13:04:50+00:00","rows_count":186}]}}}}}}},"/api/v2.1/groups/move-group/":{"put":{"tags":["Groups"],"summary":"Re-order Your Groups","operationId":"orderGroups","description":"On the **web user interface**, you can have an overview of all the groups you are currently in on the left-hand side navigation when you click on \"Bases\".\nPerhaps you'd like to re-order these groups. Besides moving them manually with your mouse on the interface, you can also use this API request to do the same job.\nHere's how it works: In the request form, give the `group_id` of the group you'd like to move and tell the system where to move it to: under which group ( `anchor_group_id` ). If you are just moving it to the bottom of the list, let `to_last` be `true` .","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"group_id":{"$ref":"#/components/schemas/team_admin_group_id"},"anchor_group_id":{"$ref":"#/components/schemas/anchor_group_id"},"to_last":{"$ref":"#/components/schemas/to_last"}}}}}},"security":[{"AccountTokenAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/groups/{group_id}/members/":{"get":{"tags":["Groups"],"summary":"List Group Members","operationId":"listGroupMembers","description":"List the members of a group in the current team (organization).","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"org_id":{"type":"integer"},"group_id":{"type":"integer"},"group_name":{"type":"string"},"members":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"contact_email":{"type":"string"},"avatar_url":{"type":"string"},"is_admin":{"type":"boolean"},"role":{"type":"string"}}}}}},"example":{"org_id":1,"group_id":1,"group_name":"Sample Group","members":[{"name":"Jasmin Tee","email":"123456786569491ba42905bf1647fd3f@auth.local","contact_email":"jasmin@example.com","avatar_url":"https://cloud.seatable.io/media/avatars/default.png","is_admin":false,"role":"Member"},{"name":"Ginger Ale","email":"87654321d1754bb4afa2c2cb7369d244@auth.local","contact_email":"ginger@example.com","avatar_url":"https://cloud.seatable.io/media/avatars/default.png","is_admin":true,"role":"Owner"}]}}}}}},"post":{"tags":["Groups"],"summary":"Add Group Members","operationId":"addGroupMembers","description":"Add multiple members to a group in one call.","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"email":{"type":"array","items":{"type":"string","format":"email"},"description":"List of `user_ids` (xxx@auth.local)."}}}}}},"security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"failed":[{"email":"123456786569491ba42905bf1647fd3f@auth.local","error_msg":"User Jasmin Tee is already a group member."}],"success":[{"group_id":1,"name":"Ginger Ale","email":"87654321d1754bb4afa2c2cb7369d244@auth.local","contact_email":"ginger@example.com","login_id":"","avatar_url":"https://cloud.seatable.io/media/avatars/default.png","is_admin":false,"role":"Member"}]}}}}}}},"/api/v2.1/org/{org_id}/admin/groups/{group_id}/members/{user_id}/":{"put":{"tags":["Groups"],"summary":"Update Group Member Role","operationId":"updateGroupMemberRole","description":"Update a member's role.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"},{"$ref":"#/components/parameters/user_id"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["is_admin"],"properties":{"is_admin":{"type":"boolean","example":false}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}},"delete":{"tags":["Groups"],"summary":"Remove Group Members","operationId":"removeGroupMembers","description":"Move a member out of a group. The group's owner cannot be removed.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/group_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/dtables/{base_uuid}/shares/":{"get":{"tags":["Bases"],"summary":"List Base Sharings","operationId":"listBaseSharings","description":"Use this request to list all the users and groups that a base is being shared with.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/base_uuid"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"share_list":[]}}}}}}},"/api/v2.1/org/{org_id}/admin/dtables/{base_uuid}/api-tokens/":{"get":{"tags":["Bases"],"summary":"List API-Tokens","operationId":"listApiTokens","description":"List API tokens of a single base.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/base_uuid"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"api_tokens":[{"app_name":"n8n","api_token":"c1a7a416280ab3f9b0b632edbb58a69a771783f0","generated_by":"e38487b4357e40c8b1359223ba87a1af@auth.local","creator":"user1","avatar_url":"https://cloud.seatable.io/media/avatars/default.png","generated_at":"2025-11-28T14:18:39+01:00","last_access":"2025-11-28T14:18:39+01:00","permission":"rw"}]}}}}}}},"/api/v2.1/org/{org_id}/admin/dtables/{base_uuid}/api-tokens/{app_name}/":{"delete":{"tags":["Bases"],"summary":"Delete API-Token","operationId":"deleteApiToken","description":"Delete a specific API token from a base. The token is identified by its *app_name*.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/base_uuid"},{"$ref":"#/components/parameters/app_name"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/api-tokens/":{"get":{"tags":["Bases"],"summary":"List API-Tokens of All Bases","operationId":"listApiTokensOfAllBases","description":"List API tokens of all bases inside the team/organization.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"api_tokens":[{"app_name":"n8n","api_token":"c1a7a416280ab3f9b0b632edbb58a69a771783f0","generated_by":"e38487b4357e40c8b1359223ba87a1af@auth.local","creator":"user1","avatar_url":"https://cloud.seatable.io/media/avatars/default.png","generated_at":"2025-11-28T14:18:39+01:00","last_access":"2025-11-28T14:18:39+01:00","permission":"rw","dtable_uuid":"3c899a81-6a0c-4111-bb19-288ebf8442fd","dtable_name":"CRM","dtable_icon":"icon-user-interview","dtable_color":"#E91E63"},{"app_name":"API","api_token":"89913c6509062bbd24efe42a509cf9c5bb843018","generated_by":"e38487b4357e40c8b1359223ba87a1af@auth.local","creator":"user1","avatar_url":"https://cloud.seatable.io/media/avatars/default.png","generated_at":"2025-11-28T14:18:54+01:00","last_access":"2025-11-28T14:18:54+01:00","permission":"rw","dtable_uuid":"e97bb668-da36-484c-8ac9-8aa9e0564f4c","dtable_name":"Finances","dtable_icon":"icon-dollar","dtable_color":"#00C9C7"}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/shares/":{"get":{"tags":["Sharing Links"],"summary":"List Shares","operationId":"listShares","description":"List all shares inside the given team/organization.\n\nThis includes the following:\n  - Bases shared to individual users\n  - Bases shared to groups\n  - Views shared to individual users\n  - Views shared to groups\n","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"dtable_user_shares":{"type":"array","items":{"type":"object"}},"dtable_group_shares":{"type":"array","items":{"type":"object"}},"view_user_shares":{"type":"array","items":{"type":"object"}},"view_group_shares":{"type":"array","items":{"type":"object"}}}},"example":{"dtable_user_shares":[{"dtable_uuid":"3c899a81-6a0c-4111-bb19-288ebf8442fd","email":"97f45993fc174280b939976c9b9256eb@auth.local","name":"org-1-user-1","avatar_url":"https://cloud.seatable.io/media/avatars/default.png","contact_email":"org-1-user-1@seatable.io","permission":"rw","share_id":1}],"dtable_group_shares":[{"dtable_uuid":"3c899a81-6a0c-4111-bb19-288ebf8442fd","group_id":1,"group_name":"Marketing","permission":"rw","share_id":1}],"view_user_shares":[{"dtable_uuid":"3c899a81-6a0c-4111-bb19-288ebf8442fd","id":1,"dtable_name":"CRM","from_user":"e38487b4357e40c8b1359223ba87a1af@auth.local","to_user":"97f45993fc174280b939976c9b9256eb@auth.local","permission":"r","table_id":"0000","view_id":"0000","shared_name":"User share","from_user_name":"org-1-admin","to_user_name":"org-1-user-1","avatar_url":"https://cloud.seatable.io/media/avatars/default.png"}],"view_group_shares":[{"dtable_uuid":"3c899a81-6a0c-4111-bb19-288ebf8442fd","id":1,"dtable_name":"CRM","from_user":"e38487b4357e40c8b1359223ba87a1af@auth.local","to_group_id":1,"permission":"r","table_id":"0000","view_id":"0000","shared_name":"Group share","from_user_name":"org-1-admin","to_group_name":"Marketing"}]}}}}}}},"/api/v2.1/org/{org_id}/admin/external-links/":{"get":{"tags":["Sharing Links"],"summary":"List Base External Links","operationId":"listBaseExternalLinks","description":"Use this request to list all the external links generated in the current team (organization).","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"external_link_list":[{"id":98,"url":"https://cloud.seatable.io/dtable/external-links/12345ef2395c415d9d13/","token":"12345ef2395c415d9d13","permission":"read-only","creator_name":"Michael Jackson","creator":"876543216569491ba42905bf1647fd3f@auth.local","view_cnt":337,"create_at":"2021-08-25T07:04:02+00:00","from_dtable":"All types","expire_date":"","is_protected":false,"from_base_uuid":"abcdefg-fd55-48e4-8c4a-5fd6f2549765"}],"count":5}}}}}}},"/api/v2.1/org/{org_id}/admin/external-links/{external_link_token}/":{"delete":{"tags":["Sharing Links"],"summary":"Delete External Link","operationId":"deleteExternalLink","description":"Delete an external link with its token.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/external_link_token"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/view-external-links/":{"get":{"tags":["Sharing Links"],"summary":"List View External Links","operationId":"listViewExternalLinks","description":"Use this request to list all the view external links generated in the current team (organization).","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"external_link_list":[{"id":25,"from_dtable":"Test Base","creator":"8e02ebc52ff0484d9f15b50904a98d2f@auth.local","creator_name":"Jason","token":"20fcc48ea99a47459952","permission":"r","create_at":"2021-03-30T09:30:36+00:00","view_cnt":0,"table_id":"0000","view_id":"Dn16","url":"https://cloud.seatable.io/dtable/view-external-links/20fcc48ea99a47459952/","is_custom":false,"expire_date":"","is_protected":false},{"id":26,"from_dtable":"Test Base","creator":"8e02ebc52ff0484d9f15b50904a98d2f@auth.local","creator_name":"Jason","token":"6388e4fc44eb4296aa41","permission":"r","create_at":"2021-03-30T09:30:49+00:00","view_cnt":0,"table_id":"0000","view_id":"Dn16","url":"https://cloud.seatable.io/dtable/view-external-links/6388e4fc44eb4296aa41/","is_custom":false,"expire_date":"","is_protected":false}],"count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/view-external-links/{view_external_link_token}/":{"delete":{"tags":["Sharing Links"],"summary":"Delete View External Link","operationId":"deleteViewExternalLink","description":"Use this request to delete an existing view external link with its token.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/view_external_link_token"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/invite-links/":{"get":{"tags":["Sharing Links"],"summary":"List Invite Links","operationId":"listInviteLinks","description":"As administrator of your team, you can use this request to gain a overview of all the invite links currently generated in your team, regardless which user or group.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"invite_link_list":[{"dtable_name":"All types","username":"876543216569491ba42905bf1647fd3f@auth.local","token":"https://cloud.seatable.io/dtable/links/9167cdbd67574226a72e/","ctime":"2021-12-15T13:11:54.083636","password":null,"expire_date":null,"permission":"rw","workspace_id":204,"is_protected":false,"dtable_uuid":"650d8a0d-7e27-46a8-8b18-6cc6f3dbvh46"},{"dtable_name":"All types","username":"876543216569491ba42905bf1647fd3f@auth.local","token":"https://cloud.seatable.io/dtable/links/b7ea0a4269234565998e/","ctime":"2021-12-15T13:11:55.058965","password":null,"expire_date":null,"permission":"rw","workspace_id":204,"is_protected":false,"dtable_uuid":"a57b56d3-1cc5-4ebd-8a6c-a1b28ac3dbdf"}],"count":17}}}}}}},"/api/v2.1/org/{org_id}/admin/invite-links/{invite_link_token}/":{"put":{"tags":["Sharing Links"],"summary":"Update Invite Link","operationId":"updateInviteLink","description":"You as team admin can also update an invite link. In the request body:\r\n\r\n- `permission` is the read/write permission of the new invite link, with `r` as read-only and `rw` as read-and-write;\r\n- `password` is the new password of your invite link;\r\n- `expire_days` is the number of days after which the invite link will expire.","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"permission":{"$ref":"#/components/schemas/team_admin_permission"},"password":{"$ref":"#/components/schemas/team_admin_password"},"expire_days":{"$ref":"#/components/schemas/team_admin_expire_days"}}}}}},"security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/invite_link_token"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"},"permission":{"type":"string"},"token":{"type":"string"},"link":{"type":"string"},"dtable":{"type":"string"},"dtable_id":{"type":"integer"},"workspace_id":{"type":"integer"},"expire_date":{"type":"string"},"ctime":{"type":"string"}}},"example":{"username":"876543216569491ba42905bf1647fd3f@auth.local","permission":"rw","token":"9167cdbd67574226a72e","link":"https://cloud.seatable.io/dtable/links/9167cdbd67574226a72e/","dtable":"All types","dtable_id":2,"workspace_id":2,"expire_date":"","ctime":"2021-12-15T13:11:54.083636"}}}}}},"delete":{"tags":["Sharing Links"],"summary":"Delete Invite Link","operationId":"deleteInviteLink","description":"Delete an invite link with this request. The `invite_link_token` can be retrieved from the previous calls, or simply from the URL of the invite link, which is the last part of the URL.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/invite_link_token"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/admin/info/":{"get":{"tags":["Info & Settings"],"summary":"Get Team Info","operationId":"getTeamInfo","description":"Get the basic information (e.g. ID, name, storage quota etc. see example response for details) of your team (organization).","security":[{"AccountTokenAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"org_id":{"type":"integer"},"org_name":{"type":"string"},"storage_quota":{"type":"integer"},"storage_usage":{"type":"integer"},"member_quota":{"type":"integer"},"member_usage":{"type":"integer"},"active_members":{"type":"integer"},"row_usage":{"type":"integer"},"row_total":{"type":"integer"},"role":{"type":"string"},"big_data_row_limit":{"type":"integer"},"big_data_storage_quota":{"type":"integer"},"big_data_total_rows":{"type":"integer"},"big_data_total_storage":{"type":"integer"},"api_calls_count":{"type":"integer"},"api_calls_limit":{"type":"integer"},"automation_count":{"type":"integer"},"automation_limit":{"type":"integer"},"scripts_running_total":{"type":"integer"},"scripts_running_count":{"type":"integer"},"ai_cost":{"type":"number"},"ai_credit":{"type":"number"}}},"example":{"org_id":1,"org_name":"SeaTable GmbH","storage_quota":300000000000,"storage_usage":370721184,"member_quota":20,"member_usage":15,"active_members":15,"row_usage":6077,"row_total":-1,"role":"org_enterprise","big_data_row_limit":-1,"big_data_total_rows":0,"big_data_total_storage":0,"scripts_running_total":-1,"scripts_running_count":0,"ai_cost":1234.56,"ai_credit":5000}}}}}},"put":{"tags":["Info & Settings"],"summary":"Update Team","operationId":"updateTeam","description":"Update the infos (e.g. name) of the organization","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"new_org_name":{"$ref":"#/components/schemas/new_org_name"}}}}}},"security":[{"AccountTokenAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/admin/settings/":{"get":{"tags":["Info & Settings"],"summary":"Get Team Settings","operationId":"getTeamSettings","description":"List the current organization settings.\n\n**Return Values**\n\n`enable_force_2fa`: if the 2-factor-authentication is forced (`true` or `false`).\n\n`enable_force_sso_login`: if login via single-sign on (SSO) is enforced (`true` or `false`).\n\n`enable_new_user_email`: if newly added users will get a system email (`true` or `false`).\n\n`enable_external_user_access_invite_link`: if external users can access bases via invite links (`true` or `false`).\n\n`enable_member_modify_name`: if members are allowed to change their names (`true` or `false`).","security":[{"AccountTokenAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"enable_force_2fa":{"type":"boolean"},"enable_force_sso_login":{"type":"boolean"},"enable_new_user_email":{"type":"boolean"},"enable_external_user_access_invite_link":{"type":"boolean"},"enable_member_modify_name":{"type":"boolean"}}},"example":{"enable_force_2fa":false,"enable_force_sso_login":false,"enable_new_user_email":true,"enable_external_user_access_invite_link":true,"enable_member_modify_name":true}}}}}},"put":{"tags":["Info & Settings"],"summary":"Update Team Settings","operationId":"updateTeamSettings","description":"Update the settings of the organization.","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"enable_force_2fa":{"$ref":"#/components/schemas/enable_force_2fa"},"enable_force_sso_login":{"$ref":"#/components/schemas/enable_force_sso_login"},"enable_new_user_email":{"$ref":"#/components/schemas/enable_new_user_email"},"enable_external_user_access_invite_link":{"$ref":"#/components/schemas/enable_external_user_access_invite_link"},"enable_member_modify_name":{"$ref":"#/components/schemas/enable_member_modify_name"}}}}}},"security":[{"AccountTokenAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"enable_force_2fa":{"type":"boolean"},"enable_force_sso_login":{"type":"boolean"},"enable_new_user_email":{"type":"boolean"},"enable_external_user_access_invite_link":{"type":"boolean"},"enable_member_modify_name":{"type":"boolean"}}},"example":{"enable_force_2fa":true,"enable_force_sso_login":false,"enable_new_user_email":true,"enable_external_user_access_invite_link":false,"enable_member_modify_name":true}}}}}}},"/api/v2.1/org/admin/":{"delete":{"tags":["Info & Settings"],"summary":"Delete Team","operationId":"deleteTeam","description":"Delete a team (organization) with its ID. This will eliminate the team!\nHowever, this won't delete the team users - but all its members will become team-less users in the system.","security":[{"AccountTokenAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/admin-logs/":{"get":{"tags":["Activities & Logs"],"summary":"List Team Operations","operationId":"listTeamOperationLog","description":"Retrieves the operation log of all team members.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/operation_group"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"logs":[{"email":"145504ae043c438cbb55f2afb084d586@auth.local","name":"Hulk","operation":"group_delete","detail":{"id":98,"name":"wefwefadfadf","owner":"145504ae043c438cbb55f2afb084d586@auth.local"},"datetime":"2023-03-25T22:09:51+00:00"},{"email":"145504ae043c438cbb55f2afb084d586@auth.local","name":"Hulk","operation":"group_create","detail":{"id":98,"name":"efaefafe","owner":"145504ae043c438cbb55f2afb084d586@auth.local"},"datetime":"2023-03-25T22:09:13+00:00"},{"email":"145504ae043c438cbb55f2afb084d586@auth.local","name":"Hulk","operation":"user_add","detail":{"email":"wefafaef@example.local","username":"f7477ddd49ef46aea4bb09a0bc7d0b3b@auth.local","nickname":"Stefan"},"datetime":"2023-03-25T21:59:51+00:00"}],"total_count":3}}}}}}},"/api/v2.1/org/{org_id}/admin/group-member-audit/":{"get":{"tags":["Activities & Logs"],"summary":"List Group Member Audit Logs","operationId":"listGroupMemberAuditLogs","description":"Retrieves audit logs for changes to group members (either `group_member_add` or `group_member_delete`).","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"group_member_log_list":[{"user_email":"70e6e6be77dc4afeb1d6786f1e3d14e2@auth.local","user_name":"org_user","user_contact_email":"org_user@example.com","group_id":2,"group_name":"org-t1","operator_email":"ecd40dcfcdd041a98d51bdde2a05612e@auth.local","operator_name":"org_admin","operator_contact_email":"org_admin@example.com","date":"2025-05-27T06:57:03+00:00","operation":"group_member_add"}],"count":1}}}}}}},"/api/v2.1/org/{org_id}/admin/login-logs/":{"get":{"tags":["Activities & Logs"],"summary":"List Team Logins","operationId":"listTeamLogins","description":"Retrieves the login activities of all team members.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/login_status"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"login_list":[{"login_time":"2023-11-22T09:36:29+01:00","login_ip":"5.34.111.3","login_success":true,"email":"145504ae043c438cbb55f2afb084d586@auth.local","name":"Hulk","contact_email":"hulk@the-avengers.com"},{"login_time":"2023-11-22T09:31:22+01:00","login_ip":"5.34.111.3","login_success":false,"email":"145504ae043c438cbb55f2afb084d586@auth.local","name":"Hulk","contact_email":"hulk@the-avengers.com"},{"login_time":"2023-11-21T23:27:12+01:00","login_ip":"99.12.23.13","login_success":true,"email":"f2afb0145504ae0438cbb5584c43d586@auth.local","name":"Tony Starks","contact_email":"tony@the-avengers.com"}],"total_count":70}}}}}}},"/api/v2.1/org/{org_id}/admin/login-logs/{user_id}/":{"get":{"tags":["Activities & Logs"],"summary":"List User Logins","operationId":"listUserLogins","description":"Returns the login activities of one specific team member.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/user_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"data":[{"login_time":"2023-11-22T09:36:29+01:00","login_ip":"5.34.111.3","login_success":true,"email":"145504ae043c438cbb55f2afb084d586@auth.local","name":"Hulk","contact_email":"hulk@the-avengers.com"},{"login_time":"2023-11-22T09:31:22+01:00","login_ip":"5.34.111.3","login_success":false,"email":"hulk@the-avengers.com","name":"hulk","contact_email":null}],"total_count":3}}}}}}},"/api/v2.1/org/{org_id}/admin/file-access-logs/":{"get":{"tags":["Activities & Logs"],"summary":"List File Access Logs","operationId":"listFileAccessLogs","description":"Returns a list of accessed files inside a specific team.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"file_access_log_list":[{"timestamp":"2024-10-08T17:54:52+08:00","etype":"download","device":"","user":"af57b7dda06b4928b255339d92294853@auth.local","name":"org_admin1","contact_email":"org_admin1@example.com","ip":"172.18.0.1","org_id":1,"dtable_uuid":"8e7ad4a8-73dc-4be4-abae-057fd5203a0e","file_path":"custom/aaa (1) (1).md","dtable_name":"Example Base","file_or_dir_name":"aaa (1) (1).md"},{"timestamp":"2024-09-29T07:25:17+08:00","etype":"view","device":"","user":"af57b7dda06b4928b255339d92294853@auth.local","name":"org_admin1","contact_email":"org_admin1@example.com","ip":"172.18.0.1","org_id":1,"dtable_uuid":"8e7ad4a8-73dc-4be4-abae-057fd5203a0e","file_path":"/custom/aaa (1) (1).md","dtable_name":"Example Base","file_or_dir_name":"aaa (1) (1).md"}],"count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/automation-logs/":{"get":{"tags":["Activities & Logs"],"summary":"List Automation Logs","operationId":"listAutomationLogs","description":"Returns a list of automation logs inside a specific team.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/dtable_uuid"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"logs":[{"id":43543,"rule_id":454,"rule_name":"Send Email","trigger_time":"2025-11-28T14:05:52+01:00","run_condition":"per_update","success":true,"org_id":-1,"dtable_uuid":"8fc3fbc2-d8d2-4a23-965d-33cbf511d780","owner":"314bd2ed8d9741b08852916907dc7dd5@auth.local","warnings":null},{"id":43544,"rule_id":454,"rule_name":"Send Email","trigger_time":"2025-11-28T14:05:55+01:00","run_condition":"per_update","success":true,"org_id":-1,"dtable_uuid":"8fc3fbc2-d8d2-4a23-965d-33cbf511d780","owner":"314bd2ed8d9741b08852916907dc7dd5@auth.local","warnings":null}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/python-runs/":{"get":{"tags":["Activities & Logs"],"summary":"List Python Runs","operationId":"listPythonRuns","description":"Returns a list of python runs inside a specific team.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/dtable_uuid"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"runs":[{"dtable_uuid":"306acc83-5305-45b4-b34b-528f6f51d7b8","finished_at":"2026-01-06T11:57:11+01:00","id":3,"operate_from":"manualy","owner":"2a609b47d6254449a7f042a42ef02d09@auth.local","return_code":0,"script_name":"DDx0.py","started_at":"2026-01-06T11:57:10+01:00","success":true,"script_display_name":"Hello World"},{"dtable_uuid":"149cd597-dcbc-4e2a-8344-91651a1b4853","finished_at":"2026-01-06T12:11:18+01:00","id":4,"operate_from":"manualy","owner":"2a609b47d6254449a7f042a42ef02d09@auth.local","return_code":0,"script_name":"O60m.py","started_at":"2026-01-06T12:11:18+01:00","success":true,"script_display_name":"Base 2 Script"}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/statistics/admin-logs/by-day/":{"get":{"tags":["Statistics"],"summary":"Admin Logs (by Day)","operationId":"getAdminLogStatisticsByDay","description":"Returns statistics about admin logs grouped by day.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"results":[{"date":"2025-10-29","number_of_operations":2,"base_operations":1,"group_operations":0,"user_operations":1},{"date":"2025-10-30","number_of_operations":5,"base_operations":3,"group_operations":1,"user_operations":1},{"date":"2025-10-31","number_of_operations":2,"base_operations":0,"group_operations":1,"user_operations":1}],"total_count":3}}}}}}},"/api/v2.1/org/{org_id}/admin/statistics/automation-logs/by-day/":{"get":{"tags":["Statistics"],"summary":"Automation Logs (by Day)","operationId":"getAutomationLogStatisticsByDay","description":"Returns statistics about automation logs grouped by day.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/dtable_uuid"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"results":[{"trigger_date":"2025-11-27","number_of_executions":10,"successful_executions":9,"unsuccessful_executions":1},{"trigger_date":"2025-11-28","number_of_executions":2,"successful_executions":2,"unsuccessful_executions":0}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/statistics/automation-logs/by-base/":{"get":{"tags":["Statistics"],"summary":"Automation Logs (by Base)","operationId":"getAutomationLogStatisticsByBase","description":"Returns statistics about automation logs grouped by base.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"results":[{"dtable_uuid":"3c899a81-6a0c-4111-bb19-288ebf8442fd","number_of_executions":2,"successful_executions":2,"unsuccessful_executions":0},{"dtable_uuid":"e97bb668-da36-484c-8ac9-8aa9e0564f4c","number_of_executions":5,"successful_executions":4,"unsuccessful_executions":1}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/statistics/login-logs/by-day/":{"get":{"tags":["Statistics"],"summary":"Login Logs (by Day)","operationId":"getLoginLogStatisticsByDay","description":"Returns statistics about login logs grouped by day.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"results":[{"date":"2025-11-27","number_of_attempts":15,"successful_attempts":14,"unsuccessful_attempts":1},{"date":"2025-11-28","number_of_attempts":2,"successful_attempts":1,"unsuccessful_attempts":1}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/statistics/python-runs/by-day/":{"get":{"tags":["Statistics"],"summary":"Python Runs (by Day)","operationId":"getPythonRunStatisticsByDay","description":"Returns statistics about python runs grouped by day.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/dtable_uuid"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"results":[{"date":"2025-11-27","number_of_runs":8,"total_run_time":5,"triggered_by_automation_rule":0,"triggered_manually":8,"successful_runs":3,"unsuccessful_runs":5},{"date":"2025-11-28","number_of_runs":4,"total_run_time":22,"triggered_by_automation_rule":0,"triggered_manually":4,"successful_runs":4,"unsuccessful_runs":0}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/statistics/python-runs/by-base/":{"get":{"tags":["Statistics"],"summary":"Python Runs (by Base)","operationId":"getPythonRunStatisticsByBase","description":"Returns statistics about python runs grouped by base.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"},{"$ref":"#/components/parameters/start"},{"$ref":"#/components/parameters/end"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"results":[{"base_uuid":"4202f7ad-3168-4bf4-b1e4-01aee6782f94","number_of_runs":8,"total_run_time":5,"triggered_by_automation_rule":0,"triggered_manually":8,"successful_runs":3,"unsuccessful_runs":5},{"base_uuid":"ca490121-cea3-4a04-8e25-ac72b03a61e0","number_of_runs":4,"total_run_time":22,"triggered_by_automation_rule":0,"triggered_manually":4,"successful_runs":4,"unsuccessful_runs":0}],"total_count":2}}}}}}},"/api/v2.1/org/{org_id}/admin/statistics/ai/":{"get":{"tags":["Statistics"],"summary":"Get AI Statistics by User/Base","operationId":"getUserOrBaseAIStatistics","description":"Get AI usage statistics monthly by user/base.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/group_by"},{"$ref":"#/components/parameters/date"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/per_page"},{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"examples":{"group_by_owner":{"summary":"Query group by owner","value":{"results":[{"owner":"1@seafile_group","total_cost":0.15,"group_name":"group-11"},{"owner":"d15ebe61bd684b868344498c73bdeac4@auth.local","total_cost":0.2,"nickname":"test"}],"count":2}},"group_by_base":{"summary":"Query group by base","value":{"results":[{"dtable_uuid":"f0e6f53caee749b1a5eb65cb2991d6bb","owner":"1@seafile_group","total_cost":0.04,"group_name":"group-11"}],"count":1}}}}}}}}},"/api/v2.1/org/{org_id}/admin/org-logo/":{"post":{"tags":["Customizing"],"summary":"Update Team Logo","operationId":"updateTeamLogo","description":"Replace the current team logo by uploading a new one.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/upload_file"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"logo_path":"avatars/org-logo/1/8b4d9bc0-96b3-4b36-bf53-2187b601dfac.png"}}}}}},"get":{"tags":["Customizing"],"summary":"Get Team Logo","operationId":"getTeamLogo","description":"Get the path to the custom team logo.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"logo_path":"avatars/org-logo/1/8b4d9bc0-96b3-4b36-bf53-2187b601dfac.png"}}}}}},"delete":{"tags":["Customizing"],"summary":"Delete Team Logo","operationId":"deleteTeamLogo","description":"Restore the team logo to SeaTable's original default by removing the current logo.\"","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/saml-config/":{"get":{"tags":["SAML"],"summary":"Get SAML Config","operationId":"getSamlConfig","description":"Retrieve the current configuration details of the team's SAML (Single Sign-On) account.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"saml_config":{"id":2,"org_id":13,"metadata_url":"https://example.com/federationmetadata.xml","domain":"example.com","dns_txt":"seatable-site-verification=bae21a5f9c65472c88bcd02f724065c8","domain_verified":true,"idp_certificate":null,"-----BEGIN CERTIFICATE-----xxxxxxxxxx-----END CERTIFICATE-----":null}}}}},"403":{"description":"Forbidden","content":{"application/json":{"example":{"detail":"You do not have permission to perform this action."}}}}}},"put":{"tags":["SAML"],"summary":"Update SAML Config","operationId":"updateSamlConfig","description":"Update the current team's SAML (Single Sign-On) account. You have to provide at least one of the parameter `metadata_url`, `domain` or `idp_certificate`.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"metadata_url":{"$ref":"#/components/schemas/metadata_url"},"domain":{"$ref":"#/components/schemas/domain"},"idp_certificate":{"$ref":"#/components/schemas/idp_certificate"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"saml_config":{"id":2,"org_id":13,"metadata_url":"https://example.com/federationmetadata.xml","domain":"example.com","dns_txt":"seatable-site-verification=bae21a5f9c65472c88bcd02f724065c8","domain_verified":true,"idp_certificate":"-----BEGIN CERTIFICATE-----xxxxxxxxxx-----END CERTIFICATE-----"}}}}}}},"delete":{"tags":["SAML"],"summary":"Delete SAML Config","operationId":"deleteSamlConfig","description":"Delete the team's SAML (Single Sign-On) configuration.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"},"example":{"success":true}}}}}}},"/api/v2.1/org/{org_id}/admin/verify-domain/":{"put":{"tags":["SAML"],"summary":"Verify SAML domain","operationId":"verifySamlDomain","description":"Check for the \"seatable-site-verification\" value in the DNS entries of the selected domain.","security":[{"AccountTokenAuth":[]}],"parameters":[{"$ref":"#/components/parameters/org_id"}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"domain":{"$ref":"#/components/schemas/domain"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"domain_verified":true}}}}}}}}}