diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml
index ed78e5202f6..ff745570d73 100644
--- a/.github/workflows/examples.yml
+++ b/.github/workflows/examples.yml
@@ -84,8 +84,8 @@ jobs:
HELICONE_API_KEY: ${{secrets.HELICONE_API_KEY}}
JULEP_API_KEY: ${{secrets.JULEP_API_KEY}}
JULEP_API_URL: ${{secrets.JULEP_API_URL}}
- LISTENNOTES_API_KEY: ${{secrets.LISTENNOTES_API_KEY}}
- COMPOSIO_API_KEY: ${{ inputs.api_key || secrets.COMPOSIO_API_KEY_RELEASE }}
+ PDL_API_KEY: ${{secrets.PDL_API_KEY}}
+ COMPOSIO_API_KEY: ${{ inputs.api_key || secrets.COMPOSIO_API_KEY_PROD }}
COMPOSIO_BASE_URL: ${{ inputs.base_url || secrets.COMPOSIO_BASE_URL || 'https://backend.composio.dev/api' }}
# TODO(@kaavee): Add Anthropic API key
run: |
diff --git a/.github/workflows/release_check.yml b/.github/workflows/release_check.yml
new file mode 100644
index 00000000000..0e321a2e382
--- /dev/null
+++ b/.github/workflows/release_check.yml
@@ -0,0 +1,39 @@
+name: Type stubs check
+
+on:
+ push:
+ branches:
+ - master
+ paths:
+ - '**/setup.py'
+ pull_request:
+ paths:
+ - '**/setup.py'
+ workflow_dispatch:
+
+env:
+ COMPOSIO_API_KEY: ${{ secrets.COMPOSIO_API_KEY_PROD }}
+
+jobs:
+ generate-types:
+ defaults:
+ run:
+ working-directory: ./python
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.11'
+
+ - name: Run `composio apps generate-types`
+ run: |
+ python -m pip install uv
+ python -m uv pip install .
+ python -m uv pip install black
+ python -m uv run composio apps generate-types
+ # Run black over the files before checking if they changed
+ python -m uv run black composio/client/enums
+
+ - name: Check if type stubs changed, and fail if they did
+ run: git diff --exit-code
diff --git a/docs/api-reference/actions/execute-action-proxy.mdx b/docs/api-reference/actions/execute-action-proxy.mdx
deleted file mode 100644
index 9c1021ce636..00000000000
--- a/docs/api-reference/actions/execute-action-proxy.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v2/actions/proxy
----
\ No newline at end of file
diff --git a/docs/api-reference/actions/execute-action.mdx b/docs/api-reference/actions/execute-action.mdx
deleted file mode 100644
index 5cf9350b76f..00000000000
--- a/docs/api-reference/actions/execute-action.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /v1/actions/{actionName}/execute
----
\ No newline at end of file
diff --git a/docs/api-reference/actions/execute-an-action.mdx b/docs/api-reference/actions/execute-an-action.mdx
new file mode 100644
index 00000000000..be574a28d0e
--- /dev/null
+++ b/docs/api-reference/actions/execute-an-action.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /api/v2/actions/{actionId}/execute
+---
\ No newline at end of file
diff --git a/docs/api-reference/actions/get-a-specific-action.mdx b/docs/api-reference/actions/get-a-specific-action.mdx
deleted file mode 100644
index 205d2bcb8ef..00000000000
--- a/docs/api-reference/actions/get-a-specific-action.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /v1/actions/{actionName}
----
\ No newline at end of file
diff --git a/docs/api-reference/actions/get-list-of-actions.mdx b/docs/api-reference/actions/get-list-of-actions.mdx
deleted file mode 100644
index 3c178ab0a3f..00000000000
--- a/docs/api-reference/actions/get-list-of-actions.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /v1/actions
----
\ No newline at end of file
diff --git a/docs/api-reference/actions/get-action.mdx b/docs/api-reference/actions/get-single-action.mdx
similarity index 91%
rename from docs/api-reference/actions/get-action.mdx
rename to docs/api-reference/actions/get-single-action.mdx
index fd7a6d15c97..3ebf1796918 100644
--- a/docs/api-reference/actions/get-action.mdx
+++ b/docs/api-reference/actions/get-single-action.mdx
@@ -1,3 +1,3 @@
---
openapi: get /api/v2/actions/{actionId}
----
+---
\ No newline at end of file
diff --git a/docs/api-reference/actions/list-action-tags.mdx b/docs/api-reference/actions/list-action-tags.mdx
new file mode 100644
index 00000000000..6527d3af674
--- /dev/null
+++ b/docs/api-reference/actions/list-action-tags.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /api/v2/actions/list/tags
+---
\ No newline at end of file
diff --git a/docs/api-reference/actions/list-actions-minimal.mdx b/docs/api-reference/actions/list-actions-minimal.mdx
deleted file mode 100644
index 22bc0afe832..00000000000
--- a/docs/api-reference/actions/list-actions-minimal.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v2/actions/list/all
----
diff --git a/docs/api-reference/actions/list-actions.mdx b/docs/api-reference/actions/list-actions.mdx
index f007dd30769..b2a4a69880b 100644
--- a/docs/api-reference/actions/list-actions.mdx
+++ b/docs/api-reference/actions/list-actions.mdx
@@ -1,3 +1,3 @@
---
-openapi: get /api/v2/actions
+openapi: get /api/v2/actions/list/all
---
\ No newline at end of file
diff --git a/docs/api-reference/admin/clear-cache.mdx b/docs/api-reference/admin/clear-cache.mdx
deleted file mode 100644
index 7e69e16ae3a..00000000000
--- a/docs/api-reference/admin/clear-cache.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/clear-cache
----
\ No newline at end of file
diff --git a/docs/api-reference/admin/jssentry-dns.mdx b/docs/api-reference/admin/jssentry-dns.mdx
deleted file mode 100644
index 4f125384220..00000000000
--- a/docs/api-reference/admin/jssentry-dns.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/cli/js-sentry-dns
----
\ No newline at end of file
diff --git a/docs/api-reference/admin/sentry-dns.mdx b/docs/api-reference/admin/sentry-dns.mdx
deleted file mode 100644
index 39981c236a6..00000000000
--- a/docs/api-reference/admin/sentry-dns.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/cli/sentry-dns
----
\ No newline at end of file
diff --git a/docs/api-reference/analytics/get-analytics.mdx b/docs/api-reference/analytics/get-analytics.mdx
deleted file mode 100644
index a95bd2eb214..00000000000
--- a/docs/api-reference/analytics/get-analytics.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/analytics/
----
\ No newline at end of file
diff --git a/docs/api-reference/analytics/get-top-entities.mdx b/docs/api-reference/analytics/get-top-entities.mdx
deleted file mode 100644
index 727ac059005..00000000000
--- a/docs/api-reference/analytics/get-top-entities.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/analytics/entities
----
\ No newline at end of file
diff --git a/docs/api-reference/app-connector/create-connector.mdx b/docs/api-reference/app-connector/create-connector.mdx
deleted file mode 100644
index 81ccb63fda5..00000000000
--- a/docs/api-reference/app-connector/create-connector.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/integrations
----
\ No newline at end of file
diff --git a/docs/api-reference/app-connector/delete-connector.mdx b/docs/api-reference/app-connector/delete-connector.mdx
deleted file mode 100644
index deeb8bf7ae6..00000000000
--- a/docs/api-reference/app-connector/delete-connector.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: delete /api/v1/integrations/{integrationId}
----
\ No newline at end of file
diff --git a/docs/api-reference/app-connector/get-connector-info.mdx b/docs/api-reference/app-connector/get-connector-info.mdx
deleted file mode 100644
index fa62f1a42f6..00000000000
--- a/docs/api-reference/app-connector/get-connector-info.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/integrations/{integrationId}
----
\ No newline at end of file
diff --git a/docs/api-reference/app-connector/list-global-connectors.mdx b/docs/api-reference/app-connector/list-global-connectors.mdx
deleted file mode 100644
index b63105d1202..00000000000
--- a/docs/api-reference/app-connector/list-global-connectors.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/integrations
----
\ No newline at end of file
diff --git a/docs/api-reference/app-connector/patch-connector.mdx b/docs/api-reference/app-connector/patch-connector.mdx
deleted file mode 100644
index f38985492bb..00000000000
--- a/docs/api-reference/app-connector/patch-connector.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: patch /api/v1/integrations/{integrationId}
----
\ No newline at end of file
diff --git a/docs/api-reference/app-connector/patch-post-connector.mdx b/docs/api-reference/app-connector/patch-post-connector.mdx
deleted file mode 100644
index 35f688bdc6a..00000000000
--- a/docs/api-reference/app-connector/patch-post-connector.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/integrations/{integrationId}/status
----
\ No newline at end of file
diff --git a/docs/api-reference/app-login/handle-o-auth-2-callback.mdx b/docs/api-reference/app-login/handle-o-auth-2-callback.mdx
deleted file mode 100644
index 885fa0a462f..00000000000
--- a/docs/api-reference/app-login/handle-o-auth-2-callback.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/login/{appName}/auth
----
\ No newline at end of file
diff --git a/docs/api-reference/app-login/verify-o-auth-2-login.mdx b/docs/api-reference/app-login/verify-o-auth-2-login.mdx
deleted file mode 100644
index 586539e1aec..00000000000
--- a/docs/api-reference/app-login/verify-o-auth-2-login.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/login/{appName}/callback
----
\ No newline at end of file
diff --git a/docs/api-reference/app/add-custom-repo.mdx b/docs/api-reference/app/add-custom-repo.mdx
deleted file mode 100644
index 0bb483e0dd3..00000000000
--- a/docs/api-reference/app/add-custom-repo.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/apps/custom-repo/add-repo
----
\ No newline at end of file
diff --git a/docs/api-reference/app/add-open-api-spec.mdx b/docs/api-reference/app/add-open-api-spec.mdx
deleted file mode 100644
index 5e63bbf2f60..00000000000
--- a/docs/api-reference/app/add-open-api-spec.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/apps/openapi/spec/add
----
\ No newline at end of file
diff --git a/docs/api-reference/app/delete-open-api-spec-tool.mdx b/docs/api-reference/app/delete-open-api-spec-tool.mdx
deleted file mode 100644
index f715287556c..00000000000
--- a/docs/api-reference/app/delete-open-api-spec-tool.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: delete /api/v1/apps/openapi/spec/delete/{name}
----
\ No newline at end of file
diff --git a/docs/api-reference/app/get-custom-repo.mdx b/docs/api-reference/app/get-custom-repo.mdx
deleted file mode 100644
index efaeac8e5b1..00000000000
--- a/docs/api-reference/app/get-custom-repo.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/apps/custom-repo/get-repo
----
\ No newline at end of file
diff --git a/docs/api-reference/app/get-open-api-spec-logs.mdx b/docs/api-reference/app/get-open-api-spec-logs.mdx
deleted file mode 100644
index 38a35bbd108..00000000000
--- a/docs/api-reference/app/get-open-api-spec-logs.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/apps/openapi/spec/logs/{name}
----
\ No newline at end of file
diff --git a/docs/api-reference/app/get-opena-api-specs.mdx b/docs/api-reference/app/get-opena-api-specs.mdx
deleted file mode 100644
index 395fb0565a6..00000000000
--- a/docs/api-reference/app/get-opena-api-specs.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/apps/openapi/spec/list
----
\ No newline at end of file
diff --git a/docs/api-reference/app/sync-apps.mdx b/docs/api-reference/app/sync-apps.mdx
deleted file mode 100644
index 743553660fd..00000000000
--- a/docs/api-reference/app/sync-apps.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/apps/sync
----
\ No newline at end of file
diff --git a/docs/api-reference/apps/delete-open-api-spec-tool.mdx b/docs/api-reference/apps/delete-open-api-spec-tool.mdx
deleted file mode 100644
index f474c52c9e7..00000000000
--- a/docs/api-reference/apps/delete-open-api-spec-tool.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: delete /api/v1/apps/openapi/spec/delete/{id}
----
\ No newline at end of file
diff --git a/docs/api-reference/apps/get-app.mdx b/docs/api-reference/apps/get-app.mdx
deleted file mode 100644
index 5b3de18bf18..00000000000
--- a/docs/api-reference/apps/get-app.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/apps/{appName}
----
\ No newline at end of file
diff --git a/docs/api-reference/apps/get-apps.mdx b/docs/api-reference/apps/get-apps.mdx
deleted file mode 100644
index 91e8beb07fd..00000000000
--- a/docs/api-reference/apps/get-apps.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/apps
----
\ No newline at end of file
diff --git a/docs/api-reference/apps/get-open-api-spec-status.mdx b/docs/api-reference/apps/get-open-api-spec-status.mdx
deleted file mode 100644
index 3ea32d7e236..00000000000
--- a/docs/api-reference/apps/get-open-api-spec-status.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/apps/openapi/spec/status/{id}
----
\ No newline at end of file
diff --git a/docs/api-reference/apps/get-opena-api-specs.mdx b/docs/api-reference/apps/get-opena-api-specs.mdx
deleted file mode 100644
index 6b7e4fd41d4..00000000000
--- a/docs/api-reference/apps/get-opena-api-specs.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/apps/openapi/spec/list
----
\ No newline at end of file
diff --git a/docs/api-reference/app/get-app.mdx b/docs/api-reference/apps/get-single-app.mdx
similarity index 100%
rename from docs/api-reference/app/get-app.mdx
rename to docs/api-reference/apps/get-single-app.mdx
diff --git a/docs/api-reference/apps/list-all-apps.mdx b/docs/api-reference/apps/list-all-apps.mdx
deleted file mode 100644
index 8421a45cb55..00000000000
--- a/docs/api-reference/apps/list-all-apps.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /v1/apps
----
\ No newline at end of file
diff --git a/docs/api-reference/apps/list-app-categories.mdx b/docs/api-reference/apps/list-app-categories.mdx
new file mode 100644
index 00000000000..619043c3256
--- /dev/null
+++ b/docs/api-reference/apps/list-app-categories.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /api/v1/apps/list/categories
+---
\ No newline at end of file
diff --git a/docs/api-reference/app/get-apps.mdx b/docs/api-reference/apps/list-apps.mdx
similarity index 100%
rename from docs/api-reference/app/get-apps.mdx
rename to docs/api-reference/apps/list-apps.mdx
diff --git a/docs/api-reference/apps/send-email-to-client.mdx b/docs/api-reference/apps/send-email-to-client.mdx
deleted file mode 100644
index 6ecd32e8ae4..00000000000
--- a/docs/api-reference/apps/send-email-to-client.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: post /api/v1/apps/openapi/send_email_to_client
----
\ No newline at end of file
diff --git a/docs/api-reference/auth/identify-client.mdx b/docs/api-reference/auth/identify-client.mdx
deleted file mode 100644
index a537471ae32..00000000000
--- a/docs/api-reference/auth/identify-client.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: post /api/v1/client/auth/identify
----
\ No newline at end of file
diff --git a/docs/api-reference/cli/get-cli-code.mdx b/docs/api-reference/cli/get-cli-code.mdx
deleted file mode 100644
index 33028de534f..00000000000
--- a/docs/api-reference/cli/get-cli-code.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/cli/get-cli-code
----
\ No newline at end of file
diff --git a/docs/api-reference/cli/handle-cli-code-exchange.mdx b/docs/api-reference/cli/handle-cli-code-exchange.mdx
deleted file mode 100644
index d68ff581083..00000000000
--- a/docs/api-reference/cli/handle-cli-code-exchange.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/cli/generate-cli-session
----
\ No newline at end of file
diff --git a/docs/api-reference/cli/handle-cli-code-verification.mdx b/docs/api-reference/cli/handle-cli-code-verification.mdx
deleted file mode 100644
index aea620b35f7..00000000000
--- a/docs/api-reference/cli/handle-cli-code-verification.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/cli/verify-cli-code
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/delete-client.mdx b/docs/api-reference/client-auth/delete-client.mdx
deleted file mode 100644
index 903816d98dc..00000000000
--- a/docs/api-reference/client-auth/delete-client.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: delete /api/v1/client/auth/delete/{clientId}
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/google-login.mdx b/docs/api-reference/client-auth/google-login.mdx
deleted file mode 100644
index e772a6e3193..00000000000
--- a/docs/api-reference/client-auth/google-login.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/client/auth/google_login
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/identify-client.mdx b/docs/api-reference/client-auth/identify-client.mdx
deleted file mode 100644
index 44d79d18b1f..00000000000
--- a/docs/api-reference/client-auth/identify-client.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/client/auth/identify
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/logout-api.mdx b/docs/api-reference/client-auth/logout-api.mdx
deleted file mode 100644
index 58e7adaebc6..00000000000
--- a/docs/api-reference/client-auth/logout-api.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/client/auth/logout
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/pusher-user-auth.mdx b/docs/api-reference/client-auth/pusher-user-auth.mdx
deleted file mode 100644
index 9b508a635bf..00000000000
--- a/docs/api-reference/client-auth/pusher-user-auth.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/client/auth/pusher_auth
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/send-magic-link.mdx b/docs/api-reference/client-auth/send-magic-link.mdx
deleted file mode 100644
index 9933c232342..00000000000
--- a/docs/api-reference/client-auth/send-magic-link.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/client/auth/send_magic_link
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/track-client.mdx b/docs/api-reference/client-auth/track-client.mdx
deleted file mode 100644
index 1beadf8374f..00000000000
--- a/docs/api-reference/client-auth/track-client.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/client/auth/track
----
\ No newline at end of file
diff --git a/docs/api-reference/client-auth/verify-magic-link.mdx b/docs/api-reference/client-auth/verify-magic-link.mdx
deleted file mode 100644
index 1376eb7e928..00000000000
--- a/docs/api-reference/client-auth/verify-magic-link.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/client/auth/verify_magic_link
----
\ No newline at end of file
diff --git a/docs/api-reference/client/add-new-project.mdx b/docs/api-reference/client/add-new-project.mdx
new file mode 100644
index 00000000000..311c835cf45
--- /dev/null
+++ b/docs/api-reference/client/add-new-project.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /api/v1/client/auth/project/add
+---
\ No newline at end of file
diff --git a/docs/api-reference/client/delete-project.mdx b/docs/api-reference/client/delete-project.mdx
new file mode 100644
index 00000000000..56751f64492
--- /dev/null
+++ b/docs/api-reference/client/delete-project.mdx
@@ -0,0 +1,3 @@
+---
+openapi: delete /api/v1/client/auth/project/delete/{projectId}
+---
\ No newline at end of file
diff --git a/docs/api-reference/client/get-org-api-key.mdx b/docs/api-reference/client/get-org-api-key.mdx
new file mode 100644
index 00000000000..cee8a5942f4
--- /dev/null
+++ b/docs/api-reference/client/get-org-api-key.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /api/v1/client/auth/org/api_key
+---
\ No newline at end of file
diff --git a/docs/api-reference/client/get-projects.mdx b/docs/api-reference/client/get-projects.mdx
new file mode 100644
index 00000000000..3f282ca8432
--- /dev/null
+++ b/docs/api-reference/client/get-projects.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /api/v1/client/auth/projects
+---
\ No newline at end of file
diff --git a/docs/api-reference/auth/get-user-info.mdx b/docs/api-reference/client/get-user-info.mdx
similarity index 100%
rename from docs/api-reference/auth/get-user-info.mdx
rename to docs/api-reference/client/get-user-info.mdx
diff --git a/docs/api-reference/client/regenerate-org-api-key.mdx b/docs/api-reference/client/regenerate-org-api-key.mdx
new file mode 100644
index 00000000000..c0c9efa7080
--- /dev/null
+++ b/docs/api-reference/client/regenerate-org-api-key.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /api/v1/client/auth/org/api_key/regenerate
+---
\ No newline at end of file
diff --git a/docs/api-reference/connections/get-auth-credentials.mdx b/docs/api-reference/connections/get-auth-credentials.mdx
new file mode 100644
index 00000000000..e8c09ee0218
--- /dev/null
+++ b/docs/api-reference/connections/get-auth-credentials.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /api/v1/connectedAccounts/{connectedAccountId}/info
+---
\ No newline at end of file
diff --git a/docs/api-reference/connections/get-connection-info.mdx b/docs/api-reference/connections/get-connection-info.mdx
deleted file mode 100644
index 4c3b6eacb53..00000000000
--- a/docs/api-reference/connections/get-connection-info.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/connectedAccounts/{connectedAccountId}/info
----
\ No newline at end of file
diff --git a/docs/api-reference/connections/get-connection.mdx b/docs/api-reference/connections/get-single-connection.mdx
similarity index 100%
rename from docs/api-reference/connections/get-connection.mdx
rename to docs/api-reference/connections/get-single-connection.mdx
diff --git a/docs/api-reference/connections/get-connections.mdx b/docs/api-reference/connections/list-connections.mdx
similarity index 100%
rename from docs/api-reference/connections/get-connections.mdx
rename to docs/api-reference/connections/list-connections.mdx
diff --git a/docs/api-reference/event-logs/get-events.mdx b/docs/api-reference/event-logs/get-events.mdx
deleted file mode 100644
index c18360cfd9f..00000000000
--- a/docs/api-reference/event-logs/get-events.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/event_logs/get/events
----
\ No newline at end of file
diff --git a/docs/api-reference/event-logs/get-webhook-secret.mdx b/docs/api-reference/event-logs/get-webhook-secret.mdx
deleted file mode 100644
index d6edfd81ab8..00000000000
--- a/docs/api-reference/event-logs/get-webhook-secret.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/event_logs/webhook/secret/get
----
\ No newline at end of file
diff --git a/docs/api-reference/event-logs/get-webhook.mdx b/docs/api-reference/event-logs/get-webhook.mdx
deleted file mode 100644
index fca8e4ac45f..00000000000
--- a/docs/api-reference/event-logs/get-webhook.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/event_logs/get/webhook
----
\ No newline at end of file
diff --git a/docs/api-reference/event-logs/refresh-webhook.mdx b/docs/api-reference/event-logs/refresh-webhook.mdx
deleted file mode 100644
index 9985c0960c1..00000000000
--- a/docs/api-reference/event-logs/refresh-webhook.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: post /api/v1/event_logs/webhook/secret/refresh
----
\ No newline at end of file
diff --git a/docs/api-reference/event-logs/update-webhook.mdx b/docs/api-reference/event-logs/update-webhook.mdx
deleted file mode 100644
index 98b5bbee04e..00000000000
--- a/docs/api-reference/event-logs/update-webhook.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: post /api/v1/event_logs/set/webhook
----
\ No newline at end of file
diff --git a/docs/api-reference/integrations/create-a-new-integration.mdx b/docs/api-reference/integrations/create-a-new-integration.mdx
deleted file mode 100644
index b5129db4c5b..00000000000
--- a/docs/api-reference/integrations/create-a-new-integration.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /v1/integrations
----
\ No newline at end of file
diff --git a/docs/api-reference/integrations/create-connector.mdx b/docs/api-reference/integrations/create-connector.mdx
index 5f44d8cc250..81ccb63fda5 100644
--- a/docs/api-reference/integrations/create-connector.mdx
+++ b/docs/api-reference/integrations/create-connector.mdx
@@ -1,3 +1,3 @@
---
- openapi: post /api/v1/integrations
+openapi: post /api/v1/integrations
---
\ No newline at end of file
diff --git a/docs/api-reference/integrations/delete-connector.mdx b/docs/api-reference/integrations/delete-connector.mdx
index 07cbd557322..deeb8bf7ae6 100644
--- a/docs/api-reference/integrations/delete-connector.mdx
+++ b/docs/api-reference/integrations/delete-connector.mdx
@@ -1,3 +1,3 @@
---
- openapi: delete /api/v1/integrations/{integrationId}
+openapi: delete /api/v1/integrations/{integrationId}
---
\ No newline at end of file
diff --git a/docs/api-reference/integrations/get-an-integration.mdx b/docs/api-reference/integrations/get-an-integration.mdx
deleted file mode 100644
index 5be562c7f9b..00000000000
--- a/docs/api-reference/integrations/get-an-integration.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /v1/integrations/{integrationId}
----
\ No newline at end of file
diff --git a/docs/api-reference/integrations/get-connector-info.mdx b/docs/api-reference/integrations/get-connector-info.mdx
index b07f24ce574..fa62f1a42f6 100644
--- a/docs/api-reference/integrations/get-connector-info.mdx
+++ b/docs/api-reference/integrations/get-connector-info.mdx
@@ -1,3 +1,3 @@
---
- openapi: get /api/v1/integrations/{integrationId}
+openapi: get /api/v1/integrations/{integrationId}
---
\ No newline at end of file
diff --git a/docs/api-reference/integrations/list-all-connectors.mdx b/docs/api-reference/integrations/list-all-connectors.mdx
index 0a0968e0a6d..b63105d1202 100644
--- a/docs/api-reference/integrations/list-all-connectors.mdx
+++ b/docs/api-reference/integrations/list-all-connectors.mdx
@@ -1,3 +1,3 @@
---
- openapi: get /api/v1/integrations
+openapi: get /api/v1/integrations
---
\ No newline at end of file
diff --git a/docs/api-reference/integrations/list-all-integrations.mdx b/docs/api-reference/integrations/list-all-integrations.mdx
deleted file mode 100644
index d69420881c2..00000000000
--- a/docs/api-reference/integrations/list-all-integrations.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /v1/integrations
----
\ No newline at end of file
diff --git a/docs/api-reference/integrations/modify-connector.mdx b/docs/api-reference/integrations/modify-connector.mdx
index df7e6472c17..f38985492bb 100644
--- a/docs/api-reference/integrations/modify-connector.mdx
+++ b/docs/api-reference/integrations/modify-connector.mdx
@@ -1,3 +1,3 @@
---
- openapi: patch /api/v1/integrations/{integrationId}
+openapi: patch /api/v1/integrations/{integrationId}
---
\ No newline at end of file
diff --git a/docs/api-reference/integrations/update-an-integration.mdx b/docs/api-reference/integrations/update-an-integration.mdx
deleted file mode 100644
index cbbb284a482..00000000000
--- a/docs/api-reference/integrations/update-an-integration.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: patch /v1/integrations/{integrationId}
----
\ No newline at end of file
diff --git a/docs/api-reference/logs/post-logs.mdx b/docs/api-reference/logs/post-logs.mdx
index d764ff8f699..b98358b4db1 100644
--- a/docs/api-reference/logs/post-logs.mdx
+++ b/docs/api-reference/logs/post-logs.mdx
@@ -1,3 +1,3 @@
---
- openapi: post /api/v1/logs/
+openapi: post /api/v1/logs/
---
\ No newline at end of file
diff --git a/docs/api-reference/metadata/get-metadata.mdx b/docs/api-reference/metadata/get-metadata.mdx
deleted file mode 100644
index 0829ed5282b..00000000000
--- a/docs/api-reference/metadata/get-metadata.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/metadata
----
\ No newline at end of file
diff --git a/docs/api-reference/metadata/get-toggle-info.mdx b/docs/api-reference/metadata/get-toggle-info.mdx
deleted file mode 100644
index dcc2597f82b..00000000000
--- a/docs/api-reference/metadata/get-toggle-info.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/metadata/toggle.info
----
\ No newline at end of file
diff --git a/docs/api-reference/metadata/toggle-trigger-state.mdx b/docs/api-reference/metadata/toggle-trigger-state.mdx
deleted file mode 100644
index b638f69c04b..00000000000
--- a/docs/api-reference/metadata/toggle-trigger-state.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/metadata/toggle/trigger
----
\ No newline at end of file
diff --git a/docs/api-reference/metadata/update-metadata.mdx b/docs/api-reference/metadata/update-metadata.mdx
deleted file mode 100644
index 9a0594d60ed..00000000000
--- a/docs/api-reference/metadata/update-metadata.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/metadata
----
\ No newline at end of file
diff --git a/docs/api-reference/payment/create-checkout-session.mdx b/docs/api-reference/payment/create-checkout-session.mdx
deleted file mode 100644
index 616f766b1a2..00000000000
--- a/docs/api-reference/payment/create-checkout-session.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: post /api/v1/payment/create-checkout-session
----
\ No newline at end of file
diff --git a/docs/api-reference/payment/get-checkout-session-status.mdx b/docs/api-reference/payment/get-checkout-session-status.mdx
deleted file mode 100644
index d39f3aa0e99..00000000000
--- a/docs/api-reference/payment/get-checkout-session-status.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/payment/checkout-session/{sessionId}/status
----
\ No newline at end of file
diff --git a/docs/api-reference/payment/get-invoice.mdx b/docs/api-reference/payment/get-invoice.mdx
deleted file mode 100644
index 586b12f99c6..00000000000
--- a/docs/api-reference/payment/get-invoice.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/payment/invoices/{invoiceId}
----
\ No newline at end of file
diff --git a/docs/api-reference/payment/get-invoices.mdx b/docs/api-reference/payment/get-invoices.mdx
deleted file mode 100644
index df0f6264fb2..00000000000
--- a/docs/api-reference/payment/get-invoices.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: get /api/v1/payment/invoices
----
\ No newline at end of file
diff --git a/docs/api-reference/payment/handle-stripe-webhook.mdx b/docs/api-reference/payment/handle-stripe-webhook.mdx
deleted file mode 100644
index 1ae36d3bd52..00000000000
--- a/docs/api-reference/payment/handle-stripe-webhook.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
- openapi: post /api/v1/payment/webhook
----
\ No newline at end of file
diff --git a/docs/api-reference/projects/create-new-project.mdx b/docs/api-reference/projects/create-new-project.mdx
new file mode 100644
index 00000000000..aade19ed496
--- /dev/null
+++ b/docs/api-reference/projects/create-new-project.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /api/v1/org/projects/create
+---
\ No newline at end of file
diff --git a/docs/api-reference/projects/delete-project.mdx b/docs/api-reference/projects/delete-project.mdx
new file mode 100644
index 00000000000..3db29b36a2f
--- /dev/null
+++ b/docs/api-reference/projects/delete-project.mdx
@@ -0,0 +1,3 @@
+---
+openapi: delete /api/v1/org/projects/{projectId}
+---
\ No newline at end of file
diff --git a/docs/api-reference/projects/get-project.mdx b/docs/api-reference/projects/get-project.mdx
new file mode 100644
index 00000000000..28620a9e9cc
--- /dev/null
+++ b/docs/api-reference/projects/get-project.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /api/v1/org/projects/{projectId}
+---
\ No newline at end of file
diff --git a/docs/api-reference/projects/list-all-projects.mdx b/docs/api-reference/projects/list-all-projects.mdx
new file mode 100644
index 00000000000..1a12179a12c
--- /dev/null
+++ b/docs/api-reference/projects/list-all-projects.mdx
@@ -0,0 +1,3 @@
+---
+openapi: get /api/v1/org/projects
+---
\ No newline at end of file
diff --git a/docs/api-reference/projects/regenerate-project-api-key.mdx b/docs/api-reference/projects/regenerate-project-api-key.mdx
new file mode 100644
index 00000000000..52a5ca4ff94
--- /dev/null
+++ b/docs/api-reference/projects/regenerate-project-api-key.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /api/v1/org/projects/{projectId}/api-key/regenerate
+---
\ No newline at end of file
diff --git a/docs/api-reference/projects/rename-project.mdx b/docs/api-reference/projects/rename-project.mdx
new file mode 100644
index 00000000000..285f1eeb0e6
--- /dev/null
+++ b/docs/api-reference/projects/rename-project.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /api/v1/org/projects/{projectId}/rename
+---
\ No newline at end of file
diff --git a/docs/api-reference/team/remove-member.mdx b/docs/api-reference/team/remove-member.mdx
deleted file mode 100644
index 222d9af7680..00000000000
--- a/docs/api-reference/team/remove-member.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: delete /api/v1/team/members/{id}
----
\ No newline at end of file
diff --git a/docs/api-reference/triggers/get-list-of-triggers.mdx b/docs/api-reference/triggers/get-list-of-triggers.mdx
deleted file mode 100644
index 030e3c3c284..00000000000
--- a/docs/api-reference/triggers/get-list-of-triggers.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /v1/triggers
----
\ No newline at end of file
diff --git a/docs/api-reference/triggers/get-trigger-info.mdx b/docs/api-reference/triggers/get-trigger-info.mdx
index b2b68b2a378..47410ee3a86 100644
--- a/docs/api-reference/triggers/get-trigger-info.mdx
+++ b/docs/api-reference/triggers/get-trigger-info.mdx
@@ -1,3 +1,3 @@
---
- openapi: get /api/v2/triggers/{triggerName}
+openapi: get /api/v2/triggers/{triggerName}
---
\ No newline at end of file
diff --git a/docs/api-reference/triggers/get-trigger.mdx b/docs/api-reference/triggers/get-trigger.mdx
deleted file mode 100644
index d7ff538b115..00000000000
--- a/docs/api-reference/triggers/get-trigger.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: get /api/v1/triggers/get/{triggerId}
----
\ No newline at end of file
diff --git a/docs/api-reference/triggers/handle-pusher-events.mdx b/docs/api-reference/triggers/handle-pusher-events.mdx
deleted file mode 100644
index a706f720caa..00000000000
--- a/docs/api-reference/triggers/handle-pusher-events.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/triggers/pusher
----
\ No newline at end of file
diff --git a/docs/api-reference/triggers/handle-trigger.mdx b/docs/api-reference/triggers/handle-trigger.mdx
deleted file mode 100644
index 06ad44798d2..00000000000
--- a/docs/api-reference/triggers/handle-trigger.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/triggers/handle/{appName}/{clientId}
----
\ No newline at end of file
diff --git a/docs/api-reference/triggers/set-callback-url-1.mdx b/docs/api-reference/triggers/set-callback-url-1.mdx
deleted file mode 100644
index 7e8274aab1a..00000000000
--- a/docs/api-reference/triggers/set-callback-url-1.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/triggers/set_callback_url
----
\ No newline at end of file
diff --git a/docs/api-reference/triggers/set-callback-url.mdx b/docs/api-reference/triggers/set-callback-url.mdx
index cfe053b0fbf..7e8274aab1a 100644
--- a/docs/api-reference/triggers/set-callback-url.mdx
+++ b/docs/api-reference/triggers/set-callback-url.mdx
@@ -1,3 +1,3 @@
---
-openapi: post /api/v1/triggers/setCallbackURL
+openapi: post /api/v1/triggers/set_callback_url
---
\ No newline at end of file
diff --git a/docs/api-reference/triggers/switch-post-trigger-instance-status.mdx b/docs/api-reference/triggers/switch-post-trigger-instance-status.mdx
deleted file mode 100644
index 809ccdc28be..00000000000
--- a/docs/api-reference/triggers/switch-post-trigger-instance-status.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
----
-openapi: post /api/v1/triggers/instance/{triggerId}/status
----
\ No newline at end of file
diff --git a/docs/api-reference/triggers/update-new-webhook.mdx b/docs/api-reference/triggers/update-new-webhook.mdx
new file mode 100644
index 00000000000..5ac46d53664
--- /dev/null
+++ b/docs/api-reference/triggers/update-new-webhook.mdx
@@ -0,0 +1,3 @@
+---
+openapi: post /api/v1/triggers/update_webhook_format
+---
\ No newline at end of file
diff --git a/docs/composio_openapi.json b/docs/composio_openapi.json
index 12ed87ccec4..02bf7bc7629 100644
--- a/docs/composio_openapi.json
+++ b/docs/composio_openapi.json
@@ -1 +1 @@
-{"components":{"schemas":{"MemberInfoResDTO":{"properties":{"id":{"type":"string"},"clientId":{"type":"string"},"email":{"format":"email","type":"string"},"name":{"type":"string"},"role":{"type":"string"},"metadata":{},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"deletedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]}},"type":"object","required":["id","clientId","email","name","role","createdAt","updatedAt"],"description":"Member information"},"MagicLinkResDTO":{"properties":{"status":{"type":"string"}},"type":"object","required":["status"]},"MagicLinkReqDTO":{"properties":{"email":{"format":"email","type":"string","description":"The email of the user"},"verifyHost":{"type":"string","description":"The frontend host of the user"}},"type":"object","required":["email","verifyHost"]},"LogoutResDTO":{"properties":{"message":{"type":"string","description":"Message confirming the logout"}},"type":"object","required":["message"]},"VerifyMagicLinkReqDTO":{"properties":{"token":{"type":"string","description":"The magic link token"}},"type":"object","required":["token"]},"VerifyMagicLinkDataDTO":{"properties":{"clientId":{"type":"string"},"isValid":{"type":"boolean"},"jwtToken":{"type":"string"},"email":{"type":"string","format":"email"}},"type":"object","required":["clientId","isValid","jwtToken","email"],"description":"Data containing client and token information if verification is successful"},"VerifyMagicLinkResDTO":{"properties":{"message":{"type":"string","description":"Message indicating the result of the verification"},"data":{"$ref":"#/components/schemas/VerifyMagicLinkDataDTO"}},"type":"object","required":["message"]},"IdentifyClientReqDTO":{"properties":{"hash":{"type":"string","description":"The hash of the client"},"framework":{"type":"string","description":"The framework used by the client"}},"type":"object","required":["hash"]},"IdentifyClientResDTO":{"properties":{"clientId":{"type":"string","description":"The client ID"},"apiKey":{"type":"string","description":"The API key associated with the client"},"email":{"type":"string","description":"The email associated with the client"}},"type":"object","required":["clientId","apiKey","email"]},"UserGitUserInfo":{"properties":{"name":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["email"],"description":"User Git information"},"TrackClientReqDTO":{"properties":{"framework":{"type":"string","description":"The framework used by the client"},"mac_address":{"type":"string","description":"The MAC address of the client device"},"user_git_user_info":{"$ref":"#/components/schemas/UserGitUserInfo"}},"type":"object","required":["framework"]},"TrackClientResDTO":{"properties":{"message":{"type":"string","description":"Message indicating the result of the tracking operation"}},"type":"object","required":["message"]},"DeleteRowAPIDTO":{"properties":{"status":{"type":"string","description":"Status of the delete operation"},"count":{"type":"number","description":"Number of records deleted"}},"type":"object","required":["status","count"]},"ClientDTO":{"properties":{"autoId":{"type":"number","description":"Auto-generated ID of the client"},"id":{"type":"string","description":"Unique ID of the client"},"name":{"type":"string","description":"Name of the client"},"email":{"type":"string","description":"Email of the client"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Creation timestamp"},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last update timestamp"},"apiKey":{"type":"string","description":"API key for the client"},"webhookURL":{"type":"string","description":"Webhook URL for the client"},"eventWebhookURL":{"type":"string","description":"Event webhook URL for the client"},"webhookSecret":{"type":"string","description":"Secret for webhook authentication"},"triggersEnabled":{"type":"boolean","description":"Whether triggers are enabled for the client"},"lastSubscribedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last subscription timestamp"},"plan":{"type":"string","description":"Client's subscription plan"}},"type":"object","required":["autoId","id","name","email","createdAt","updatedAt","triggersEnabled","plan"]},"ClientInfoResDTO":{"properties":{"client":{"$ref":"#/components/schemas/ClientDTO","description":"Client information"},"apiKey":{"type":"string","description":"API key of the client"}},"type":"object","required":["client","apiKey"]},"InviteMemberReqDTO":{"properties":{"email":{"format":"email","type":"string","description":"The email of the member"},"name":{"type":"string","description":"The name of the member"},"verifyHost":{"type":"string","description":"The host to verify the member"},"role":{"enum":["admin","developer"],"type":"string","description":"The role that will be assignied to the invited user"}},"type":"object","required":["email","name","verifyHost"]},"MemberResDTO":{"properties":{"email":{"type":"string","description":"The email of the member"},"id":{"type":"string","description":"The uuid identifier for the member"},"name":{"type":"string","description":"The name of the member"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date of the member record"},"role":{"enum":["admin","developer"],"type":"string","description":"The role that is assigned to the member"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The last update date of the member record"}},"type":"object","required":["email","id","name","role"]},"UpdateMemberReqDTO":{"properties":{"memberId":{"type":"string","description":"The uuid identifier for the member"},"role":{"enum":["admin","developer"],"type":"string","description":"The role that is assigned to the member"}},"type":"object","required":["memberId","role"]},"GenerateAPIKeyReqDTO":{"properties":{"name":{"type":"string","description":"The name of the API key to be generated"}},"type":"object","required":["name"]},"APIKeyResDTO":{"properties":{"id":{"type":"string","description":"The ID of the API key"},"name":{"type":"string","description":"The name of the API key"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date of the API key"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The last update date of the API key"},"key":{"type":"string","description":"The generated API key"},"isHidden":{"type":"boolean","description":"Whether the API key is hidden"},"lastUsed":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The last used date of the API key"},"member":{"type":"object","description":"The member of the API key"}},"type":"object","required":["id","name","createdAt","updatedAt","key","isHidden","member"]},"DeleteAPIKeyReqDTO":{"properties":{"id":{"type":"string","description":"The ID of the API key to be deleted"}},"type":"object","required":["id"]},"DeleteAPIKeyResponseDTO":{"properties":{"deleted":{"type":"boolean","description":"The status of the delete operation"}},"type":"object","required":["deleted"]},"SingleAppInfoResDTO":{"properties":{"appId":{"type":"string","description":"The unique identifier for the app"},"key":{"type":"string","description":"The key of the app"},"name":{"type":"string","description":"The name of the app"},"description":{"type":"string","description":"The description of the app"},"logo":{"type":"string","description":"The logo of the app"},"categories":{"items":{"type":"string"},"type":"array","description":"The categories of the app"},"path":{"type":"string","description":"The path of the app"},"docs":{"type":"string","description":"The documentation URL of the app"},"configuration_docs_text":{"type":"string","description":"The configuration documentation text of the app"},"status":{"type":"string","description":"The status of the app"},"documentation_doc_text":{"type":"string","description":"The documentation text of the app"},"testConnectors":{"items":{"type":"object"},"type":"array","description":"The test connectors of the app"},"no_auth":{"type":"boolean","description":"Indicates if the app has no authentication"},"auth_schemes":{"items":{"type":"object"},"type":"array","description":"The authentication schemes of the app"},"meta":{"description":"The metadata of the app"},"yaml":{"description":"The yaml of the app"}},"type":"object","required":["appId","key","name","description"]},"AddToolsReqDTO":{"properties":{"name":{"type":"string","description":"The name of the tool"},"openApiSpecYaml":{"type":"string","description":"The OpenAPI specification in YAML format"},"integrationYaml":{"type":"string","description":"The integration details in YAML format"}},"type":"object","required":["name","openApiSpecYaml","integrationYaml"]},"OpenAPISpecListResDTO":{"properties":{"id":{"type":"string","description":"Unique identifier for the OpenAPI spec"},"name":{"type":"string","description":"Name of the OpenAPI spec"},"clientId":{"type":"string","description":"Client identifier"},"lastSyncAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Last synchronization date and time","format":"date-time"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Creation date and time","format":"date-time"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Last update date and time","format":"date-time"},"status":{"enum":["initialized","running","caching","cancelled","finished","exited"],"type":"string","description":"The job status of the app"},"state":{"enum":["preprocess","validate","prepare","build","push","load","finish"],"type":"string","description":"Current state of the app FSM"}},"type":"object","required":["id","name","clientId","lastSyncAt","createdAt","updatedAt"]},"AddRepoURLResDTO":{"properties":{"repoUrl":{"type":"string","description":"Repository URL"}},"type":"object","required":["repoUrl"]},"DeleteToolsReqDTO":{"properties":{"name":{"type":"string","description":"Name of the tool"}},"type":"object","required":["name"]},"DeleteToolsResDTO":{"properties":{"message":{"type":"string","description":"Message indicating successful deletion of tools"}},"type":"object","required":["message"]},"AddToolsRequestDTO":{"properties":{"name":{"type":"string","description":"The name of the tool"},"open_api_spec_yaml":{"type":"string","description":"The OpenAPI specification in YAML format"},"integration_yaml":{"type":"string","description":"The integration details in YAML format"}},"type":"object","required":["name","open_api_spec_yaml","integration_yaml"]},"AddRepoURLReqDTO":{"properties":{"repoUrl":{"type":"string","description":"Repository URL"}},"type":"object","required":["repoUrl"]},"AppQueryDTO":{"properties":{"category":{"type":"string","description":"Category of the app"},"additionalFields":{"type":"string","description":"Additional fields to include in the response"},"includeLocal":{"type":"string","description":"Enter 'true' or 'false'"}},"type":"object"},"AppInfoResponseDto":{"properties":{"appId":{"type":"string","description":"The ID of the app"},"key":{"type":"string","description":"The key of the app"},"name":{"type":"string","description":"The name of the app"},"description":{"type":"string","description":"The description of the app"},"logo":{"type":"string","description":"The logo of the app"},"categories":{"items":{"type":"object"},"type":"string","description":"The categories of the app"},"tags":{"items":{"type":"object"},"type":"string","description":"The tags of the app"},"auth_schemes":{"description":"The authentication schemes of the app"},"enabled":{"type":"boolean","description":"Indicates if the app is enabled"},"no_auth":{"type":"boolean","description":"Indicates if the app has no authentication"}},"type":"object","required":["appId","key","name","description","logo","categories","enabled"]},"AppListResDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AppInfoResponseDto"},"type":"array","description":"List of app details"},"totalPages":{"type":"number","description":"Total number of pages"}},"type":"object","required":["items","totalPages"]},"ExpectedInputFieldsDTO":{"properties":{"name":{"type":"string","description":"Name of the field"},"type":{"type":"string","description":"Type of the field"},"description":{"type":"string","description":"Description of the field"},"display_name":{"type":"string","description":"Display name of the field"},"default":{"type":"object","description":"Default value of the field"},"required":{"type":"boolean","description":"Whether the field is required"},"expected_from_customer":{"type":"boolean","description":"Whether the field is expected from customer"},"is_secret":{"type":"boolean","description":"Whether the field is a secret"}},"type":"object","required":["name","type","description","display_name","default","required","expected_from_customer","is_secret"]},"GetConnectorInfoResDTO":{"properties":{"id":{"type":"string","description":"Unique identifier of the connector"},"authScheme":{"type":"string","description":"Authentication scheme used by the connector"},"name":{"type":"string","description":"Name of the connector"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Creation date of the connector"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Last update date of the connector"},"enabled":{"type":"boolean","description":"Flag to indicate if the connector is currently enabled"},"deleted":{"type":"boolean","description":"Flag to indicate if the connector has been deleted"},"appId":{"type":"string","description":"Application ID associated with the connector"},"defaultConnectorId":{"type":"string","description":"Default connector ID if one exists"},"authConfig":{"type":"object","description":"Authentication configuration with sensitive data obscured"},"expectedInputFields":{"items":{"$ref":"#/components/schemas/ExpectedInputFieldsDTO"},"type":"array","description":"List of required fields expected from the customer"},"logo":{"type":"string","description":"Logo URL of the application associated with the connector"},"appName":{"type":"string","description":"Name of the application associated with the connector"},"useComposioAuth":{"type":"boolean","description":"Flag to indicate if Composio authentication is used"}},"type":"object","required":["enabled","appId","authConfig","expectedInputFields","logo","appName","useComposioAuth"]},"AuthConfigDTO":{"properties":{"scopes":{"items":{"type":"string"},"type":"array"},"user_scopes":{"items":{"type":"string"},"type":"array"}},"type":"object","description":"Authentication configuration"},"CreateConnectorPayloadDTO":{"properties":{"name":{"type":"string","description":"Name of the connector"},"authScheme":{"type":"string","description":"Authentication scheme"},"authConfig":{"$ref":"#/components/schemas/AuthConfigDTO"},"useComposioAuth":{"type":"boolean","description":"Flag to indicate if Composio authentication should be used","anyOf":[{"type":"boolean"}]},"appId":{"type":"string","description":"Composio App UUID to be used for authentication. Either specify this or appName"},"appName":{"type":"string","description":"Name of the app to be used for authentication. Either specify this or appId"},"forceNewIntegration":{"type":"boolean","description":"Flag to force new integration"}},"type":"object","required":["name"]},"PatchConnectorReqDTO":{"properties":{"authConfig":{"type":"object","description":"Authentication configuration for the connector"},"enabled":{"type":"boolean","description":"Flag to indicate if the connector is enabled"}},"type":"object"},"PatchConnectorResDTO":{"properties":{"status":{"type":"string","description":"Status of the patch operation"}},"type":"object","required":["status"]},"ConnectorListItemDTO":{"properties":{"appName":{"type":"string","description":"Application name associated with the connector"},"_count":{"type":"object","description":"Count of connections for the connector"},"connections":{"items":{"type":"object"},"type":"array","description":"List of connections with their details and request logs count"},"id":{"type":"string","description":"Unique identifier of the connector"},"member":{"$ref":"#/components/schemas/MemberInfoResDTO"},"name":{"type":"string","description":"Name of the connector"},"authScheme":{"type":"string","description":"Authentication scheme used by the connector"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Creation date of the connector"},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last update date of the connector"},"enabled":{"type":"boolean","description":"Flag to indicate if the connector is enabled"},"deleted":{"type":"boolean","description":"Flag to indicate if the connector is deleted"},"appId":{"type":"string","description":"App ID associated with the connector"},"defaultConnectorId":{"type":"string","description":"Default connector ID if available"}},"type":"object","required":["appName","_count","connections","id","member","name","authScheme","createdAt","updatedAt","enabled","appId"],"description":"List of connectors"},"GetConnectorListResDTO":{"properties":{"items":{"items":{"type":"object"},"type":"array"},"totalPages":{"type":"number","description":"Total number of pages available"},"page":{"type":"number","description":"Current page number"}},"type":"object","required":["items","totalPages","page"]},"PageInfo":{"properties":{"total":{"minimum":0,"type":"integer"},"page":{"minimum":1,"type":"integer"},"pageSize":{"minimum":1,"type":"integer"},"totalPages":{"minimum":1,"type":"integer"}},"type":"object","required":["total","page","pageSize","totalPages"]},"ConnectionWithAppData":{"properties":{"id":{"type":"string"},"integrationId":{"type":"string"},"clientUniqueUserId":{"type":"string"},"status":{"type":"string"},"data":{"type":"object"},"deleted":{"type":"boolean"},"enabled":{"type":"boolean"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"appUniqueId":{"type":"string"},"appName":{"type":"string"},"logo":{"type":"string"},"authConfig":{"type":"object"},"member":{"items":{"$ref":"#/components/schemas/MemberInfoResDTO"},"type":"object"},"labels":{"items":{"type":"string"},"type":"array"}},"type":"object","required":["id","integrationId","status","createdAt","updatedAt","appUniqueId","appName","member"]},"GetConnectionsResult":{"properties":{"connections":{"items":{"$ref":"#/components/schemas/ConnectionWithAppData"},"type":"array"},"pageInfo":{"$ref":"#/components/schemas/PageInfo"}},"type":"object","required":["connections","pageInfo"]},"ToolsExecuteReqDto":{"properties":{"actionName":{"type":"string"},"runInSandbox":{"type":"boolean"},"input":{"type":"object"},"nlaInput":{"type":"string"},"authorizationData":{"type":"object"},"appSchema":{"type":"object"}},"type":"object","required":["actionName","runInSandbox","input"]},"DirectExecuteReqDto":{"properties":{"endpoint":{"type":"string"},"base_url":{"type":"string"},"headers":{"type":"object"},"queryParams":{"type":"object"}},"type":"object","required":["endpoint","base_url","headers","queryParams"]},"ActionExecutionResDto":{"properties":{"data":{"type":"object"},"error":{"type":"string"},"successfull":{"type":"string"}},"type":"object","required":["data"]},"ConnectionParams":{"properties":{"integrationId":{"type":"string"},"connectionParams":{"type":"object"},"isDisabled":{"type":"boolean"},"invocationCount":{"type":"number"},"id":{"type":"string"},"clientUniqueUserId":{"type":"string"},"status":{"type":"string"},"data":{"type":"object"},"deleted":{"type":"boolean"},"enabled":{"type":"boolean"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"appUniqueId":{"type":"string"},"appName":{"type":"string"},"logo":{"type":"string"},"authConfig":{"type":"object"},"member":{"items":{"$ref":"#/components/schemas/MemberInfoResDTO"},"type":"object"},"labels":{"items":{"type":"string"},"type":"array"}},"type":"object","required":["integrationId","isDisabled","invocationCount","id","status","createdAt","updatedAt","appUniqueId","appName","member"]},"ToggleConnectedAccountResponseDTO":{"properties":{"status":{"type":"string"}},"type":"object","required":["status"]},"ConnectionParamsHeaders":{"properties":{"Authorization":{"type":"string"},"x-request-id":{"type":"string"}},"type":"object"},"ConnectionParamsForAccount":{"properties":{"scope":{"type":"string"},"scopes":{"type":"string"},"id_token":{"type":"string"},"client_id":{"type":"string"},"expires_in":{"type":"string"},"token_type":{"type":"string"},"callback_url":{"type":"string"},"client_secret":{"type":"string"},"code_verifier":{"type":"string"},"refresh_token":{"type":"string"},"headers":{"type":"object"},"queryParams":{"type":"object"},"base_url":{"type":"string"}},"type":"object"},"MetaApp":{"properties":{"get_current_user_endpoint":{"type":"string"}},"type":"object","required":["get_current_user_endpoint"]},"Meta":{"properties":{"app":{"type":"object"}},"type":"object","required":["app"]},"ConnectedAccountResponseDTO":{"properties":{"integrationId":{"type":"string"},"appUniqueId":{"type":"string"},"memberInfo":{"$ref":"#/components/schemas/MemberInfoResDTO"},"meta":{"$ref":"#/components/schemas/Meta"},"isDisabled":{"type":"boolean"},"id":{"type":"string"},"clientUniqueUserId":{"type":"string"},"appName":{"type":"string"},"entityId":{"type":"string"},"status":{"type":"string"},"enabled":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"type":"object","required":["integrationId","appUniqueId","id","clientUniqueUserId","appName","entityId","status","createdAt","updatedAt"]},"GetConnectionsResponseDto":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConnectionParams"},"type":"array"},"totalPages":{"type":"number"},"page":{"type":"number"}},"type":"object","required":["items","totalPages","page"]},"GetConnectionInfoResponseDTO":{"properties":{"base_url":{"type":"string"},"parameters":{"items":{"$ref":"#/components/schemas/Parameter"},"type":"array"},"body":{"type":"object"}},"type":"object","required":["base_url","parameters","body"]},"Parameter":{"properties":{"name":{"type":"string"},"in":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["name","in","value"]},"Data":{"properties":{"field1":{"type":"string"},"field2":{"type":"string"}},"type":"object","required":["field1","field2"]},"AdditionalInfo":{"properties":{"meta":{"type":"string"}},"type":"object","required":["meta"]},"GetConnectionsQueryDto":{"properties":{"page":{"type":"number"},"pageSize":{"type":"number"},"appNames":{"type":"string"},"integrationId":{"type":"string"},"connectionId":{"type":"string"},"user_uuid":{"type":"string"},"showActiveOnly":{"type":"boolean"},"status":{"type":"string"},"showDisabled":{"type":"boolean"},"labels":{"items":{"type":"string"},"type":"array"}},"type":"object"},"InitiateConnectionPayloadDto":{"properties":{"data":{"type":"object"},"integrationId":{"minLength":1,"type":"string"},"redirectUri":{"type":"string"},"userUuid":{"type":"string"},"entityId":{"type":"string"},"labels":{"items":{"type":"string"},"type":"array"}},"type":"object","required":["data","integrationId"]},"UpdateConnectionLabelsPayloadDto":{"properties":{"labels":{"items":{"type":"string"},"type":"array"}},"type":"object","required":["labels"]},"InitiateConnectionResponse":{"properties":{"connectionStatus":{"minLength":1,"type":"string"},"connectedAccountId":{"minLength":1,"type":"string"},"redirectUrl":{"type":"string"}},"type":"object","required":["connectionStatus","connectedAccountId"]},"CustomAuthDTO":{"properties":{"base_url":{"type":"string"},"parameters":{"items":{"$ref":"#/components/schemas/Parameter"},"type":"array"},"body":{"type":"object"}},"type":"object","required":["parameters"]},"SessionInfoDTO":{"properties":{"sessionId":{"type":"string"},"metadata":{"type":"object"}},"type":"object"},"ActionExecutionReqDTO":{"properties":{"connectedAccountId":{"type":"string"},"appName":{"type":"string"},"entityId":{"type":"string"},"endpoint":{"type":"string"},"input":{"type":"object"},"sessionInfo":{"$ref":"#/components/schemas/SessionInfoDTO","type":"object"},"authConfig":{"$ref":"#/components/schemas/CustomAuthDTO"},"text":{"type":"string"}},"type":"object"},"ActionGetNLAInputsReqDTO":{"properties":{"text":{"type":"string"}},"type":"object","required":["text"]},"ProxyExecutionReqDTO":{"properties":{"endpoint":{"type":"string"},"connectedAccountId":{"type":"string"}},"type":"object","required":["endpoint","connectedAccountId"]},"ActionDetailsMinimal":{"properties":{"appId":{"type":"string"},"appKey":{"type":"string"},"appName":{"type":"string"},"description":{"type":"string"},"displayName":{"type":"string"},"enabled":{"type":"boolean"},"logo":{"type":"string"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"deprecated":{"type":"boolean"}},"type":"object","required":["appKey","appName","description","displayName","enabled","logo","name","tags","deprecated"]},"ActionDetails":{"properties":{"parameters":{"type":"object"},"response":{"type":"object"},"appId":{"type":"string"},"appKey":{"type":"string"},"appName":{"type":"string"},"description":{"type":"string"},"displayName":{"type":"string"},"enabled":{"type":"boolean"},"logo":{"type":"string"},"name":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"deprecated":{"type":"boolean"}},"type":"object","required":["parameters","response","appKey","appName","description","displayName","enabled","logo","name","tags","deprecated"]},"ActionsListResponseDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ActionDetails"},"type":"array"},"page":{"type":"number"},"totalPages":{"type":"number"}},"type":"object","required":["items","page","totalPages"]},"ActionsMinimalListResponseDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ActionDetailsMinimal"},"type":"array"},"page":{"type":"number"},"totalPages":{"type":"number"}},"type":"object","required":["items","page","totalPages"]},"ExecuteActionResDTO":{"properties":{"response_data":{"type":"boolean","description":"Indicates if the action was executed successfully"},"execution_details":{"type":"object","description":"Details of the execution status"}},"type":"object","required":["response_data","execution_details"]},"ActionsQueryDTO":{"properties":{"appNames":{"type":"string","description":"Names of the apps"},"useCase":{"type":"string","description":"Use case"},"showEnabledOnly":{"type":"boolean","description":"Show enabled only"},"limit":{"type":"number","description":"Limit"}},"type":"object"},"ActionsControllerV1":{"properties":{"getAction":{"items":{"type":"object"},"type":"array"}},"type":"object","required":["getAction"]},"OAuth2CallbackQueryDto":{"properties":{"state":{"type":"string"}},"type":"object","required":["state"]},"RedirectUriDTO":{"properties":{"redirectUri":{"type":"string"}},"type":"object"},"ListTriggersQueryDTO":{"properties":{"appNames":{"type":"string","description":"Names of the apps"},"connectedAccountIds":{"type":"string","description":"IDs of the connected accounts"},"triggerIds":{"type":"string","description":"IDs of the triggers"},"integrationIds":{"type":"string","description":"Integration ID"},"showEnabledOnly":{"type":"boolean","description":"Show enabled only"}},"type":"object"},"GetActiveTriggersQueryDTO":{"properties":{"connectedAccountIds":{"type":"string","description":"IDs of the connected accounts"},"integrationIds":{"type":"string","description":"IDs of the integrations"},"triggerIds":{"type":"string","description":"IDs of the triggers"},"triggerNames":{"type":"string","description":"Names of the triggers"},"page":{"type":"number","description":"Page number"},"limit":{"type":"number","description":"Limit per page"},"showDisabled":{"type":"boolean","description":"Show disabled triggers"}},"type":"object"},"GetLogsQueryDTO":{"properties":{"connectionId":{"type":"string","description":"ID of the connection"},"integrationId":{"type":"string","description":"ID of the integration"},"page":{"type":"number","description":"Page number"},"limit":{"type":"number","description":"Limit per page"}},"type":"object"},"TriggerResDTO":{"properties":{"name":{"type":"string","description":"Trigger name"},"display_name":{"type":"string","description":"Trigger display name"},"description":{"type":"string","description":"Trigger description"},"enabled":{"type":"boolean","description":"Is trigger enabled"},"config":{"type":"object","description":"Trigger configuration"},"payload":{"type":"object","description":"Trigger payload"},"logo":{"type":"string","description":"Trigger logo URL"},"count":{"type":"number","description":"Trigger count"},"appKey":{"type":"string","description":"App key"},"appId":{"type":"string","description":"App ID"},"appName":{"type":"string","description":"App name"},"instructions":{"type":"string","description":"Trigger instructions"},"type":{"type":"string","description":"Trigger type"}},"type":"object","required":["name","display_name","appKey","appId","appName"]},"SingleTriggerResDTO":{"properties":{"name":{"type":"string","description":"Trigger name"},"displayName":{"type":"string","description":"Trigger display name"},"description":{"type":"string","description":"Trigger description"},"type":{"type":"string","description":"Trigger type"},"appId":{"type":"string","description":"App ID"},"appName":{"type":"string","description":"App name"},"instructions":{"type":"string","description":"Trigger instructions"},"payload":{"type":"object","description":"Trigger payload"},"config":{"type":"object","description":"Trigger config"}},"type":"object","required":["name","displayName","description","type","appId","appName","payload","config"]},"TriggerConfig":{"properties":{"repo":{"type":"string","description":"Repository name"},"owner":{"type":"string","description":"Repository owner"}},"type":"object","required":["repo","owner"],"description":"Trigger configuration"},"ActiveTriggerInstance":{"properties":{"id":{"type":"string","description":"Trigger instance ID"},"connectionId":{"type":"string","description":"Connected account ID"},"triggerName":{"type":"string","description":"Trigger name"},"triggerData":{"type":"string","description":"Trigger data"},"triggerConfig":{"$ref":"#/components/schemas/TriggerConfig"},"createdAt":{"type":"string","description":"Created at timestamp","format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp","format":"date-time"},"disabledAt":{"type":"string","description":"Disabled at timestamp","format":"date-time","nullable":true}},"type":"object","required":["connectionId","triggerName","triggerConfig","createdAt","updatedAt"]},"PageInfoDTO":{"properties":{"currentPage":{"type":"number"},"perPage":{"type":"number"},"totalPages":{"type":"number"}},"type":"object","required":["currentPage","perPage","totalPages"]},"ActiveTriggersResDTO":{"properties":{"triggers":{"items":{"type":"object"},"type":"array"},"pageInfo":{"items":{"$ref":"#/components/schemas/PageInfoDTO"},"type":"array"}},"type":"object","required":["triggers","pageInfo"]},"TriggerLogsResDTO":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TriggerLogItemDTO"},"type":"array"},"pageInfo":{"$ref":"#/components/schemas/PageInfoDTO"}},"type":"object","required":["data","pageInfo"]},"TriggerLogItemDTO":{"properties":{"clientId":{"type":"string","description":"Client ID"},"connectionId":{"type":"string","description":"Connection ID"},"errorTrigger":{"type":"string","description":"Error trigger","nullable":true},"triggerClientError":{"type":"string","description":"Trigger client error","nullable":true},"triggerClientPayload":{"type":"string","description":"Trigger client payload","nullable":true},"triggerProviderPayload":{"type":"string","description":"Trigger provider payload","nullable":true},"triggerName":{"type":"string","description":"Trigger name","nullable":true},"id":{"type":"string","description":"Log ID"},"appKey":{"type":"string","description":"App key"},"createdAt":{"type":"string","description":"Created at timestamp","format":"date-time"}},"type":"object","required":["clientId","connectionId","id","appKey","createdAt"]},"HandleTriggerParamsDTO":{"properties":{"appName":{"type":"string","description":"The name of the app"},"clientId":{"type":"string","description":"The client ID"}},"type":"object","required":["appName","clientId"]},"HandleTriggerBodyDTO":{"properties":{"body":{"type":"object","description":"The trigger payload"}},"type":"object","required":["body"]},"EnableTriggerParamsDTO":{"properties":{"connectedAccountId":{"type":"string","description":"The connected account ID"},"triggerName":{"type":"string","description":"The trigger name"}},"type":"object","required":["connectedAccountId","triggerName"]},"GetTriggerParamsDTO":{"properties":{"triggerId":{"type":"string","description":"The connected account ID"}},"type":"object","required":["triggerId"]},"EnableTriggerBodyDTO":{"properties":{"triggerConfig":{"type":"object","description":"The trigger configuration"},"verifyHost":{"type":"string","description":"The verify host"}},"type":"object","required":["triggerConfig"]},"SwitchTriggerStatusParamsDTO":{"properties":{"triggerId":{"type":"string","description":"The trigger instance ID"}},"type":"object","required":["triggerId"]},"SwitchTriggerStatusBodyDTO":{"properties":{"enabled":{"type":"boolean","description":"The new enabled status of the trigger"}},"type":"object","required":["enabled"]},"TriggerInstanceParamsDTO":{"properties":{"triggerInstanceId":{"type":"string","description":"The trigger instance ID"}},"type":"object","required":["triggerInstanceId"]},"SetCallbackUrlBodyDTO":{"properties":{"callbackURL":{"type":"string","description":"The callback URL"}},"type":"object","required":["callbackURL"]},"TriggerResponseDTO":{"properties":{"status":{"type":"string","description":"The status of the operation"},"message":{"type":"string","description":"Optional message"},"triggerId":{"type":"string","description":"Optional trigger ID"},"isNew":{"type":"boolean","description":"Is new trigger. If true, the trigger was created just now or else it was already existing"}},"type":"object","required":["status"]},"WebhookURLResponseDTO":{"properties":{"status":{"type":"string","description":"The status of the operation"},"callbackURL":{"type":"string","description":"The callback URL if found"}},"type":"object","required":["status"]},"TriggerMetadataDTO":{"properties":{"id":{"type":"string","description":"The unique identifier of the trigger"},"connectionId":{"type":"string","description":"The connection identifier associated with the trigger"},"triggerName":{"type":"string","description":"The name of the trigger"},"triggerData":{"type":"string","description":"The data associated with the trigger"},"triggerConfig":{"type":"object","description":"The configuration of the trigger"},"state":{"type":"object","description":"The state of the trigger"},"createdAt":{"type":"string","description":"The creation date of the trigger"},"updatedAt":{"type":"string","description":"The last update date of the trigger"},"disabledAt":{"type":"string","description":"The date when the trigger was disabled, if applicable"},"disabledReason":{"type":"string","description":"The reason why the trigger was disabled, if applicable"}},"type":"object","required":["id","connectionId","triggerName","triggerData","triggerConfig","state","createdAt","updatedAt"],"description":"The trigger details if found"},"GetTriggerResponseDTO":{"properties":{"status":{"type":"string","description":"The status of the operation"},"trigger":{"$ref":"#/components/schemas/TriggerMetadataDTO"}},"type":"object","required":["status"]},"GenerateCLISessionReqDTO":{"properties":{"channel_name":{"type":"string","description":"The channel name for the CLI session"}},"type":"object","required":["channel_name"]},"GenerateCLISessionResDTO":{"properties":{"key":{"type":"string","description":"The key for the CLI session"}},"type":"object","required":["key"]},"GetCLISessionResDTO":{"properties":{"clientId":{"type":"string","description":"The client ID"},"cliCode":{"type":"string","description":"The CLI code"}},"type":"object","required":["clientId","cliCode"]},"VerifyCLICodeResDTO":{"properties":{"clientId":{"type":"string","description":"The client ID"},"cliCode":{"type":"string","description":"The CLI code"},"apiKey":{"type":"string","description":"The API key associated with the client"}},"type":"object","required":["clientId","cliCode","apiKey"]},"CLIQueryDTO":{"properties":{"key":{"type":"string","description":"Unique key for CLI session"},"code":{"type":"string","description":"Code for CLI verification"}},"type":"object","required":["key"]},"MetadataReqDTO":{"properties":{"email":{"type":"string","description":"The email associated with the metadata request"},"metadata":{"description":"Additional metadata as a key-value pair"}},"type":"object","required":["email"]},"TriggersEnabledToggleReqDTO":{"properties":{"enabled":{"type":"boolean","description":"Flag to enable or disable triggers"}},"type":"object","required":["enabled"]},"TriggersEnabledToggleResDTO":{"properties":{"message":{"type":"string","description":"Message indicating the result of the toggle operation"}},"type":"object","required":["message"]},"TriggerToggleInfoResponseDTO":{"properties":{"triggersEnabled":{"type":"boolean","description":"Indicates if triggers are enabled"}},"type":"object","required":["triggersEnabled"]},"ToggleTriggerStateResponseDTO":{"properties":{"message":{"type":"string"}},"type":"object","required":["message"]},"MetadataQueryDTO":{"properties":{"email":{"type":"string","description":"Email of the client"}},"type":"object","required":["email"]},"TriggerMetadata":{"properties":{"id":{"type":"string","description":"The unique id of the log"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["trigger"]}]},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was created","format":"date-time"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was updated","format":"date-time"},"provider":{"type":"string","description":"The provider of the log"},"clientId":{"type":"string","description":"The client uuid of the log"},"connectionId":{"type":"string","description":"The connection id of the log"},"triggerProviderPayload":{"type":"string","description":"The trigger provider payload of the log"},"triggerClientPayload":{"type":"string"},"triggerClientError":{"type":"string","description":"The trigger client error of the log"},"triggerName":{"type":"string","description":"The trigger name of the log"},"triggerClientResponse":{"type":"string","description":"The trigger client response of the log"}},"type":"object","required":["id","type","createdAt","updatedAt","provider","clientId","connectionId"],"description":"Metadata associated with the trigger log"},"ActionMetadata":{"properties":{"id":{"type":"string","description":"The unique id of the log"},"request":{"type":"string","description":"The request sent to the provider"},"response":{"type":"string","description":"The response from the provider"},"errorRequest":{"type":"string","description":"The error request sent to the provider"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["action"]}]},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was created","format":"date-time"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was updated","format":"date-time"},"provider":{"type":"string","description":"The provider of the log"},"clientId":{"type":"string","description":"The client uuid of the log"},"connectionId":{"type":"string","description":"The connection id of the log"},"actionName":{"type":"string","description":"The action name of the log"}},"type":"object","required":["id","request","type","createdAt","updatedAt","provider","clientId","connectionId","actionName"]},"TriggerLogData":{"properties":{"id":{"type":"string","description":"The unique identifier of the trigger log"},"connectionId":{"type":"string","description":"The connection identifier associated with the trigger log"},"clientId":{"type":"string","description":"The client identifier associated with the trigger log"},"status":{"type":"string","description":"The status of the trigger log"},"appName":{"type":"string","description":"The name of the application associated with the trigger log"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date and time of the trigger log","format":"date-time"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["trigger"]}]},"meta":{"$ref":"#/components/schemas/TriggerMetadata"}},"type":"object","required":["id","connectionId","clientId","status","appName","createdAt","type","meta"]},"ActionLogData":{"properties":{"id":{"type":"string","description":"The unique identifier of the action log"},"connectionId":{"type":"string","description":"The connection identifier associated with the action log"},"clientId":{"type":"string","description":"The client identifier associated with the action log"},"status":{"type":"string","description":"The status of the action log"},"appName":{"type":"string","description":"The name of the application associated with the action log"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date and time of the action log","format":"date-time"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["action"]}]},"meta":{"$ref":"#/components/schemas/ActionMetadata"}},"type":"object","required":["id","connectionId","clientId","status","appName","createdAt","type","meta"]},"LogsResDTO":{"properties":{"nextCursor":{"type":"string","description":"The cursor to get the next page of logs"},"data":{"items":{"type":"object"},"type":"array","description":"Logs data"}},"type":"object","required":["data"]},"GetLogsDTO":{"properties":{"type":{"enum":["error","info","debug"],"type":"string","description":"Type of the log"},"time":{"enum":["5m","30m","6h","1d","1w","1month","1y"],"type":"string","description":"Time interval for which data needs to be fetched"},"status":{"enum":["all","success","error"],"type":"string","description":"Status of the log"},"search":{"type":"string","description":"Search term in the log"},"integrationId":{"type":"string","description":"Integration UUID"},"entityId":{"type":"string","description":"Entity id"},"limit":{"type":"number","description":"Limit of the logs","default":10},"cursor":{"type":"string","description":"Cursor for pagination"},"logsType":{"type":"string","description":"Type of the log"},"sessionId":{"type":"string","description":"Session ID of the log"}},"type":"object"},"IngestDataDTO":{"properties":{"connectionId":{"type":"string","description":"Connection ID of the log"},"sessionId":{"type":"string","description":"Session ID of the log"},"logsType":{"type":"string","description":"Type of the log"},"entityId":{"type":"string","description":"Entity ID of the log"},"providerName":{"type":"string","description":"Provider name of the log"},"actionName":{"type":"string","description":"Action name of the log"},"request":{"type":"object"},"response":{"type":"object"},"isError":{"type":"boolean"}},"type":"object","required":["providerName","actionName","request","response","isError"]},"IngestDataResponseDTO":{"properties":{"isIngested":{"type":"boolean"}},"type":"object","required":["isIngested"]},"ActionsQueryDTOV2":{"properties":{"apps":{"type":"string","description":"Names of the apps"},"actions":{"type":"string","description":"Names of the actions"},"tags":{"type":"string","description":"Names of the tags"},"useCase":{"type":"string","description":"Use case"},"showEnabledOnly":{"type":"boolean","description":"Show enabled only"},"usecaseLimit":{"type":"number","description":"Use case limit"},"filterImportantActions":{"type":"boolean","description":"Filter important actions"},"showAll":{"type":"boolean","description":"Show all"},"page":{"type":"number","description":"Page number"},"limit":{"type":"number","description":"Limit"}},"type":"object"},"TimePeriodReqDTO":{"properties":{"lastTimePeriod":{"enum":["DAY","WEEK","MONTH","SIX_MONTH","YEAR","FIVE_YEAR"],"type":"string","description":"Time period to get the data for"}},"type":"object"},"ActionByAppDTO":{"properties":{"appName":{"type":"string","description":"Name of the app"},"totalCount":{"type":"number","description":"Total count of actions for the app"}},"type":"object","required":["appName","totalCount"],"description":"Action counts by app"},"ActionByStatusDTO":{"properties":{"failed":{"type":"number","description":"Count of failed actions"},"success":{"type":"number","description":"Count of successful actions"}},"type":"object","required":["failed","success"],"description":"Action counts by status"},"ActionAnalyticsDTO":{"properties":{"date":{"type":"string","description":"Date of the action","format":"date"},"byApp":{"$ref":"#/components/schemas/ActionByAppDTO"},"byStatus":{"$ref":"#/components/schemas/ActionByStatusDTO"}},"type":"object","required":["date","byApp","byStatus"],"description":"Comprehensive trigger analytics data, presenting a breakdown by day, status, and provider for all triggers"},"IntegrationsWithCountsDTO":{"properties":{"id":{"type":"string","description":"Unique identifier for the integration"},"appName":{"type":"string","description":"Name of the app"},"integrationName":{"type":"string","description":"Name of the integration"},"connectionCount":{"type":"number","description":"Count of connections for the integration"},"triggerCount":{"type":"number","description":"Count of triggers for the integration"},"requestLogsCount":{"type":"number","description":"Count of request logs for the integration"}},"type":"object","required":["id","appName","integrationName","connectionCount","triggerCount","requestLogsCount"],"description":"Detailed integration analytics data, including a breakdown of connection count, trigger count, and request logs count for each integration"},"AppNameCountDTO":{"properties":{"appName":{"type":"string","description":"Name of the app"},"connectionCount":{"type":"number","description":"Count of connections for the app"},"triggerCount":{"type":"number","description":"Count of triggers for the app"},"requestLogsCount":{"type":"number","description":"Count of request logs for the app"}},"type":"object","required":["appName","connectionCount","triggerCount","requestLogsCount"],"description":"Comprehensive app-level analytics data, providing a breakdown of connection count, trigger count, and request logs count for each app"},"AnalyticsDataReqDTO":{"properties":{"lastTimePeriod":{"enum":["DAY","WEEK","MONTH","SIX_MONTH","YEAR","FIVE_YEAR"],"type":"string","description":"Time period to get the data for"}},"type":"object"},"ClientUniqueUserIdCountDTO":{"properties":{"clientUniqueUserId":{"type":"string","description":"Client unique user id"},"count":{"type":"number","description":"Count of connections for the client unique user id"}},"type":"object","required":["clientUniqueUserId","count"],"description":"Connection counts by entity"},"AnalyticsEntityDataDTO":{"properties":{"byConnections":{"items":{"$ref":"#/components/schemas/ClientUniqueUserIdCountDTO"},"type":"array"},"byActions":{"items":{"$ref":"#/components/schemas/ClientUniqueUserIdCountDTO"},"type":"array","description":"Action counts by entity"},"byTriggers":{"items":{"$ref":"#/components/schemas/ClientUniqueUserIdCountDTO"},"type":"array","description":"Trigger counts by entity"}},"type":"object","required":["byConnections","byActions","byTriggers"],"description":"Entity-related analytics data, providing a breakdown by connections, actions, and triggers for each entity. This is include all entity info."},"AnalyticsDataResDTO":{"properties":{"entity":{"$ref":"#/components/schemas/AnalyticsEntityDataDTO"},"actions":{"items":{"$ref":"#/components/schemas/ActionAnalyticsDTO"},"type":"array"},"trigger":{"items":{"$ref":"#/components/schemas/ActionAnalyticsDTO"},"type":"array"},"integrations":{"items":{"$ref":"#/components/schemas/IntegrationsWithCountsDTO"},"type":"array"},"app":{"$ref":"#/components/schemas/AppNameCountDTO"}},"type":"object","required":["entity","actions","trigger","integrations","app"]},"TopEntitiesResDTO":{"properties":{"entities":{"items":{"$ref":"#/components/schemas/TConnectionCountDTO"},"type":"array","description":"Top entities by connection count"}},"type":"object","required":["entities"]},"TConnectionCountDTO":{"properties":{"clientUniqueUserId":{"type":"string","description":"Name of the entity"},"count":{"type":"number","description":"Count of connections for the entity"}},"type":"object","required":["clientUniqueUserId","count"]},"EntityQueryReqDTO":{"properties":{"query":{"type":"string","description":"Query to get the data for"}},"type":"object"},"WebhookReqDTO":{"properties":{"eventWebhookURL":{"type":"string","description":"Event Webhook URL"}},"type":"object","required":["eventWebhookURL"]},"FetchQueryDTO":{"properties":{"startTime":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Start time of the event in ISO 8601 format"},"endTime":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"End time of the event in ISO 8601 format"}},"type":"object","required":["startTime","endTime"]},"WebhookSecretResDTO":{"properties":{"webhookSecret":{"type":"string","description":"Webhook secret"}},"type":"object","required":["webhookSecret"]},"CreateCheckoutSessionReqDto":{"properties":{"plan":{"enum":["HOBBY","STARTER","GROWTH","ENTERPRISE","STARTUP"],"type":"string"}},"type":"object","required":["plan"]},"SDKErrorResDTO":{"properties":{"status":{"type":"string","description":"The status of the SDK error"}},"type":"object","required":["status"]}},"securitySchemes":{"api_key":{"type":"apiKey","in":"header","name":"x-api-key"}}},"info":{"title":"Composio OpenAPI","version":"1.0.0","description":"Generated with `routing-controllers-openapi`"},"openapi":"3.0.0","paths":{"/api/v1/client/auth/identify":{"post":{"operationId":"identifyClient","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentifyClientReqDTO"}}},"description":"IdentifyClientReqDTO","required":false},"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentifyClientResDTO"}}},"description":""}},"summary":"Identify client","tags":["Auth"]}},"/api/v1/client/auth/client_info":{"get":{"operationId":"getUserInfo","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInfoResDTO"}}},"description":""}},"summary":"Get user info","tags":["Auth"],"description":"Get client info"}},"/api/v1/api_keys":{"post":{"operationId":"generateAPIKey","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateAPIKeyReqDTO"}}},"description":"GenerateAPIKeyReqDTO","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyResDTO"}}},"description":""}},"summary":"Generate api key","tags":["API-Keys"]},"get":{"operationId":"listAPIKeys","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/APIKeyResDTO"},"type":"array"}}},"description":""}},"summary":"List api keys","tags":["API-Keys"]}},"/api/v1/api_keys/{id}":{"delete":{"operationId":"deleteAPIKey","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeyResponseDTO"}}},"description":""}},"summary":"Delete api key","tags":["API-Keys"]}},"/api/v1/apps":{"get":{"operationId":"getApps","parameters":[{"in":"query","name":"category","schema":{"type":"string","description":"Category of the app"}},{"in":"query","name":"additionalFields","schema":{"type":"string","description":"Additional fields to include in the response"}},{"in":"query","name":"includeLocal","schema":{"type":"string","description":"Enter 'true' or 'false'"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppListResDTO"}}},"description":""}},"summary":"Get apps","tags":["Apps"],"description":"Retrieve a list of all applications based on query parameters."}},"/api/v1/apps/openapi/spec/list":{"get":{"operationId":"getOpenAPISpecs","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AppListResDTO"},"type":"array"}}},"description":"List of all openapi spec tools"}},"summary":"Get opena api specs","tags":["Apps"],"description":"List all openapi spec tools"}},"/api/v1/apps/openapi/spec/delete/{id}":{"delete":{"operationId":"deleteOpenAPISpecTool","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Delete open api spec tool","tags":["Apps"],"description":"Delete an openapi spec tool"}},"/api/v1/apps/openapi/send_email_to_client":{"post":{"operationId":"AppController.sendEmailToClient","parameters":[{"in":"query","name":"adminToken","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{}}},"description":"","required":false},"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Send email to client","tags":["Apps"]}},"/api/v1/apps/openapi/spec/status/{id}":{"get":{"operationId":"getOpenAPISpecStatus","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get open api spec status","tags":["Apps"],"description":"Get the status of an openapi spec tool"}},"/api/v1/apps/{appName}":{"get":{"operationId":"getApp","parameters":[{"in":"path","name":"appName","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleAppInfoResDTO"}}},"description":""}},"summary":"Get app","tags":["Apps"],"description":"Get app details"}},"/api/v1/integrations":{"post":{"operationId":"createConnector","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConnectorPayloadDTO"}}},"description":"CreateConnectorPayloadDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectorInfoResDTO"}}},"description":""}},"summary":"Create connector","tags":["Integrations"],"description":"Create a new connector"},"get":{"operationId":"listAllConnectors","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectorListResDTO"}}},"description":""}},"summary":"List all connectors","tags":["Integrations"],"description":"List all connectors"}},"/api/v1/integrations/{integrationId}":{"get":{"operationId":"getConnectorInfo","parameters":[{"in":"path","name":"integrationId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectorInfoResDTO"}}},"description":""}},"summary":"Get connector info","tags":["Integrations"],"description":"Get connector info"},"patch":{"operationId":"modifyConnector","parameters":[{"in":"path","name":"integrationId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchConnectorReqDTO"}}},"description":"PatchConnectorReqDTO","required":false},"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchConnectorResDTO"}}},"description":""}},"summary":"Modify connector","tags":["Integrations"],"description":"Modify a connector"},"delete":{"operationId":"deleteConnector","parameters":[{"in":"path","name":"integrationId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""}},"summary":"Delete connector","tags":["Integrations"],"description":"Delete a connector"}},"/api/v1/integrations/{integrationId}/status":{},"/api/v1/connectedAccounts":{"get":{"operationId":"getConnections","parameters":[{"in":"query","name":"page","schema":{"type":"number"}},{"in":"query","name":"pageSize","schema":{"type":"number"}},{"in":"query","name":"appNames","schema":{"type":"string"}},{"in":"query","name":"integrationId","schema":{"type":"string"}},{"in":"query","name":"connectionId","schema":{"type":"string"}},{"in":"query","name":"user_uuid","schema":{"type":"string"}},{"in":"query","name":"showActiveOnly","schema":{"type":"boolean"}},{"in":"query","name":"status","schema":{"type":"string"}},{"in":"query","name":"showDisabled","schema":{"type":"boolean"}},{"in":"query","name":"labels","schema":{"items":{"type":"string"},"type":"array"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectionsResponseDto"}}},"description":"Get all connections for the current user"}},"summary":"Get connections","tags":["Connections"]},"post":{"operationId":"initiateConnection","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateConnectionPayloadDto"}}},"description":"InitiateConnectionPayloadDto","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateConnectionResponse"}}},"description":"Initiates a connection for the given integration and mark the connection status as initiated if the auth scheme is OAuth1 or OAuth2"}},"summary":"Initiate connection","tags":["Connections"]}},"/api/v1/connectedAccounts/{connectedAccountId}/data":{"patch":{"operationId":"updateConnectionData","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectionLabelsPayloadDto"}}},"description":"UpdateConnectionLabelsPayloadDto","required":false},"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Update connection data","tags":["Connections"],"description":"Update connection data"}},"/api/v1/connectedAccounts/{connectedAccountId}":{"get":{"operationId":"getConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedAccountResponseDTO"}}},"description":"Retrieve details of a specific connected account by its ID"}},"summary":"Get connection","tags":["Connections"]},"delete":{"operationId":"deleteConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""}},"summary":"Delete connection","tags":["Connections"],"description":"Delete a connection"}},"/api/v1/connectedAccounts/{connectedAccountId}/info":{"get":{"operationId":"getConnectionInfo","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectionInfoResponseDTO"}}},"description":""}},"summary":"Get connection info","tags":["Connections"],"description":"Get connection info"}},"/api/v1/connectedAccounts/{connectedAccountId}/disable":{"post":{"operationId":"disableConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleConnectedAccountResponseDTO"}}},"description":""}},"summary":"Disable connection","tags":["Connections"],"description":"Disable a connection"}},"/api/v1/connectedAccounts/{connectedAccountId}/enable":{"post":{"operationId":"enableConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleConnectedAccountResponseDTO"}}},"description":""}},"summary":"Enable connection","tags":["Connections"],"description":"Enable a connection"}},"/api/v1/triggers":{"get":{"operationId":"listTriggers","parameters":[{"in":"query","name":"appNames","schema":{"type":"string","description":"Names of the apps"}},{"in":"query","name":"connectedAccountIds","schema":{"type":"string","description":"IDs of the connected accounts"}},{"in":"query","name":"triggerIds","schema":{"type":"string","description":"IDs of the triggers"}},{"in":"query","name":"integrationIds","schema":{"type":"string","description":"Integration ID"}},{"in":"query","name":"showEnabledOnly","schema":{"type":"boolean","description":"Show enabled only"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TriggerResDTO"},"type":"array"}}},"description":""}},"summary":"List triggers","tags":["Triggers"],"description":"List triggers"}},"/api/v1/triggers/enable/{connectedAccountId}/{triggerName}":{"post":{"operationId":"enableTrigger","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}},{"in":"path","name":"triggerName","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableTriggerBodyDTO"}}},"description":"EnableTriggerBodyDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Enable trigger","tags":["Triggers"],"description":"Enables a trigger for a connected account and specific trigger name."}},"/api/v1/triggers/active_triggers":{"get":{"operationId":"getActiveTriggers","parameters":[{"in":"query","name":"connectedAccountIds","schema":{"type":"string","description":"IDs of the connected accounts"}},{"in":"query","name":"integrationIds","schema":{"type":"string","description":"IDs of the integrations"}},{"in":"query","name":"triggerIds","schema":{"type":"string","description":"IDs of the triggers"}},{"in":"query","name":"triggerNames","schema":{"type":"string","description":"Names of the triggers"}},{"in":"query","name":"page","schema":{"type":"number","description":"Page number"}},{"in":"query","name":"limit","schema":{"type":"number","description":"Limit per page"}},{"in":"query","name":"showDisabled","schema":{"type":"boolean","description":"Show disabled triggers"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveTriggersResDTO"}}},"description":""}},"summary":"Get active triggers","tags":["Triggers"],"description":"Lists active triggers based on query parameters."}},"/api/v1/triggers/instance/{triggerId}/status":{"patch":{"operationId":"switchTriggerInstanceStatus","parameters":[{"in":"path","name":"triggerId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwitchTriggerStatusBodyDTO"}}},"description":"SwitchTriggerStatusBodyDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Switch trigger instance status","tags":["Triggers"],"description":"Switches the status of a trigger instance."}},"/api/v1/triggers/disable/{triggerInstanceId}":{"post":{"operationId":"disableTrigger","parameters":[{"in":"path","name":"triggerInstanceId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Disable trigger","tags":["Triggers"],"description":"Disables a specified trigger instance."}},"/api/v1/triggers/instance/{triggerInstanceId}":{"delete":{"operationId":"deleteTrigger","parameters":[{"in":"path","name":"triggerInstanceId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""}},"summary":"Delete trigger","tags":["Triggers"],"description":"Deletes a specified trigger instance."}},"/api/v1/triggers/set_callback_url":{"post":{"operationId":"set_callback_url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCallbackUrlBodyDTO"}}},"description":"SetCallbackUrlBodyDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Set callback url","tags":["Triggers"],"description":"Sets a universal callback URL for the client."}},"/api/v1/triggers/callback_url":{"get":{"operationId":"getWebhookURL","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookURLResponseDTO"}}},"description":""}},"summary":"Get webhook url","tags":["Triggers"],"description":"Retrieves the universal callback URL set for the client."}},"/api/v1/triggers/logs":{"get":{"operationId":"getTriggerLogs","parameters":[{"in":"query","name":"connectionId","schema":{"type":"string","description":"ID of the connection"}},{"in":"query","name":"integrationId","schema":{"type":"string","description":"ID of the integration"}},{"in":"query","name":"page","schema":{"type":"number","description":"Page number"}},{"in":"query","name":"limit","schema":{"type":"number","description":"Limit per page"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerLogsResDTO"}}},"description":""}},"summary":"Get logs","tags":["Triggers"],"description":"Fetches logs based on connection and integration details."}},"/api/v1/cli/js-sentry-dns":{"get":{"operationId":"getSentryDNS","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Jssentry dns","tags":["Admin"]}},"/api/v1/clear-cache":{"post":{"operationId":"clearCache","parameters":[{"in":"header","name":"X-ADMIN-TOKEN","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Clear cache","tags":["Admin"]}},"/api/v1/cli/generate-cli-session":{"get":{"operationId":"generateCLISession","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCLISessionResDTO"}}},"description":""}},"summary":"Handle cli code exchange","tags":["CLI"]}},"/api/v1/cli/get-cli-code":{"get":{"operationId":"getCLICode","parameters":[{"in":"query","name":"key","required":true,"schema":{"type":"string","description":"Unique key for CLI session"}},{"in":"query","name":"code","required":false,"schema":{"type":"string","description":"Code for CLI verification"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCLISessionResDTO"}}},"description":""}},"summary":"Get cli code","tags":["CLI"]}},"/api/v1/cli/verify-cli-code":{"get":{"operationId":"verifyCLICode","parameters":[{"in":"query","name":"key","required":true,"schema":{"type":"string","description":"Unique key for CLI session"}},{"in":"query","name":"code","required":false,"schema":{"type":"string","description":"Code for CLI verification"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyCLICodeResDTO"}}},"description":""}},"summary":"Handle cli code verification","tags":["CLI"]}},"/api/v1/logs/":{"get":{"operationId":"getLogs","parameters":[{"in":"query","name":"type","schema":{"enum":["error","info","debug"],"type":"string","description":"Type of the log"}},{"in":"query","name":"time","schema":{"enum":["5m","30m","6h","1d","1w","1month","1y"],"type":"string","description":"Time interval for which data needs to be fetched"}},{"in":"query","name":"status","schema":{"enum":["all","success","error"],"type":"string","description":"Status of the log"}},{"in":"query","name":"search","schema":{"type":"string","description":"Search term in the log"}},{"in":"query","name":"integrationId","schema":{"type":"string","description":"Integration UUID"}},{"in":"query","name":"entityId","schema":{"type":"string","description":"Entity id"}},{"in":"query","name":"limit","schema":{"type":"number","description":"Limit of the logs","default":10}},{"in":"query","name":"cursor","schema":{"type":"string","description":"Cursor for pagination"}},{"in":"query","name":"logsType","schema":{"type":"string","description":"Type of the log"}},{"in":"query","name":"sessionId","schema":{"type":"string","description":"Session ID of the log"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogsResDTO"}}},"description":""}},"summary":"Get logs","tags":["Logs"],"description":"List logs"},"post":{"operationId":"postLogs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestDataDTO"}}},"description":"IngestDataDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestDataResponseDTO"}}},"description":""}},"summary":"Post logs","tags":["Logs"],"description":"Add new logs"}},"/api/v2/actions":{"get":{"operationId":"listActionsV2","parameters":[{"in":"query","name":"apps","schema":{"type":"string","description":"Names of the apps"}},{"in":"query","name":"actions","schema":{"type":"string","description":"Names of the actions"}},{"in":"query","name":"tags","schema":{"type":"string","description":"Names of the tags"}},{"in":"query","name":"useCase","schema":{"type":"string","description":"Use case"}},{"in":"query","name":"showEnabledOnly","schema":{"type":"boolean","description":"Show enabled only"}},{"in":"query","name":"usecaseLimit","schema":{"type":"number","description":"Use case limit"}},{"in":"query","name":"filterImportantActions","schema":{"type":"boolean","description":"Filter important actions"}},{"in":"query","name":"showAll","schema":{"type":"boolean","description":"Show all"}},{"in":"query","name":"page","schema":{"type":"number","description":"Page number"}},{"in":"query","name":"limit","schema":{"type":"number","description":"Limit"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionsListResponseDTO"}}},"description":""}},"summary":"List actions","tags":["Actions"],"description":"Retrieve a list of all actions based on query parameters."}},"/api/v2/actions/list/all":{"get":{"operationId":"listActionsMinimalV2","parameters":[{"in":"query","name":"apps","schema":{"type":"string","description":"Names of the apps"}},{"in":"query","name":"actions","schema":{"type":"string","description":"Names of the actions"}},{"in":"query","name":"tags","schema":{"type":"string","description":"Names of the tags"}},{"in":"query","name":"useCase","schema":{"type":"string","description":"Use case"}},{"in":"query","name":"showEnabledOnly","schema":{"type":"boolean","description":"Show enabled only"}},{"in":"query","name":"usecaseLimit","schema":{"type":"number","description":"Use case limit"}},{"in":"query","name":"filterImportantActions","schema":{"type":"boolean","description":"Filter important actions"}},{"in":"query","name":"showAll","schema":{"type":"boolean","description":"Show all"}},{"in":"query","name":"page","schema":{"type":"number","description":"Page number"}},{"in":"query","name":"limit","schema":{"type":"number","description":"Limit"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionsListResponseDTO"}}},"description":""}},"summary":"List actions minimal","tags":["Actions"],"description":"Retrieve a list of all actions based on query parameters."}},"/api/v2/actions/{actionId}/execute":{"post":{"operationId":"executeActionV2","parameters":[{"in":"path","name":"actionId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionExecutionReqDTO"}}},"description":"ActionExecutionReqDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionExecutionResDto"}}},"description":""}},"summary":"Execute action","tags":["Actions"],"description":"Execute an action. Support both connected account and no auth auth."}},"/api/v2/actions/{actionId}/execute/get.inputs":{"post":{"operationId":"getActionInputsV2","parameters":[{"in":"path","name":"actionId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionGetNLAInputsReqDTO"}}},"description":"ActionGetNLAInputsReqDTO","required":false},"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get action inputs","tags":["Actions"],"description":"Get the inputs for an action with NLA"}},"/api/v2/actions/{actionId}":{"get":{"operationId":"getActionV2","parameters":[{"in":"path","name":"actionId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionDetails"}}},"description":""}},"summary":"Get action","tags":["Actions"],"description":"Get action details"}},"/api/v2/actions/proxy":{"post":{"operationId":"executeActionProxyV2","parameters":[{"in":"query","name":"endpoint","required":true,"schema":{"type":"string"}},{"in":"query","name":"connectedAccountId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionExecutionResDto"}}},"description":""}},"summary":"Execute action proxy","tags":["Actions"],"description":"Execute an action with direct auth."}},"/api/v2/triggers/{triggerName}":{"get":{"operationId":"getTriggerInfoV2","parameters":[{"in":"path","name":"triggerName","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SingleTriggerResDTO"},"type":"array"}}},"description":""}},"summary":"Get trigger info","tags":["Triggers"],"description":"Get Trigger Info"}},"/api/v1/analytics/":{"get":{"operationId":"getAnalytics","parameters":[{"in":"query","name":"lastTimePeriod","schema":{"enum":["DAY","WEEK","MONTH","SIX_MONTH","YEAR","FIVE_YEAR"],"type":"string","description":"Time period to get the data for"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsDataResDTO"}}},"description":""}},"summary":"Get analytics","tags":["Analytics"]}},"/api/v1/analytics/entities":{"get":{"operationId":"getTopEntities","parameters":[{"in":"query","name":"query","schema":{"type":"string","description":"Query to get the data for"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopEntitiesResDTO"}}},"description":""}},"summary":"Get top entities","tags":["Analytics"]}},"/api/v1/event_logs/set/webhook":{"post":{"operationId":"updateWebhook","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookReqDTO"}}},"description":"WebhookReqDTO","required":false},"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Update webhook","tags":["Event Logs"]}}},"security":[{"api_key":[]}],"servers":[{"url":"https://backend.composio.dev"}]}
\ No newline at end of file
+{"components":{"schemas":{"MemberInfoResDTO":{"properties":{"id":{"format":"uuid","type":"string","description":"The ID/UUID of the member."},"orgId":{"format":"uuid","type":"string","description":"The ID/UUID of the organization to which the member belongs."},"email":{"format":"email","type":"string","description":"The email address of the member."},"name":{"type":"string","description":"The name of the member."},"role":{"enum":["admin","developer"],"type":"string","description":"The role of the member."},"metadata":{"type":"object","description":"The metadata of the member. This store some additional information about the member."},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"The date and time when the member was created."},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"The date and time when the member was last updated."},"deletedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"The date and time when the member was deleted."}},"type":"object","required":["id","orgId","email","name","role","createdAt","updatedAt"],"description":"Team Member information"},"HttpError":{"properties":{"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."}},"type":"object","required":["status","message","requestId"]},"BadRequestError":{"properties":{"details":{"type":"object","description":"Additional arguments that caused the error"},"type":{"minLength":1,"type":"string","enum":["BadRequestError"],"description":"The type of error"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."}},"type":"object","required":["details","type","status","message","requestId"]},"InternalServerError":{"properties":{"type":{"minLength":1,"type":"string","enum":["InternalServerError"],"description":"The type of error"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."}},"type":"object","required":["type","status","message","requestId"]},"NotFoundError":{"properties":{"type":{"minLength":1,"type":"string","enum":["NotFoundError"],"description":"The name of the operation that caused the error"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."}},"type":"object","required":["type","status","message","requestId"]},"NotFoundPlusSuggestionsError":{"properties":{"suggestions":{"items":{"type":"string"},"type":"array","minLength":1,"description":"Suggestions for the user to fix the error"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."},"type":{"minLength":1,"type":"string","enum":["NotFoundError"],"description":"The name of the operation that caused the error"}},"type":"object","required":["suggestions","status","message","requestId","type"]},"AppNotFoundError":{"properties":{"name":{"minLength":1,"type":"string","enum":["AppNotFoundError"],"description":"The error name"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."},"type":{"minLength":1,"type":"string","enum":["NotFoundError"],"description":"The name of the operation that caused the error"}},"type":"object","required":["name","status","message","requestId","type"]},"ProjectAlreadyExistsError":{"properties":{"name":{"minLength":1,"type":"string","enum":["ProjectAlreadyExistsError"],"description":"The error name"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."},"details":{"type":"object","description":"Additional arguments that caused the error"},"type":{"minLength":1,"type":"string","enum":["BadRequestError"],"description":"The type of error"}},"type":"object","required":["name","status","message","requestId","details","type"]},"ProjectIdNotFoundError":{"properties":{"name":{"minLength":1,"type":"string","enum":["ProjectNotFoundError"],"description":"The error name"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."},"details":{"type":"object","description":"Additional arguments that caused the error"},"type":{"minLength":1,"type":"string","enum":["BadRequestError"],"description":"The type of error"}},"type":"object","required":["name","status","message","requestId","details","type"]},"MagicLinkResDTO":{"properties":{"status":{"type":"string"}},"type":"object","required":["status"]},"MagicLinkReqDTO":{"properties":{"email":{"format":"email","type":"string","description":"The email of the user"},"verifyHost":{"type":"string","description":"The frontend host of the user"}},"type":"object","required":["email","verifyHost"]},"LogoutResDTO":{"properties":{"message":{"type":"string","description":"Message confirming the logout"}},"type":"object","required":["message"]},"VerifyMagicLinkReqDTO":{"properties":{"token":{"type":"string","description":"The magic link token"}},"type":"object","required":["token"]},"VerifyMagicLinkDataDTO":{"properties":{"clientId":{"type":"string"},"isValid":{"type":"boolean"},"jwtToken":{"type":"string"},"email":{"type":"string","format":"email"}},"type":"object","required":["clientId","isValid","jwtToken","email"],"description":"Data containing client and token information if verification is successful"},"VerifyMagicLinkResDTO":{"properties":{"message":{"type":"string","description":"Message indicating the result of the verification"},"data":{"$ref":"#/components/schemas/VerifyMagicLinkDataDTO"}},"type":"object","required":["message"]},"IdentifyClientReqDTO":{"properties":{"hash":{"type":"string","description":"The hash of the client"},"framework":{"type":"string","description":"The framework used by the client"}},"type":"object","required":["hash"]},"IdentifyClientResDTO":{"properties":{"clientId":{"type":"string","description":"The client ID"},"apiKey":{"type":"string","description":"The API key associated with the client"},"email":{"type":"string","description":"The email associated with the client"},"orgId":{"type":"string","description":"The organization ID associated with the client"}},"type":"object","required":["clientId","apiKey","email","orgId"]},"UserGitUserInfo":{"properties":{"name":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["email"],"description":"User Git information"},"TrackClientReqDTO":{"properties":{"framework":{"type":"string","description":"The framework used by the client"},"mac_address":{"type":"string","description":"The MAC address of the client device"},"user_git_user_info":{"$ref":"#/components/schemas/UserGitUserInfo"}},"type":"object","required":["framework"]},"TrackClientResDTO":{"properties":{"message":{"type":"string","description":"Message indicating the result of the tracking operation"}},"type":"object","required":["message"]},"DeleteRowAPIDTO":{"properties":{"status":{"enum":["success","failed"],"type":"string","description":"Status of the delete operation"},"count":{"type":"number","description":"Number of records deleted"}},"type":"object","required":["status","count"]},"ClientDTO":{"properties":{"autoId":{"type":"number","description":"Auto-generated ID of the client"},"id":{"type":"string","description":"Unique ID of the client"},"name":{"type":"string","description":"Name of the client"},"email":{"type":"string","description":"Email of the client"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Creation timestamp"},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last update timestamp"},"apiKey":{"type":"string","description":"API key for the client"},"webhookURL":{"type":"string","description":"Webhook URL for the client"},"eventWebhookURL":{"type":"string","description":"Event webhook URL for the client"},"webhookSecret":{"type":"string","description":"Secret for webhook authentication"},"triggersEnabled":{"type":"boolean","description":"Whether triggers are enabled for the client"},"lastSubscribedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last subscription timestamp"},"plan":{"type":"string","description":"Client's subscription plan"},"isNewWebhook":{"type":"boolean","description":"Whether to use new webhook format"}},"type":"object","required":["autoId","id","name","email","createdAt","updatedAt","triggersEnabled","plan","isNewWebhook"],"description":"Client information"},"Metadata":{"properties":{"has_completed_onboarding":{"type":"boolean","description":"Indicates if the member has completed onboarding"}},"type":"object"},"Member":{"properties":{"id":{"type":"string","description":"Unique identifier for the member"},"orgId":{"type":"string","description":"Organization ID associated with the member"},"name":{"type":"string","description":"Name of the member"},"role":{"type":"string","description":"Role of the member"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Creation timestamp of the member"},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last update timestamp of the member"},"deletedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Deletion timestamp of the member, if applicable"}},"type":"object","required":["id","orgId","name","role","createdAt","updatedAt"]},"ClientInfoAPIKeyResDTO":{"properties":{"id":{"type":"string","description":"Unique identifier for the API key"},"name":{"type":"string","description":"Name of the API key"},"clientId":{"type":"string","description":"Client ID associated with the API key"},"memberId":{"type":"string","description":"Member ID associated with the API key"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Creation timestamp of the API key"},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last update timestamp of the API key"},"deletedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Deletion timestamp of the API key, if applicable"},"key":{"type":"string","description":"Key value of the API key"},"member":{"$ref":"#/components/schemas/Member","description":"Member associated with the API key"},"lastUsed":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Last used timestamp of the API key"},"apiKey":{"type":"string","description":"API key of the client"}},"type":"object","required":["id","name","clientId","memberId","createdAt","updatedAt","key","member","lastUsed","apiKey"]},"ClientInfoResDTO":{"properties":{"client":{"$ref":"#/components/schemas/ClientDTO"},"apiKey":{"$ref":"#/components/schemas/ClientInfoAPIKeyResDTO","description":"API key of the client"}},"type":"object","required":["client","apiKey"]},"ProjectReqDTO":{"properties":{"name":{"type":"string","description":"The name of the project"}},"type":"object","required":["name"]},"ProjectDeleteReqDTO":{"properties":{"projectId":{"format":"uuid","type":"string","description":"The ID of the project to delete"}},"type":"object","required":["projectId"]},"ProjectResDTO":{"properties":{"id":{"type":"string","description":"The ID or UUID of the project"},"name":{"type":"string","description":"The name of the project"},"createdAt":{"type":"string"},"primaryApiKey":{"type":"string"}},"type":"object","required":["id","name","createdAt","primaryApiKey"],"description":"The list of projects"},"ProjectListResDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ProjectResDTO"},"type":"array"}},"type":"object","required":["items"]},"OrgApiKeyResDTO":{"properties":{"apiKey":{"type":"string","description":"The api key for organisation operations. Can be passed in the header as 'X-Org-Api-Key'"}},"type":"object","required":["apiKey"]},"OrgApiKeyRegenerateResDTO":{"properties":{"newApiKey":{"type":"string","description":"Api key for organisation operations. Can be passed in the header as 'X-Org-Api-Key'"}},"type":"object","required":["newApiKey"]},"InviteMemberReqDTO":{"properties":{"email":{"format":"email","type":"string","description":"The email of the member"},"name":{"type":"string","description":"The name of the member"},"verifyHost":{"type":"string","description":"The host to verify the member"},"role":{"enum":["admin","developer"],"type":"string","description":"The role that will be assignied to the invited user"}},"type":"object","required":["email","name","verifyHost"]},"MemberResDTO":{"properties":{"email":{"type":"string","description":"The email of the member"},"id":{"type":"string","description":"The uuid identifier for the member"},"name":{"type":"string","description":"The name of the member"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date of the member record"},"role":{"enum":["admin","developer"],"type":"string","description":"The role that is assigned to the member"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The last update date of the member record"}},"type":"object","required":["email","id","name","role"]},"UpdateMemberReqDTO":{"properties":{"memberId":{"type":"string","description":"The uuid identifier for the member"},"role":{"enum":["admin","developer"],"type":"string","description":"The role that is assigned to the member"}},"type":"object","required":["memberId","role"]},"GenerateAPIKeyReqDTO":{"properties":{"name":{"type":"string","description":"The name of the API key to be generated"}},"type":"object","required":["name"]},"APIKeyResDTO":{"properties":{"id":{"type":"string","description":"The ID of the API key"},"name":{"type":"string","description":"The name of the API key"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date of the API key"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The last update date of the API key"},"key":{"type":"string","description":"The generated API key"},"isHidden":{"type":"boolean","description":"Whether the API key is hidden"},"lastUsed":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The last used date of the API key"},"member":{"type":"object","description":"The member of the API key"}},"type":"object","required":["id","name","createdAt","updatedAt","key","isHidden","member"]},"DeleteAPIKeyReqDTO":{"properties":{"id":{"type":"string","description":"The ID of the API key to be deleted"}},"type":"object","required":["id"]},"DeleteAPIKeyResponseDTO":{"properties":{"deleted":{"type":"boolean","description":"The status of the delete operation"}},"type":"object","required":["deleted"]},"SingleAppInfoResDTO":{"properties":{"appId":{"type":"string","description":"Unique identifier (UUID) for the app","example":"550e8400-e29b-41d4-a716-446655440000"},"key":{"type":"string","description":"Unique key/slug used to identify the app in URLs and API calls.","example":"salesforce-crm"},"name":{"type":"string","description":"Human-readable display name of the app","example":"Salesforce CRM"},"description":{"type":"string","description":"Short description about the app","example":"Enterprise CRM solution for managing customer relationships and sales pipelines"},"logo":{"type":"string","description":"URL to the app's logo image, used for UI display","example":"https://example.com/images/app-logo.png"},"categories":{"items":{"type":"string"},"type":"array","description":"The categories of the app"},"docs":{"type":"string","description":"The documentation URL of the app, if available. Usually it's a link to the doc to setup and configure the app."},"configuration_docs_text":{"type":"string","description":"The configuration documentation text of the app. This is deprecated and not used anywhere.","deprecated":true},"status":{"type":"string","description":"The status of the app. This is deprecated and not used anymore.","deprecated":true},"documentation_doc_text":{"type":"string","description":"The documentation text of the app. This is deprecated and not used anywhere.","deprecated":true},"testConnectors":{"items":{"type":"object"},"type":"array","description":"The test connectors available for the app. If this is not empty, it means composio allows you to setup this app without configuring and setting up your own auth app."},"no_auth":{"type":"boolean","description":"Indicates if the app is of `no_auth` type. If this is true, you can directly use the app without creating any integration."},"auth_schemes":{"items":{"type":"object"},"type":"array","description":"The authentication schemes supported by the app. This contains all the fields and details needed to setup and configure auth for this app."},"meta":{"description":"The metadata of the app"}},"type":"object","required":["appId","key","name","description"]},"AddToolsReqDTO":{"properties":{"name":{"type":"string","description":"The unique identifier name of the tool to be added. Must be URL-friendly and unique across the system","example":"my-custom-tool"},"openApiSpecYaml":{"type":"string","description":"The complete OpenAPI/Swagger specification in YAML format defining the tool's API endpoints, parameters, and responses","example":"openapi: 3.0.0\ninfo:\n title: My API\n version: 1.0.0"},"integrationYaml":{"type":"string","description":"YAML configuration specifying integration details including authentication, endpoints mapping, and other tool-specific settings","example":"auth:\n type: oauth2\nendpoints:\n base_url: https://api.example.com"}},"type":"object","required":["name","openApiSpecYaml","integrationYaml"]},"OpenAPISpecListResDTO":{"properties":{"id":{"type":"string","description":"Unique identifier (UUID) for the OpenAPI specification","example":"550e8400-e29b-41d4-a716-446655440000"},"name":{"type":"string","description":"Human-readable name of the OpenAPI specification. Used for display and reference purposes","example":"Payment Processing API"},"clientId":{"type":"string","description":"Unique identifier of the client who owns this OpenAPI specification","example":"client_12345"},"lastSyncAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"ISO 8601 timestamp of when the specification was last synchronized with the source","format":"date-time","example":"2024-03-15T14:30:00Z"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Creation date and time","format":"date-time"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Last update date and time","format":"date-time"},"status":{"enum":["initialized","running","caching","cancelled","finished","exited"],"type":"string","description":"Current processing status of the OpenAPI specification in the pipeline. Indicates success, failure, or processing state","example":"COMPLETED"},"state":{"enum":["preprocess","validate","prepare","build","push","load","finish"],"type":"string","description":"Current state of the app FSM"}},"type":"object","required":["id","name","clientId","lastSyncAt","createdAt","updatedAt"]},"AddRepoURLResDTO":{"properties":{"repoUrl":{"type":"string","description":"Repository URL"}},"type":"object","required":["repoUrl"]},"DeleteToolsReqDTO":{"properties":{"name":{"type":"string","description":"Name of the tool"}},"type":"object","required":["name"]},"DeleteToolsResDTO":{"properties":{"message":{"type":"string","description":"Message indicating successful deletion of tools"}},"type":"object","required":["message"]},"AddToolsRequestDTO":{"properties":{"name":{"type":"string","description":"The name of the tool"},"open_api_spec_yaml":{"type":"string","description":"The OpenAPI specification in YAML format"},"integration_yaml":{"type":"string","description":"The integration details in YAML format"}},"type":"object","required":["name","open_api_spec_yaml","integration_yaml"]},"AddRepoURLReqDTO":{"properties":{"repoUrl":{"type":"string","description":"Repository URL"}},"type":"object","required":["repoUrl"]},"AppQueryDTO":{"properties":{"category":{"type":"string","description":"Filter apps by category. Used to retrieve apps belonging to a specific group or type.\n To get a list of available categories, see the [Get App Categories](#operation/getAppCategories) endpoint.","example":"crm"},"additionalFields":{"type":"string","description":"Comma-separated list of additional fields to include in the response. Allows customizing the response payload for app details. Supported fields: auth_schemes","example":"auth_schemes"},"includeLocal":{"enum":["true","false"],"type":"string","description":"Filter to include locally developed/testing apps in the response. Must be 'true' or 'false'","example":"true","default":"false"}},"type":"object"},"AppInfoResponseDto":{"properties":{"appId":{"type":"string","description":"Unique identifier (UUID) for the app","example":"550e8400-e29b-41d4-a716-446655440000"},"key":{"type":"string","description":"Unique key/slug for the app, used in URLs and API references","example":"salesforce-crm"},"name":{"type":"string","description":"The name of the app"},"description":{"type":"string","description":"The description of the app"},"logo":{"type":"string","description":"The logo of the app"},"categories":{"items":{"type":"object"},"type":"string","description":"The categories of the app"},"tags":{"items":{"type":"object"},"type":"string","description":"The tags of the app"},"auth_schemes":{"description":"The authentication schemes of the app"},"enabled":{"type":"boolean","description":"Indicates if the app is enabled"},"no_auth":{"type":"boolean","description":"Indicates if the app has no authentication"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"The creation date of the app"},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"The last update date of the app"}},"type":"object","required":["appId","key","name","description","logo","categories","enabled","createdAt","updatedAt"]},"AppListCategoriesResDTO":{"properties":{"items":{"items":{"type":"string"},"type":"array","description":"List of app categories"}},"type":"object","required":["items"]},"AppListResDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AppInfoResponseDto"},"type":"array","description":"List of app details"},"totalPages":{"type":"number","description":"Total number of pages"}},"type":"object","required":["items","totalPages"]},"ExpectedInputFieldsDTO":{"properties":{"name":{"type":"string","description":"The unique identifier/key for this input field that will be used when submitting values. Must be URL-safe."},"type":{"type":"string","description":"The data type of this field. Common types include 'string', 'number', 'boolean', etc."},"description":{"type":"string","description":"Detailed explanation of what this field is used for and any special requirements or formatting needed."},"display_name":{"type":"string","description":"Human-readable label that will be shown to users when they need to input this field."},"default":{"type":"object","description":"Default value for this field if none is provided. Set to null if no default exists."},"required":{"type":"boolean","description":"Indicates if this field must be provided for the connector to function properly."},"expected_from_customer":{"type":"boolean","description":"Indicates if this field needs to be provided by the end user rather than being automatically populated."},"is_secret":{"type":"boolean","description":"If true, this field contains sensitive information and should be handled securely (e.g. passwords, API keys)."}},"type":"object","required":["name","type","description","display_name","default","required","expected_from_customer","is_secret"]},"GetConnectorInfoResDTO":{"properties":{"id":{"type":"string","description":"Unique identifier for the connector. You can use this ID when calling endpoints like `POST /api/v1/connectedAccounts` to create connections."},"authScheme":{"type":"string","description":"The authentication method used by this connector. Refer to the API documentation for supported authentication schemes."},"name":{"type":"string","description":"The display name of this specific connector configuration."},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"ISO 8601 timestamp of when this connector was created."},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"ISO 8601 timestamp of when this connector was last modified."},"enabled":{"type":"boolean","description":"Whether this connector is currently active and can be used to create new connections. Can be toggled using the connector management endpoints."},"deleted":{"type":"boolean","description":"Soft deletion status of the connector. If true, the connector has been marked for deletion but may still exist in the system."},"appId":{"type":"string","description":"The ID of the application this connector belongs to. You can find available apps using the `GET /api/v1/apps` endpoint."},"defaultConnectorId":{"type":"string","description":"If this is a custom connector, this field may reference the original template connector it was based on."},"authConfig":{"type":"object","description":"Configuration object containing authentication settings. Sensitive values will be redacted. The structure varies based on the authScheme."},"expectedInputFields":{"items":{"$ref":"#/components/schemas/ExpectedInputFieldsDTO"},"type":"array","description":"List of fields that need to be collected from users to set up a connection using this connector. These fields should be included when calling `POST /api/v1/connectedAccounts`."},"logo":{"type":"string","description":"URL to the application's logo image that can be displayed in the UI."},"appName":{"type":"string","description":"The name of the application this connector integrates with."},"useComposioAuth":{"type":"boolean","description":"When true, indicates that this connector uses Composio's built-in authentication handling rather than custom authentication logic."}},"type":"object","required":["enabled","appId","authConfig","expectedInputFields","logo","appName","useComposioAuth"]},"AuthConfigDTO":{"properties":{"scopes":{"items":{"type":"string"},"type":"array","description":"List of OAuth scopes to request during the OAuth flow. These scopes determine what permissions the connector will have on the target service."},"user_scopes":{"items":{"type":"string"},"type":"array","description":"List of user-specific OAuth scopes to request during the OAuth flow. Some APIs differentiate between app-level and user-level scopes."}},"type":"object","description":"Authentication configuration for the connector"},"CreateConnectorPayloadDTO":{"properties":{"name":{"type":"string","description":"A unique name for your connector. This will be used to identify the connector in the system."},"authScheme":{"type":"string","description":"The authentication scheme used by the connector. Refer to the `/api/v1/apps` endpoint to see supported authentication schemes for each app."},"authConfig":{"$ref":"#/components/schemas/AuthConfigDTO","description":"Configuration options for authentication. Required when using OAuth-based authentication schemes."},"useComposioAuth":{"type":"boolean","description":"When set to true, the connector will use Composio's built-in authentication system. Learn more in the Authentication section of the API documentation.","anyOf":[{"type":"boolean"}]},"appId":{"type":"string","description":"UUID of the Composio app to use for authentication. You can get this from the `id` field in the response of the `GET /api/v1/apps` endpoint. Either specify this or appName."},"appName":{"type":"string","description":"Name of the Composio app to use for authentication. You can get this from the `name` field in the response of the `GET /api/v1/apps` endpoint. Either specify this or appId."},"forceNewIntegration":{"type":"boolean","description":"When set to true, creates a new integration even if one already exists for the given app. This is useful when you need multiple integrations with the same service."}},"type":"object","required":["name"]},"PatchConnectorReqDTO":{"properties":{"authConfig":{"type":"object","description":"Authentication configuration for the connector. This object contains the necessary credentials and settings required to authenticate with the external service. You can get the required configuration fields from the `GET /api/v1/connectors/{connectorId}/config` endpoint."},"enabled":{"type":"boolean","description":"Flag to indicate if the connector is enabled. When set to false, the connector will not process any requests. You can toggle this value to temporarily disable the connector without deleting it. Default value can be found in the `GET /api/v1/connectors/{connectorId}` endpoint response."}},"type":"object"},"PatchConnectorResDTO":{"properties":{"status":{"type":"string","description":"Status of the patch operation. Returns 'success' when the connector is successfully updated. For detailed information about possible status values, refer to the API documentation at `PATCH /api/v1/connectors/{connectorId}`."}},"type":"object","required":["status"]},"ConnectorListItemDTO":{"properties":{"appName":{"type":"string","description":"Name of the application associated with this connector. You can find this in the response of the `GET /api/v1/apps` endpoint."},"_count":{"type":"object","description":"Aggregate count of connections associated with this connector. This helps track how many connected accounts are using this connector configuration."},"connections":{"items":{"type":"object"},"type":"array","description":"List of connections associated with this connector, including their IDs and request log counts. Each connection represents a unique connected account using this connector configuration."},"id":{"type":"string","description":"Unique identifier (UUID) of the connector. You can use this ID when calling endpoints like `GET /api/v1/connectors/{id}` or `PUT /api/v1/connectors/{id}`."},"member":{"$ref":"#/components/schemas/MemberInfoResDTO"},"name":{"type":"string","description":"Display name of the connector. This name is used to identify the connector in the UI and API responses."},"authScheme":{"type":"string","description":"Authentication scheme used by this connector. Determines how authentication is handled for connected accounts. See the Authentication Schemes section in the API documentation for more details."},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Timestamp when this connector was created. Returned in ISO 8601 format."},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}],"description":"Timestamp when this connector was last updated. Returned in ISO 8601 format."},"enabled":{"type":"boolean","description":"Indicates whether the connector is currently enabled. Disabled connectors cannot be used to create new connections."},"deleted":{"type":"boolean","description":"Soft deletion flag for the connector. When true, the connector is marked as deleted but remains in the database. You can filter deleted connectors using the `includeDeleted` query parameter in list endpoints."},"appId":{"type":"string","description":"Unique identifier (UUID) of the app this connector belongs to. You can use this ID to fetch app details via the `GET /api/v1/apps/{id}` endpoint."},"defaultConnectorId":{"type":"string","description":"ID of the default connector configuration. When present, this indicates that this connector inherits settings from the specified default connector. You can manage default connectors via the `/api/v1/defaultConnectors` endpoints."}},"type":"object","required":["appName","_count","connections","id","member","name","authScheme","createdAt","updatedAt","enabled","appId"],"description":"List of connectors with their details and associated connections"},"GetConnectorListResDTO":{"properties":{"items":{"items":{"type":"object"},"type":"array","description":"Array of connector items matching the query parameters. Each item contains detailed information about a connector and its associated connections."},"totalPages":{"type":"number","description":"Total number of pages available based on the current page size. Use this for implementing pagination controls."},"page":{"type":"number","description":"Current page number (1-based). You can request different pages using the `page` query parameter in the `GET /api/v1/connectors` endpoint."}},"type":"object","required":["items","totalPages","page"]},"PageInfo":{"properties":{"total":{"minimum":0,"type":"integer"},"page":{"minimum":1,"type":"integer"},"pageSize":{"minimum":1,"type":"integer"},"totalPages":{"minimum":1,"type":"integer"}},"type":"object","required":["total","page","pageSize","totalPages"]},"ConnectionWithAppData":{"properties":{"id":{"type":"string"},"integrationId":{"type":"string"},"clientUniqueUserId":{"type":"string"},"status":{"type":"string"},"data":{"type":"object"},"deleted":{"type":"boolean"},"enabled":{"type":"boolean"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"appUniqueId":{"type":"string"},"appName":{"type":"string"},"logo":{"type":"string"},"authConfig":{"type":"object"},"member":{"items":{"$ref":"#/components/schemas/MemberInfoResDTO"},"type":"object"},"labels":{"items":{"type":"string"},"type":"array"}},"type":"object","required":["id","integrationId","status","createdAt","updatedAt","appUniqueId","appName","member"]},"GetConnectionsResult":{"properties":{"connections":{"items":{"$ref":"#/components/schemas/ConnectionWithAppData"},"type":"array"},"pageInfo":{"$ref":"#/components/schemas/PageInfo"}},"type":"object","required":["connections","pageInfo"]},"GetConnectionInfoParams":{"properties":{"connectedAccountId":{"minLength":1,"type":"string","description":"UUID of the connected account you want to get auth credentials for. You can get this from the `id` field in the response of the [/api/v1/connectedAccounts](/api-reference/connections/list-connections) endpoint."}},"type":"object","required":["connectedAccountId"]},"ConnectionParams":{"properties":{"integrationId":{"type":"string","description":"The ID of the integration this connection belongs to. You can get this from the [/api/v1/integrations](/api-reference/integrations/list-integrations) endpoint."},"connectionParams":{"type":"object","description":"Additional parameters specific to this connection. Structure varies by integration type."},"isDisabled":{"type":"boolean","description":"Flag indicating if this connection is currently disabled."},"invocationCount":{"type":"number","description":"Number of times this connection has been invoked/used."},"id":{"type":"string"},"clientUniqueUserId":{"type":"string"},"status":{"type":"string"},"data":{"type":"object"},"deleted":{"type":"boolean"},"enabled":{"type":"boolean"},"createdAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"updatedAt":{"oneOf":[{"format":"date","type":"string"},{"format":"date-time","type":"string"}]},"appUniqueId":{"type":"string"},"appName":{"type":"string"},"logo":{"type":"string"},"authConfig":{"type":"object"},"member":{"items":{"$ref":"#/components/schemas/MemberInfoResDTO"},"type":"object"},"labels":{"items":{"type":"string"},"type":"array"}},"type":"object","required":["integrationId","isDisabled","invocationCount","id","status","createdAt","updatedAt","appUniqueId","appName","member"]},"ToggleConnectedAccountResponseDTO":{"properties":{"status":{"type":"string","description":"The status of the toggle operation ('success' or 'failed')."}},"type":"object","required":["status"]},"ConnectionParamsHeaders":{"properties":{"Authorization":{"type":"string","description":"Authorization header value used for API requests."},"x-request-id":{"type":"string","description":"Request ID header for tracing API calls."}},"type":"object","description":"Headers to be included in API requests."},"ConnectionParamsForAccount":{"properties":{"scope":{"type":"string","description":"OAuth scope for the connection."},"scopes":{"type":"string","description":"Space-separated OAuth scopes for the connection."},"id_token":{"type":"string","description":"OAuth ID token for authentication."},"client_id":{"type":"string","description":"OAuth client ID for the application."},"expires_in":{"type":"string","description":"Token expiration time in seconds."},"token_type":{"type":"string","description":"Type of OAuth token (e.g. 'Bearer')."},"callback_url":{"type":"string","description":"OAuth callback URL for the connection."},"client_secret":{"type":"string","description":"OAuth client secret for the application."},"code_verifier":{"type":"string","description":"PKCE code verifier used in OAuth flow."},"refresh_token":{"type":"string","description":"OAuth refresh token for obtaining new access tokens."},"headers":{"type":"object"},"queryParams":{"type":"object","description":"Query parameters to be included in API requests."},"base_url":{"type":"string","description":"Base URL for API requests to the connected service."}},"type":"object"},"MetaApp":{"properties":{"get_current_user_endpoint":{"type":"string","description":"Endpoint URL to fetch current user information from the connected service."}},"type":"object","required":["get_current_user_endpoint"],"description":"Additional information related to the app."},"Meta":{"properties":{"app":{"type":"object","description":"App-specific metadata."}},"type":"object","required":["app"],"description":"Additional information related to the connected account."},"ConnectedAccountResponseDTO":{"properties":{"integrationId":{"format":"uuid","type":"string","description":"The ID of the integration to which the connected account belongs. You can get this from the [/api/v1/integrations](/api-reference/integrations/list-integrations) endpoint."},"appUniqueId":{"type":"string","description":"The unique ID of the app to which the connected account belongs. To get the full app info, you can use the [/api/v1/apps](/api-reference/apps/get-single-app) endpoint."},"memberInfo":{"$ref":"#/components/schemas/MemberInfoResDTO"},"meta":{"$ref":"#/components/schemas/Meta"},"isDisabled":{"type":"boolean","description":"Flag to indicate if the connected account is disabled. If this is true, the connected account will not be able to be used for any actions."},"id":{"format":"uuid","type":"string","description":"The unique identifier for this connected account."},"clientUniqueUserId":{"type":"string","description":"The entityId to which the connected account belongs. **Deprecated: ** Please use the `entityId` field instead.","deprecated":true},"appName":{"type":"string","description":"The name of the app this account is connected to. You can get the list of available apps from the [/api/v1/apps](/api-reference/apps/list-apps) endpoint."},"entityId":{"type":"string","description":"The entity ID associated with the connection. Learn more about entities [here](https://docs.composio.dev/patterns/Auth/connected_account#entities)."},"status":{"enum":["INITIATED","ACTIVE","FAILED"],"type":"string","description":"The current status of the connection (e.g. 'active', 'inactive', 'pending')."},"enabled":{"type":"boolean","description":"Flag to indicate if the connected account is enabled. This will be true if the connected account is active and can be used to perform actions."},"createdAt":{"type":"string","description":"The date and time when the connected account was created."},"updatedAt":{"type":"string","description":"The date and time when the connected account was last updated."}},"type":"object","required":["integrationId","appUniqueId","id","clientUniqueUserId","appName","entityId","status","createdAt","updatedAt"]},"GetConnectionsResponseDto":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConnectionParams"},"type":"array","description":"Array of connection objects matching the query parameters."},"totalPages":{"type":"number","description":"Total number of pages available based on the pageSize."},"page":{"type":"number","description":"Current page number in the pagination."}},"type":"object","required":["items","totalPages","page"]},"GetConnectionInfoResponseDTO":{"properties":{"base_url":{"type":"string","description":"The base URL of the connection. This is the starting part (or base part) of the URL that you need to send requests to. This is especially useful when you are working with apps that have dynamic urls (based on connection params) like Shopify."},"parameters":{"items":{"$ref":"#/components/schemas/Parameter"},"type":"array"},"body":{"type":"object","description":"The body params to send with the request. Some apps require this to be sent in the body of the request for authentication."}},"type":"object","required":["base_url","parameters","body"]},"Parameter":{"properties":{"name":{"type":"string","description":"The name of the parameter. For example, 'x-api-key', 'Content-Type', etc."},"in":{"enum":["query","header"],"type":"string","description":"The location of the parameter. Can be 'query' or 'header'."},"value":{"type":"string","description":"The value of the parameter. For example, '1234567890', 'application/json', etc."}},"type":"object","required":["name","in","value"],"description":"The parameters to send with the request. This contains all the headers, query params, etc. that are required to make requests to the third-party service directly."},"Data":{"properties":{"field1":{"type":"string","description":"First field of the data object."},"field2":{"type":"string","description":"Second field of the data object."}},"type":"object","required":["field1","field2"]},"AdditionalInfo":{"properties":{"meta":{"type":"string","description":"Metadata information."}},"type":"object","required":["meta"]},"GetConnectionsQueryDto":{"properties":{"page":{"minimum":1,"type":"number","description":"The page number for pagination. Defaults to 1 if not specified."},"pageSize":{"minimum":1,"type":"number","description":"The number of items per page for pagination. Defaults to 99999999 if not specified - this is a temporary fix to support backward compatibility issues. Please specify this value to avoid fetching all connections at once."},"appNames":{"type":"string","description":"Comma-separated list of app names to filter connections by. You can get the app names from the [/api/v1/apps](/api-reference/apps/list-apps) endpoint."},"labels":{"type":"string","description":"Comma-separated list of labels to filter connections by."},"showActiveOnly":{"type":"boolean","description":"Flag to show only active connections. Defaults to false if not specified."},"status":{"enum":["INITIATED","ACTIVE","FAILED"],"type":"string","description":"The status of the connection to filter by."},"integrationId":{"format":"uuid","type":"string","description":"The ID/UUID of the integration to filter connections by. You can get the integration ID from the [/api/v1/integrations](/api-reference/integrations/list-integrations) endpoint."},"connectionId":{"format":"uuid","type":"string","description":"UUID of the connected account you want to get auth credentials for. You can get this from the `id` field in the response of the [/api/v1/connectedAccounts](/api-reference/connections/list-connections) endpoint."},"user_uuid":{"type":"string","description":"Comma-separated list of entity IDs to filter connections by. This field is deprecated - please use entityId instead.","deprecated":true},"entityId":{"type":"string","description":"Comma-separated list of entity ids of the user to filter connections by. Learn more about entities [here](https://docs.composio.dev/patterns/Auth/connected_account#entities)."},"showDisabled":{"type":"boolean","description":"Flag to include disabled connections in the results. Defaults to false if not specified."}},"type":"object"},"GetSingleConnectionRequestDTO":{"properties":{"connectedAccountId":{"minLength":1,"type":"string","description":"The ID of the connected account to get details for. You can get this from the `id` field in the response of the [/api/v1/connectedAccounts](/api-reference/connections/list-connections) endpoint."}},"type":"object","required":["connectedAccountId"]},"GetConnectionsHeaderParamsDTO":{"properties":{"x-project-id":{"format":"uuid","type":"string","description":"The ID of the project to get the connections for. Defaults to the first project in the list of projects. You can get the project ID from the [/api/v1/projects](/api-reference/client/get-projects) endpoint."}},"type":"object"},"InitiateConnectionPayloadDto":{"properties":{"data":{"type":"object","description":"The data required to initiate a connection. Structure varies by integration type."},"integrationId":{"minLength":1,"type":"string","description":"The ID of the integration for which the connection is being initiated. You can get this from the [/api/v1/integrations](/api-reference/integrations/list-integrations) endpoint."},"redirectUri":{"type":"string","description":"The URL to redirect to after the connection is successfully initiated."},"userUuid":{"type":"string","description":"Deprecated: UUID of the user initiating the connection."},"entityId":{"type":"string","description":"The entity ID to associate with the connection. Learn more about entities [here](https://docs.composio.dev/patterns/Auth/connected_account#entities)."},"labels":{"items":{"type":"string"},"type":"array","description":"Array of labels to associate with the connection for organization and filtering."}},"type":"object","required":["data","integrationId"]},"UpdateConnectionLabelsPayloadDto":{"properties":{"labels":{"items":{"type":"string"},"type":"array","description":"Array of new labels to assign to the connection."}},"type":"object","required":["labels"]},"InitiateConnectionResponse":{"properties":{"connectionStatus":{"minLength":1,"type":"string","description":"The current status of the initiated connection."},"connectedAccountId":{"minLength":1,"type":"string","description":"The ID of the newly created connected account."},"redirectUrl":{"type":"string","description":"URL to redirect to for completing the connection process, if required."}},"type":"object","required":["connectionStatus","connectedAccountId"]},"ConnectedAccountNotFoundError":{"properties":{"name":{"enum":["ConnectedAccountNotFoundError"],"type":"string","description":"The name of the error","example":"ConnectedAccountNotFoundError"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."},"type":{"minLength":1,"type":"string","enum":["NotFoundError"],"description":"The name of the operation that caused the error"}},"type":"object","required":["name","status","message","requestId","type"]},"ToolsExecuteReqDto":{"properties":{"actionName":{"type":"string"},"runInSandbox":{"type":"boolean"},"input":{"type":"object"},"nlaInput":{"type":"string"},"authorizationData":{"type":"object"},"appSchema":{"type":"object"},"customDescription":{"type":"string"},"systemPrompt":{"type":"string"}},"type":"object","required":["actionName","runInSandbox","input"]},"DirectExecuteReqDto":{"properties":{"endpoint":{"type":"string"},"base_url":{"type":"string"},"headers":{"type":"object"},"queryParams":{"type":"object"},"body":{"type":"object"}},"type":"object","required":["endpoint","base_url","headers","queryParams"]},"ActionExecutionResDto":{"properties":{"data":{"type":"object","description":"The response data returned by the action execution."},"error":{"type":"string","description":"The error message, if the action failed to execute. If the action is successful, this will be null."},"successfull":{"type":"boolean","description":"Whether the action execution was successfully executed or not. If this is false, error field will be populated with the error message.","deprecated":true},"successful":{"type":"boolean","description":"Whether the action execution was successfully executed or not. If this is false, error field will be populated with the error message."}},"type":"object","required":["data","successfull","successful"]},"CustomAuthDTO":{"properties":{"base_url":{"type":"string","description":"The base URL (root address) what you should use while making http requests to the connected account. For example, for gmail, it would be 'https://gmail.googleapis.com'"},"parameters":{"items":{"$ref":"#/components/schemas/Parameter"},"type":"array"},"body":{"type":"object","description":"The body to be sent to the endpoint for authentication. This can either be a JSON field or a string. Note: This is very rarely neeed and is only required by very few apps."}},"type":"object","required":["parameters"],"description":"Custom authentication credentials to use while executing an action."},"ActionProxyRequestMethodDTO":{"properties":{"type":{"enum":["formData","urlEncoded","raw","binary","graphql","none"],"type":"string","description":"The type of request body to use for the action. Defaults to 'none'."},"data":{"type":"string","description":"The data to be sent to the endpoint. This will override the body set in the connected account."}},"type":"object"},"GetSingleActionReqDTO":{"properties":{"actionId":{"minLength":1,"type":"string","description":"The id of the action to get details for. This can be found in the id field in [/api/v2/actions](/api-reference/actions/list-actions) endpoint."}},"type":"object","required":["actionId"]},"ActionProxyRequestConfigDTO":{"properties":{"connectedAccountId":{"type":"string","description":"The connected account uuid to use for the action."},"endpoint":{"type":"string","description":"The endpoint to call for the action. If the given url is relative, it will be resolved relative to the base_url set in the connected account info."},"method":{"enum":["GET","POST","PUT","PATCH","DELETE"],"type":"string","description":"The HTTP method to use for the action."},"parameters":{"items":{"$ref":"#/components/schemas/Parameter"},"type":"array"},"body":{"type":"object","description":"The body to be sent to the endpoint. This can either be a JSON field or a string."}},"type":"object","required":["connectedAccountId","endpoint","method","parameters"]},"SessionInfoDTO":{"properties":{"sessionId":{"type":"string"},"metadata":{"type":"object"}},"type":"object","description":"Used internally by our SDK's to keep track of the source of execution, ignore it."},"NLAArgumentsResponseDTO":{"properties":{"arguments":{"type":"object","description":"The arguments for the action needed to execute the given task."},"error":{"type":"string","description":"The error message if the arguments were not generated successfully."}},"type":"object"},"ActionExecutionReqDTO":{"properties":{"connectedAccountId":{"format":"uuid","type":"string","description":"Connected account uuid for the account you want to run the action on. You can get this from the id field in [/api/v1/connectedAccounts](/api-reference/connections/list-connections) endpoint."},"appName":{"type":"string","description":"The name/id of the app that the action belongs to. To get the app name, you can use the [/api/v1/apps](/api-reference/apps/list-apps) endpoint."},"entityId":{"type":"string","description":"(Optional) EntityId that represents your users connections - if the required connection is availabe for the user, it'll be auto-picked. If you are passing this, there's no need to pass `connectedAccountId`. To know more about entityId, [click here](https://backend.composio.dev/patterns/Auth/connected_account#entities)"},"input":{"type":"object","description":"Action inputs or aguments to execute the action. This is a dict/map with key-value structure, depdning on the action schema you can find in [/api/v2/actions/{actionName}](/api-reference/actions/get-single-action) endpoint."},"sessionInfo":{"$ref":"#/components/schemas/SessionInfoDTO"},"authConfig":{"$ref":"#/components/schemas/CustomAuthDTO"},"text":{"type":"string","description":"The use-case description for the action, this will give context to LLM to generate the correct inputs for the action."},"customDescription":{"type":"string","description":"The custom description for the action, use this to provide customised context about the action to the LLM to suit your use-case."},"systemPrompt":{"type":"string","description":"The system prompt to be used by LLM, use this to control and guide the behaviour of the LLM."}},"type":"object"},"ActionGetNLAInputsReqDTO":{"properties":{"text":{"minLength":1,"type":"string","description":"The use-case description for the action, this will give context to LLM to generate the correct inputs for the action."},"customDescription":{"type":"string","description":"The custom description for the action, use this to provide customised context about the action to the LLM to suit your use-case."},"systemPrompt":{"type":"string","description":"The system prompt to be used by LLM, use this to control and guide the behaviour of the LLM."}},"type":"object","required":["text"]},"ProxyExecutionReqDTO":{"properties":{"endpoint":{"type":"string"},"connectedAccountId":{"type":"string"}},"type":"object","required":["endpoint","connectedAccountId"]},"ActionNotFoundError":{"properties":{"name":{"minLength":1,"type":"string","enum":["ActionNotFoundError"],"description":"The error name"},"status":{"minLength":1,"type":"number","description":"HTTP status code"},"message":{"minLength":1,"type":"string","description":"Error message"},"requestId":{"type":"string","description":"Request ID, used for tracing the request. This is very helpful for internal teams to debug issues."},"type":{"minLength":1,"type":"string","enum":["NotFoundError"],"description":"The name of the operation that caused the error"}},"type":"object","required":["name","status","message","requestId","type"]},"ActionDetailsMinimal":{"properties":{"description":{"type":"string","description":"The description of the action, tailored to improve the LLM accuracy and reasoning. Use this a tool/function description."},"displayName":{"type":"string","description":"The display name of the action, used to identify the action in the UI."},"logo":{"type":"string","description":"The logo of the app that the action belongs to."},"name":{"type":"string","description":"The name of the action, used to identify the action in the UI."},"tags":{"items":{"type":"string"},"type":"array","description":"The tags of the action, used to categorize the action in the UI."},"deprecated":{"type":"boolean","description":"Whether the action is deprecated, if true, avoid using this action."}},"type":"object","required":["description","displayName","logo","name","tags"]},"ActionsTagQueryReqDTO":{"properties":{"apps":{"type":"string","description":"Comma separated list of app names to filter the action tags by."}},"type":"object"},"ActionDetails":{"properties":{"parameters":{"type":"object","description":"Required parameters for the action to execute. For example, if the action is GMAIL_SEND_EMAIL, the required parameters for actions execution would be the email address, subject, and body."},"response":{"type":"object","description":"Expected response structure after action execution. You can use this to quickly check what happened with the action execution."},"appKey":{"type":"string","description":"The name of the app that the action belongs to. This is same as appId."},"appName":{"type":"string","description":"The name of the app that the action belongs to, "},"appId":{"type":"string","description":"The id of the app that the action belongs to. This is same as the appKey. Please use appKey instead.","deprecated":true},"description":{"type":"string","description":"The description of the action, tailored to improve the LLM accuracy and reasoning. Use this a tool/function description."},"displayName":{"type":"string","description":"The display name of the action, used to identify the action in the UI."},"logo":{"type":"string","description":"The logo of the app that the action belongs to."},"name":{"type":"string","description":"The name of the action, used to identify the action in the UI."},"tags":{"items":{"type":"string"},"type":"array","description":"The tags of the action, used to categorize the action in the UI."},"deprecated":{"type":"boolean","description":"Whether the action is deprecated, if true, avoid using this action."}},"type":"object","required":["parameters","response","appKey","appName","appId","description","displayName","logo","name","tags"]},"ActionsTagsResponseDTO":{"properties":{"items":{"items":{"type":"string"},"type":"array","description":"List of all the action tags available in composio"}},"type":"object","required":["items"]},"ActionsListResponseDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ActionDetails"},"type":"array"},"page":{"type":"number","description":"Current page number in the paginated response","example":1},"totalPages":{"type":"number","description":"Total number of pages available"}},"type":"object","required":["items","page","totalPages"]},"ActionsMinimalListResponseDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ActionDetailsMinimal"},"type":"array"},"page":{"type":"number"},"totalPages":{"type":"number"}},"type":"object","required":["items","page","totalPages"]},"AdvancedUseCaseSearchBodyDTO":{"properties":{"useCase":{"type":"string"}},"type":"object"},"AdvancedUseCaseSearchQueryDTO":{"properties":{"useCase":{"type":"string","deprecated":true,"description":"Use case is deprecated. Please provide this in the body instead to avoid max-uri-length error."},"limit":{"type":"number"},"maxActionsPerTask":{"type":"number"},"minActionsPerTask":{"type":"number"},"apps":{"type":"string"},"filterByAvailableApps":{"type":"boolean"}},"type":"object"},"AdvancedUseCaseSearchTask":{"properties":{"app":{"type":"string"},"actions":{"items":{"type":"string"},"type":"array"},"description":{"type":"string"},"order":{"type":"number"}},"type":"object","required":["app","actions","description","order"]},"AdvancedUseCaseSearchResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AdvancedUseCaseSearchTask"},"type":"array"}},"type":"object","required":["items"]},"ExecuteActionResDTO":{"properties":{"response_data":{"type":"boolean","description":"Indicates if the action was executed successfully"},"execution_details":{"type":"object","description":"Details of the execution status"}},"type":"object","required":["response_data","execution_details"]},"ActionsQueryDTO":{"properties":{"appNames":{"type":"string","description":"Names of the apps"},"useCase":{"type":"string","description":"Use case"},"showEnabledOnly":{"type":"boolean","description":"Show enabled only"},"limit":{"type":"number","description":"Limit"},"apps":{"type":"string"},"actions":{"type":"string"},"tags":{"type":"string"},"usecaseLimit":{"type":"number"},"filterImportantActions":{"type":"boolean"},"showAll":{"type":"boolean"},"page":{"type":"number"}},"type":"object"},"ActionsControllerV1":{"properties":{"getAction":{"items":{"type":"object"},"type":"array"}},"type":"object","required":["getAction"]},"OAuth2CallbackQueryDto":{"properties":{"state":{"type":"string"}},"type":"object","required":["state"]},"RedirectUriDTO":{"properties":{"redirectUri":{"type":"string"}},"type":"object"},"ListTriggersQueryDTO":{"properties":{"appNames":{"type":"string","description":"Comma-separated list of app names to filter connections by. You can get the app names from the `name` field in the response of the `GET /api/v1/apps` endpoint."},"connectedAccountIds":{"type":"string","description":"Comma-separated list of connected account IDs to filter triggers by. Returns all the possible triggers you can setup for these connected accounts. You can get the connected account IDs from the `id` field in the response of the `GET /api/v1/connections` endpoint."},"triggerIds":{"type":"string","description":"Comma-separated list of trigger names to filter triggers by. You can get the trigger names from the `name` field in the response of the `GET /api/v1/triggers` endpoint."},"integrationIds":{"type":"string","description":"Comma-separated list of integration IDs to filter triggers by. You can get the integration IDs from the `id` field in the response of the `GET /api/v1/integrations` endpoint."},"showEnabledOnly":{"type":"boolean","description":"When set to true, returns only enabled triggers. This field is deprecated and will be removed in future versions.","deprecated":true}},"type":"object"},"GetActiveTriggersQueryDTO":{"properties":{"connectedAccountIds":{"type":"string","description":"Comma-separated list of connected account IDs to filter triggers by. You can get these IDs from the `id` field in the response of the `GET /api/v1/connections` endpoint."},"integrationIds":{"type":"string","description":"Comma-separated list of integration IDs to filter triggers by. You can get these IDs from the `id` field in the response of the `GET /api/v1/integrations` endpoint."},"triggerIds":{"type":"string","description":"Comma-separated list of trigger IDs to filter triggers by. You can get these IDs from the `id` field in the response of the `GET /api/v1/triggers` endpoint."},"triggerNames":{"type":"string","description":"Comma-separated list of trigger names to filter triggers by. You can get these names from the `name` field in the response of the `GET /api/v1/triggers` endpoint."},"page":{"type":"number","description":"Page number for pagination. Starts from 1."},"limit":{"type":"number","description":"Number of items to return per page."},"showDisabled":{"type":"boolean","description":"When set to true, includes disabled triggers in the response."}},"type":"object"},"GetLogsQueryDTO":{"properties":{"connectionId":{"type":"string","description":"Filter logs by connection ID. You can get this from the `id` field in the response of the `GET /api/v1/connections` endpoint."},"integrationId":{"type":"string","description":"Filter logs by integration ID. You can get this from the `id` field in the response of the `GET /api/v1/integrations` endpoint."},"page":{"type":"number","description":"Page number for pagination. Starts from 1."},"limit":{"type":"number","description":"Number of items to return per page."}},"type":"object"},"TriggerResDTO":{"properties":{"name":{"type":"string","description":"Unique identifier of the trigger. This is used to reference the trigger in other API calls."},"display_name":{"type":"string","description":"Human-readable name of the trigger shown in the UI."},"description":{"type":"string","description":"Detailed description of what the trigger does."},"enabled":{"type":"boolean","description":"Indicates whether the trigger is currently enabled."},"config":{"type":"object","description":"Configuration parameters required for the trigger. Structure varies based on trigger type."},"payload":{"type":"object","description":"Sample payload that will be sent when the trigger fires."},"logo":{"type":"string","description":"URL of the trigger's icon or logo."},"count":{"type":"number","description":"Number of times this trigger has been activated."},"appKey":{"type":"string","description":"Unique key identifying the app this trigger belongs to."},"appId":{"type":"string","description":"Unique identifier of the app this trigger belongs to. You can get this from the `id` field in the response of the `GET /api/v1/apps` endpoint."},"appName":{"type":"string","description":"Name of the app this trigger belongs to."},"instructions":{"type":"string","description":"Step-by-step instructions on how to set up and use this trigger."},"type":{"type":"string","description":"Classification or category of the trigger."}},"type":"object","required":["name","display_name","appKey","appId","appName"]},"SingleTriggerResDTO":{"properties":{"name":{"type":"string","description":"Unique identifier of the trigger. Used to reference the trigger in other API calls."},"displayName":{"type":"string","description":"Human-readable name of the trigger shown in the UI."},"description":{"type":"string","description":"Detailed description of what the trigger does and when it fires."},"type":{"type":"string","description":"Classification or category of the trigger."},"appId":{"type":"string","description":"Unique identifier of the app this trigger belongs to. You can get this from the `id` field in the response of the `GET /api/v1/apps` endpoint."},"appName":{"type":"string","description":"Name of the app this trigger belongs to."},"instructions":{"type":"string","description":"Step-by-step instructions on how to set up and use this trigger."},"payload":{"type":"object","description":"Sample payload that will be sent when the trigger fires."},"config":{"type":"object","description":"Configuration parameters required for the trigger. Structure varies based on trigger type."}},"type":"object","required":["name","displayName","description","type","appId","appName","payload","config"]},"TriggerConfig":{"properties":{"repo":{"type":"string","description":"Name of the repository to monitor."},"owner":{"type":"string","description":"Owner (user or organization) of the repository."}},"type":"object","required":["repo","owner"],"description":"Configuration parameters for a trigger"},"ActiveTriggerInstance":{"properties":{"id":{"type":"string","description":"Unique identifier of the trigger instance."},"connectionId":{"type":"string","description":"ID of the connected account this trigger is associated with. You can get this from the `id` field in the response of the `GET /api/v1/connections` endpoint."},"triggerName":{"type":"string","description":"Name of the trigger. You can get this from the `name` field in the response of the `GET /api/v1/triggers` endpoint."},"triggerData":{"type":"string","description":"Additional data associated with the trigger instance."},"triggerConfig":{"$ref":"#/components/schemas/TriggerConfig"},"createdAt":{"type":"string","description":"ISO 8601 timestamp when the trigger instance was created.","format":"date-time"},"updatedAt":{"type":"string","description":"ISO 8601 timestamp when the trigger instance was last updated.","format":"date-time"},"disabledAt":{"type":"string","description":"ISO 8601 timestamp when the trigger instance was disabled, if applicable.","format":"date-time","nullable":true}},"type":"object","required":["connectionId","triggerName","triggerConfig","createdAt","updatedAt"]},"PageInfoDTO":{"properties":{"currentPage":{"type":"number","description":"Current page number."},"perPage":{"type":"number","description":"Number of items per page."},"totalPages":{"type":"number","description":"Total number of pages available."}},"type":"object","required":["currentPage","perPage","totalPages"]},"ActiveTriggersResDTO":{"properties":{"triggers":{"items":{"type":"object"},"type":"array","description":"List of active trigger instances."},"pageInfo":{"items":{"$ref":"#/components/schemas/PageInfoDTO"},"type":"array","description":"Pagination information for the response."}},"type":"object","required":["triggers","pageInfo"]},"TriggerLogsResDTO":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TriggerLogItemDTO"},"type":"array","description":"List of trigger log entries."},"pageInfo":{"$ref":"#/components/schemas/PageInfoDTO","description":"Pagination information for the response."}},"type":"object","required":["data","pageInfo"]},"TriggerLogItemDTO":{"properties":{"clientId":{"type":"string","description":"Unique identifier of the client that initiated the trigger."},"connectionId":{"type":"string","description":"ID of the connection associated with this log entry. You can get this from the `id` field in the response of the `GET /api/v1/connections` endpoint."},"errorTrigger":{"type":"string","description":"Error message if the trigger failed.","nullable":true},"triggerClientError":{"type":"string","description":"Client-side error message if any occurred.","nullable":true},"triggerClientPayload":{"type":"string","description":"Payload sent by the client when the trigger was activated.","nullable":true},"triggerProviderPayload":{"type":"string","description":"Payload received from the provider's API.","nullable":true},"triggerName":{"type":"string","description":"Name of the trigger that generated this log entry.","nullable":true},"id":{"type":"string","description":"Unique identifier for this log entry."},"appKey":{"type":"string","description":"Key identifying the app associated with this log entry."},"createdAt":{"type":"string","description":"ISO 8601 timestamp when this log entry was created.","format":"date-time"}},"type":"object","required":["clientId","connectionId","id","appKey","createdAt"]},"HandleTriggerParamsDTO":{"properties":{"appName":{"type":"string","description":"Name of the app handling the trigger. You can get this from the `name` field in the response of the `GET /api/v1/apps` endpoint."},"clientId":{"type":"string","description":"Unique identifier of the client initiating the trigger."}},"type":"object","required":["appName","clientId"]},"HandleTriggerBodyDTO":{"properties":{"body":{"type":"object","description":"Payload data to be processed by the trigger."}},"type":"object","required":["body"]},"EnableTriggerParamsDTO":{"properties":{"connectedAccountId":{"type":"string","description":"ID of the connected account to enable the trigger for. You can get this from the `id` field in the response of the `GET /api/v1/connections` endpoint."},"triggerName":{"type":"string","description":"Name of the trigger to enable. You can get this from the `name` field in the response of the `GET /api/v1/triggers` endpoint."}},"type":"object","required":["connectedAccountId","triggerName"]},"GetTriggerParamsDTO":{"properties":{"triggerId":{"type":"string","description":"Unique identifier of the trigger to retrieve. You can get this from the `id` field in the response of the `GET /api/v1/triggers` endpoint."}},"type":"object","required":["triggerId"]},"EnableTriggerBodyDTO":{"properties":{"triggerConfig":{"type":"object","description":"Configuration parameters for the trigger. Structure varies based on trigger type."},"verifyHost":{"type":"string","description":"Host URL for webhook verification, if required."}},"type":"object","required":["triggerConfig"]},"SwitchTriggerStatusParamsDTO":{"properties":{"triggerId":{"type":"string","description":"Unique identifier of the trigger instance to update. You can get this from the `id` field in the response of the `GET /api/v1/triggers/active` endpoint."}},"type":"object","required":["triggerId"]},"SwitchTriggerStatusBodyDTO":{"properties":{"enabled":{"type":"boolean","description":"New enabled/disabled state for the trigger."}},"type":"object","required":["enabled"]},"TriggerInstanceParamsDTO":{"properties":{"triggerInstanceId":{"type":"string","description":"Unique identifier of the trigger instance to modify. You can get this from the `id` field in the response of the `GET /api/v1/triggers/active` endpoint."}},"type":"object","required":["triggerInstanceId"]},"SetCallbackUrlBodyDTO":{"properties":{"callbackURL":{"type":"string","description":"URL where webhook notifications should be sent when the trigger fires."}},"type":"object","required":["callbackURL"]},"TriggerResponseDTO":{"properties":{"status":{"type":"string","description":"Status of the operation (success/error)."},"message":{"type":"string","description":"Additional information about the operation result."},"triggerId":{"type":"string","description":"Unique identifier of the affected trigger."},"isNew":{"type":"boolean","description":"Indicates whether a new trigger was created (true) or an existing one was modified (false)."}},"type":"object","required":["status"]},"WebhookURLResponseDTO":{"properties":{"status":{"type":"string","description":"Status of the operation (success/error)."},"callbackURL":{"type":"string","description":"The currently configured webhook callback URL."}},"type":"object","required":["status"]},"TriggerMetadataDTO":{"properties":{"id":{"type":"string","description":"Unique identifier of the trigger."},"connectionId":{"type":"string","description":"ID of the connection this trigger is associated with. You can get this from the `id` field in the response of the `GET /api/v1/connections` endpoint."},"triggerName":{"type":"string","description":"Name of the trigger. You can get this from the `name` field in the response of the `GET /api/v1/triggers` endpoint."},"triggerData":{"type":"string","description":"Additional data associated with the trigger."},"triggerConfig":{"type":"object","description":"Configuration parameters for the trigger. Structure varies based on trigger type."},"state":{"type":"object","description":"Current state of the trigger."},"createdAt":{"type":"string","description":"ISO 8601 timestamp when the trigger was created.","format":"date-time"},"updatedAt":{"type":"string","description":"ISO 8601 timestamp when the trigger was last updated.","format":"date-time"},"disabledAt":{"type":"string","description":"ISO 8601 timestamp when the trigger was disabled, if applicable.","format":"date-time","nullable":true},"disabledReason":{"type":"string","description":"Reason why the trigger was disabled, if applicable.","nullable":true}},"type":"object","required":["id","connectionId","triggerName","triggerData","triggerConfig","state","createdAt","updatedAt"],"description":"Detailed information about a trigger"},"GetTriggerResponseDTO":{"properties":{"status":{"type":"string","description":"Status of the operation (success/error)."},"trigger":{"$ref":"#/components/schemas/TriggerMetadataDTO"}},"type":"object","required":["status"]},"WehbookNewFormatDTO":{"properties":{"id":{"type":"string","description":"Unique identifier of the project."},"isNewWebhook":{"type":"boolean","description":"Indicates whether this is a newly created webhook."}},"type":"object","required":["id","isNewWebhook"]},"ReadOnlyQueryReqDTO":{"properties":{"query":{"minLength":1,"type":"string"}},"type":"object","required":["query"]},"GenerateCLISessionReqDTO":{"properties":{"channel_name":{"type":"string","description":"The channel name for the CLI session"}},"type":"object","required":["channel_name"]},"GenerateCLISessionResDTO":{"properties":{"key":{"type":"string","description":"The key for the CLI session"}},"type":"object","required":["key"]},"GetCLISessionResDTO":{"properties":{"clientId":{"type":"string","description":"The client ID"},"cliCode":{"type":"string","description":"The CLI code"}},"type":"object","required":["clientId","cliCode"]},"VerifyCLICodeResDTO":{"properties":{"clientId":{"type":"string","description":"The client ID"},"cliCode":{"type":"string","description":"The CLI code"},"apiKey":{"type":"string","description":"The API key associated with the client"}},"type":"object","required":["clientId","cliCode","apiKey"]},"CLIQueryDTO":{"properties":{"key":{"type":"string","description":"Unique key for CLI session"},"code":{"type":"string","description":"Code for CLI verification"}},"type":"object","required":["key"]},"MetadataReqDTO":{"properties":{"email":{"type":"string","description":"The email associated with the metadata request"},"metadata":{"description":"Additional metadata as a key-value pair"}},"type":"object","required":["email"]},"TriggersEnabledToggleReqDTO":{"properties":{"enabled":{"type":"boolean","description":"Flag to enable or disable triggers"}},"type":"object","required":["enabled"]},"TriggersEnabledToggleResDTO":{"properties":{"message":{"type":"string","description":"Message indicating the result of the toggle operation"}},"type":"object","required":["message"]},"TriggerToggleInfoResponseDTO":{"properties":{"triggersEnabled":{"type":"boolean","description":"Indicates if triggers are enabled"}},"type":"object","required":["triggersEnabled"]},"ToggleTriggerStateResponseDTO":{"properties":{"message":{"type":"string"}},"type":"object","required":["message"]},"MetadataQueryDTO":{"properties":{"email":{"type":"string","description":"Email of the client"}},"type":"object","required":["email"]},"TriggerMetadata":{"properties":{"id":{"type":"string","description":"The unique id of the log"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["trigger"]}]},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was created","format":"date-time"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was updated","format":"date-time"},"provider":{"type":"string","description":"The provider of the log"},"clientId":{"type":"string","description":"The client uuid of the log"},"connectionId":{"type":"string","description":"The connection id of the log"},"triggerProviderPayload":{"type":"string","description":"The trigger provider payload of the log"},"triggerClientPayload":{"type":"string"},"triggerClientError":{"type":"string","description":"The trigger client error of the log"},"triggerName":{"type":"string","description":"The trigger name of the log"},"triggerClientResponse":{"type":"string","description":"The trigger client response of the log"}},"type":"object","required":["id","type","createdAt","updatedAt","provider","clientId","connectionId"],"description":"Metadata associated with the trigger log"},"ActionMetadata":{"properties":{"id":{"type":"string","description":"The unique id of the log"},"request":{"type":"string","description":"The request sent to the provider"},"response":{"type":"string","description":"The response from the provider"},"errorRequest":{"type":"string","description":"The error request sent to the provider"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["action"]}]},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was created","format":"date-time"},"updatedAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The date and time when the log was updated","format":"date-time"},"provider":{"type":"string","description":"The provider of the log"},"clientId":{"type":"string","description":"The client uuid of the log"},"connectionId":{"type":"string","description":"The connection id of the log"},"actionName":{"type":"string","description":"The action name of the log"}},"type":"object","required":["id","request","type","createdAt","updatedAt","provider","clientId","connectionId","actionName"]},"TriggerLogData":{"properties":{"id":{"type":"string","description":"The unique identifier of the trigger log"},"connectionId":{"type":"string","description":"The connection identifier associated with the trigger log"},"clientId":{"type":"string","description":"The client identifier associated with the trigger log"},"status":{"type":"string","description":"The status of the trigger log"},"appName":{"type":"string","description":"The name of the application associated with the trigger log"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date and time of the trigger log","format":"date-time"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["trigger"]}]},"meta":{"$ref":"#/components/schemas/TriggerMetadata"}},"type":"object","required":["id","connectionId","clientId","status","appName","createdAt","type","meta"]},"ActionLogData":{"properties":{"id":{"type":"string","description":"The unique identifier of the action log"},"connectionId":{"type":"string","description":"The connection identifier associated with the action log"},"clientId":{"type":"string","description":"The client identifier associated with the action log"},"status":{"type":"string","description":"The status of the action log"},"appName":{"type":"string","description":"The name of the application associated with the action log"},"createdAt":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"The creation date and time of the action log","format":"date-time"},"type":{"type":"string","description":"The type of the log","oneOf":[{"type":"string","enum":["action"]}]},"meta":{"$ref":"#/components/schemas/ActionMetadata"}},"type":"object","required":["id","connectionId","clientId","status","appName","createdAt","type","meta"]},"LogsResDTO":{"properties":{"nextCursor":{"type":"string","description":"The cursor to get the next page of logs"},"data":{"items":{"type":"object"},"type":"array","description":"Logs data"}},"type":"object","required":["data"]},"GetLogsDTO":{"properties":{"type":{"enum":["error","info","debug"],"type":"string","description":"Type of the log"},"time":{"enum":["5m","30m","6h","1d","1w","1month","1y"],"type":"string","description":"Time interval for which data needs to be fetched"},"status":{"enum":["all","success","error"],"type":"string","description":"Status of the log"},"search":{"type":"string","description":"Search term in the log"},"integrationId":{"type":"string","description":"Integration UUID"},"entityId":{"type":"string","description":"Entity id"},"limit":{"type":"number","description":"Limit of the logs","default":10},"cursor":{"type":"string","description":"Cursor for pagination"},"logsType":{"type":"string","description":"Type of the log"},"sessionId":{"type":"string","description":"Session ID of the log"}},"type":"object"},"IngestDataDTO":{"properties":{"connectionId":{"type":"string","description":"Connection ID of the log"},"sessionId":{"type":"string","description":"Session ID of the log"},"logsType":{"type":"string","description":"Type of the log"},"entityId":{"type":"string","description":"Entity ID of the log"},"providerName":{"type":"string","description":"Provider name of the log"},"actionName":{"type":"string","description":"Action name of the log"},"request":{"type":"object"},"response":{"type":"object"},"isError":{"type":"boolean"}},"type":"object","required":["providerName","actionName","request","response","isError"]},"IngestDataResponseDTO":{"properties":{"isIngested":{"type":"boolean"}},"type":"object","required":["isIngested"]},"ActionsQueryV2DTO":{"properties":{"apps":{"type":"string","description":"Comma separated list of composio apps to filter by. You can get the list of apps by using [/api/v1/apps](/api-reference/apps/list-apps) endpoint."},"actions":{"type":"string","description":"Comma separated list of composio actions to filter by. You can get the list of actionIds from this API or you can get it by running `composio actions` command in your terminal."},"tags":{"type":"string","description":"Comma separated list of composio action tags to filter by. You can get the list of action tags by using [/api/v2/actions/list/tags](/api-reference/actions/list-action-tags) endpoint."},"useCase":{"type":"string","description":"Smart use-case based search for actions needed to be performed as per the use-case. This uses AI to understand the use-case and then finally returns the list of actions. **Note:** If you are using this field, you can not use actions or tags fields."},"page":{"type":"number","description":"Page number to be returned, default is 1","minimum":1},"limit":{"type":"number","description":"Limit the number of actions to be returned, default is 30","minimum":1},"filterImportantActions":{"type":"boolean","description":"Filter and return only important actions. This is equivalent to setting tags='important' in the query params mentioned above."}},"type":"object"},"TimePeriodReqDTO":{"properties":{"lastTimePeriod":{"enum":["DAY","WEEK","MONTH","SIX_MONTH","YEAR","FIVE_YEAR"],"type":"string","description":"Time period to get the data for"}},"type":"object"},"ActionByAppDTO":{"properties":{"appName":{"type":"string","description":"Name of the app"},"totalCount":{"type":"number","description":"Total count of actions for the app"}},"type":"object","required":["appName","totalCount"],"description":"Action counts by app"},"ActionByStatusDTO":{"properties":{"failed":{"type":"number","description":"Count of failed actions"},"success":{"type":"number","description":"Count of successful actions"}},"type":"object","required":["failed","success"],"description":"Action counts by status"},"ActionAnalyticsDTO":{"properties":{"date":{"type":"string","description":"Date of the action","format":"date"},"byApp":{"$ref":"#/components/schemas/ActionByAppDTO"},"byStatus":{"$ref":"#/components/schemas/ActionByStatusDTO"}},"type":"object","required":["date","byApp","byStatus"],"description":"Comprehensive trigger analytics data, presenting a breakdown by day, status, and provider for all triggers"},"IntegrationsWithCountsDTO":{"properties":{"id":{"type":"string","description":"Unique identifier for the integration"},"appName":{"type":"string","description":"Name of the app"},"integrationName":{"type":"string","description":"Name of the integration"},"connectionCount":{"type":"number","description":"Count of connections for the integration"},"triggerCount":{"type":"number","description":"Count of triggers for the integration"},"requestLogsCount":{"type":"number","description":"Count of request logs for the integration"}},"type":"object","required":["id","appName","integrationName","connectionCount","triggerCount","requestLogsCount"],"description":"Detailed integration analytics data, including a breakdown of connection count, trigger count, and request logs count for each integration"},"AppNameCountDTO":{"properties":{"appName":{"type":"string","description":"Name of the app"},"connectionCount":{"type":"number","description":"Count of connections for the app"},"triggerCount":{"type":"number","description":"Count of triggers for the app"},"requestLogsCount":{"type":"number","description":"Count of request logs for the app"}},"type":"object","required":["appName","connectionCount","triggerCount","requestLogsCount"],"description":"Comprehensive app-level analytics data, providing a breakdown of connection count, trigger count, and request logs count for each app"},"AnalyticsDataReqDTO":{"properties":{"lastTimePeriod":{"enum":["DAY","WEEK","MONTH","SIX_MONTH","YEAR","FIVE_YEAR"],"type":"string","description":"Time period to get the data for"}},"type":"object"},"ClientUniqueUserIdCountDTO":{"properties":{"clientUniqueUserId":{"type":"string","description":"Client unique user id"},"count":{"type":"number","description":"Count of connections for the client unique user id"}},"type":"object","required":["clientUniqueUserId","count"],"description":"Connection counts by entity"},"AnalyticsEntityDataDTO":{"properties":{"byConnections":{"items":{"$ref":"#/components/schemas/ClientUniqueUserIdCountDTO"},"type":"array"},"byActions":{"items":{"$ref":"#/components/schemas/ClientUniqueUserIdCountDTO"},"type":"array","description":"Action counts by entity"},"byTriggers":{"items":{"$ref":"#/components/schemas/ClientUniqueUserIdCountDTO"},"type":"array","description":"Trigger counts by entity"}},"type":"object","required":["byConnections","byActions","byTriggers"],"description":"Entity-related analytics data, providing a breakdown by connections, actions, and triggers for each entity. This is include all entity info."},"AnalyticsDataResDTO":{"properties":{"entity":{"$ref":"#/components/schemas/AnalyticsEntityDataDTO"},"actions":{"items":{"$ref":"#/components/schemas/ActionAnalyticsDTO"},"type":"array"},"trigger":{"items":{"$ref":"#/components/schemas/ActionAnalyticsDTO"},"type":"array"},"integrations":{"items":{"$ref":"#/components/schemas/IntegrationsWithCountsDTO"},"type":"array"},"app":{"$ref":"#/components/schemas/AppNameCountDTO"}},"type":"object","required":["entity","actions","trigger","integrations","app"]},"TopEntitiesResDTO":{"properties":{"entities":{"items":{"$ref":"#/components/schemas/TConnectionCountDTO"},"type":"array","description":"Top entities by connection count"}},"type":"object","required":["entities"]},"TConnectionCountDTO":{"properties":{"clientUniqueUserId":{"type":"string","description":"Name of the entity"},"count":{"type":"number","description":"Count of connections for the entity"}},"type":"object","required":["clientUniqueUserId","count"]},"EntityQueryReqDTO":{"properties":{"query":{"type":"string","description":"Query to get the data for"}},"type":"object"},"WebhookReqDTO":{"properties":{"eventWebhookURL":{"type":"string","description":"Event Webhook URL"}},"type":"object","required":["eventWebhookURL"]},"FetchQueryDTO":{"properties":{"startTime":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"Start time of the event in ISO 8601 format"},"endTime":{"pattern":"\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d.\\d+Z?","type":"string","description":"End time of the event in ISO 8601 format"}},"type":"object","required":["startTime","endTime"]},"WebhookSecretResDTO":{"properties":{"webhookSecret":{"type":"string","description":"Webhook secret"}},"type":"object","required":["webhookSecret"]},"CreateCheckoutSessionReqDto":{"properties":{"plan":{"enum":["HOBBY","STARTER","GROWTH","ENTERPRISE","STARTUP"],"type":"string"},"applyCoupon":{"type":"boolean"}},"type":"object","required":["plan"]},"SDKErrorResDTO":{"properties":{"status":{"type":"string","description":"The status of the SDK error"}},"type":"object","required":["status"]},"OrgProjectListResDTO":{"properties":{"projects":{"items":{"$ref":"#/components/schemas/ProjectResDTO"},"type":"array"}},"type":"object","required":["projects"]},"UpdateRowAPIDTO":{"properties":{"status":{"enum":["success","failed"],"type":"string","description":"Status of the update operation"},"count":{"type":"number","description":"Number of records updated"}},"type":"object","required":["status","count"]}},"securitySchemes":{"api_key":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key for authentication, you can easily get it from the [dashboard](https://app.composio.dev/settings) after login or if you are using CLI, you can get it from the `composio whoami` command"},"org_api_key":{"type":"apiKey","in":"header","name":"x-org-api-key","description":"Org level API key required for organisation operations. You can get it from your [settings page](https://app.composio.dev/settings)"}}},"info":{"title":"Composio OpenAPI","version":"1.0.0","description":"Generated with `routing-controllers-openapi`"},"openapi":"3.0.0","paths":{"/api/v1/client/auth/client_info":{"get":{"operationId":"getUserInfo","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientInfoResDTO"}}},"description":""}},"summary":"Get user info","tags":["Client"],"description":"Get client info"}},"/api/v1/client/auth/project/add":{"post":{"operationId":"addProject","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectReqDTO"}}},"description":"ProjectReqDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResDTO"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}},"description":""}},"summary":"Add new project","tags":["Client"],"description":"Add a new project to the client's organization"}},"/api/v1/client/auth/project/delete/{projectId}":{"delete":{"operationId":"deleteProject","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectIdNotFoundError"}}},"description":""}},"summary":"Delete project","tags":["Client"],"description":"Delete a project from the client's organization"}},"/api/v1/client/auth/projects":{"get":{"operationId":"getProjects","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectListResDTO"}}},"description":""}},"summary":"Get projects","tags":["Client"]}},"/api/v1/client/auth/org/api_key":{"get":{"operationId":"getOrgApiKey","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgApiKeyResDTO"}}},"description":""}},"summary":"Get org api key","tags":["Client"]}},"/api/v1/client/auth/org/api_key/regenerate":{"post":{"operationId":"regenerateOrgApiKey","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgApiKeyRegenerateResDTO"}}},"description":""}},"summary":"Regenerate org api key","tags":["Client"]}},"/api/v1/team/invite":{"post":{"operationId":"inviteMember","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteMemberReqDTO"}}},"description":"InviteMemberReqDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberResDTO"}}},"description":""}},"summary":"Invite member","tags":["Team"]}},"/api/v1/team/members":{"get":{"operationId":"listMembers","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/MemberResDTO"},"type":"array"}}},"description":""}},"summary":"List members","tags":["Team"]}},"/api/v1/api_keys":{"post":{"operationId":"generateAPIKey","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateAPIKeyReqDTO"}}},"description":"GenerateAPIKeyReqDTO","required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyResDTO"}}},"description":""}},"summary":"Generate api key","tags":["API-Keys"]},"get":{"operationId":"listAPIKeys","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/APIKeyResDTO"},"type":"array"}}},"description":""}},"summary":"List api keys","tags":["API-Keys"]}},"/api/v1/api_keys/{id}":{"delete":{"operationId":"deleteAPIKey","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeyResponseDTO"}}},"description":""}},"summary":"Delete api key","tags":["API-Keys"]}},"/api/v1/apps/list/categories":{"get":{"operationId":"listAppCategories","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppListCategoriesResDTO"}}},"description":""}},"summary":"List app categories","tags":["Apps"],"description":"List of available app categories, can be used to filter apps."}},"/api/v1/apps":{"get":{"operationId":"getApps","parameters":[{"in":"query","name":"category","schema":{"type":"string","description":"Filter apps by category. Used to retrieve apps belonging to a specific group or type.\n To get a list of available categories, see the [Get App Categories](#operation/getAppCategories) endpoint.","example":"crm"}},{"in":"query","name":"additionalFields","schema":{"type":"string","description":"Comma-separated list of additional fields to include in the response. Allows customizing the response payload for app details. Supported fields: auth_schemes","example":"auth_schemes"}},{"in":"query","name":"includeLocal","schema":{"enum":["true","false"],"type":"string","description":"Filter to include locally developed/testing apps in the response. Must be 'true' or 'false'","example":"true","default":"false"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppListResDTO"}}},"description":""}},"summary":"List apps","tags":["Apps"],"description":"List all apps based on the given filters, if any. This will return all available apps if no filters are provided."}},"/api/v1/apps/{appName}":{"get":{"operationId":"getApp","parameters":[{"in":"path","name":"appName","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleAppInfoResDTO"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":""}},"summary":"Get single app","tags":["Apps"],"description":"Get app details"}},"/api/v1/integrations":{"post":{"operationId":"createConnector","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConnectorPayloadDTO"}}},"description":"CreateConnectorPayloadDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectorInfoResDTO"}}},"description":""}},"summary":"Create connector","tags":["Integrations"],"description":"Create a new connector"},"get":{"operationId":"listAllConnectors","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectorListResDTO"}}},"description":""}},"summary":"List all connectors","tags":["Integrations"],"description":"List all connectors"}},"/api/v1/integrations/{integrationId}":{"get":{"operationId":"getConnectorInfo","parameters":[{"in":"path","name":"integrationId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectorInfoResDTO"}}},"description":""}},"summary":"Get connector info","tags":["Integrations"],"description":"Get connector info"},"patch":{"operationId":"modifyConnector","parameters":[{"in":"path","name":"integrationId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchConnectorReqDTO"}}},"description":"PatchConnectorReqDTO","required":false},"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchConnectorResDTO"}}},"description":""}},"summary":"Modify connector","tags":["Integrations"],"description":"Modify a connector"},"delete":{"operationId":"deleteConnector","parameters":[{"in":"path","name":"integrationId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""}},"summary":"Delete connector","tags":["Integrations"],"description":"Delete a connector"}},"/api/v1/integrations/{integrationId}/status":{},"/api/v1/connectedAccounts":{"get":{"operationId":"listConnections","parameters":[{"in":"query","name":"page","schema":{"minimum":1,"type":"number","description":"The page number for pagination. Defaults to 1 if not specified."}},{"in":"query","name":"pageSize","schema":{"minimum":1,"type":"number","description":"The number of items per page for pagination. Defaults to 99999999 if not specified - this is a temporary fix to support backward compatibility issues. Please specify this value to avoid fetching all connections at once."}},{"in":"query","name":"appNames","schema":{"type":"string","description":"Comma-separated list of app names to filter connections by. You can get the app names from the [/api/v1/apps](/api-reference/apps/list-apps) endpoint."}},{"in":"query","name":"labels","schema":{"type":"string","description":"Comma-separated list of labels to filter connections by."}},{"in":"query","name":"showActiveOnly","schema":{"type":"boolean","description":"Flag to show only active connections. Defaults to false if not specified."}},{"in":"query","name":"status","schema":{"enum":["INITIATED","ACTIVE","FAILED"],"type":"string","description":"The status of the connection to filter by."}},{"in":"query","name":"integrationId","schema":{"format":"uuid","type":"string","description":"The ID/UUID of the integration to filter connections by. You can get the integration ID from the [/api/v1/integrations](/api-reference/integrations/list-integrations) endpoint."}},{"in":"query","name":"connectionId","schema":{"format":"uuid","type":"string","description":"UUID of the connected account you want to get auth credentials for. You can get this from the `id` field in the response of the [/api/v1/connectedAccounts](/api-reference/connections/list-connections) endpoint."}},{"in":"query","name":"user_uuid","schema":{"type":"string","description":"Comma-separated list of entity IDs to filter connections by. This field is deprecated - please use entityId instead.","deprecated":true}},{"in":"query","name":"entityId","schema":{"type":"string","description":"Comma-separated list of entity ids of the user to filter connections by. Learn more about entities [here](https://docs.composio.dev/patterns/Auth/connected_account#entities)."}},{"in":"query","name":"showDisabled","schema":{"type":"boolean","description":"Flag to include disabled connections in the results. Defaults to false if not specified."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectionsResponseDto"}}},"description":"Get all connections for the current user"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}},"description":"Validation error with the provided filters. Please check your input."}},"summary":"List connections","tags":["Connections"],"description":"Get all connections in the current project."},"post":{"operationId":"initiateConnection","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateConnectionPayloadDto"}}},"description":"InitiateConnectionPayloadDto","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateConnectionResponse"}}},"description":"Initiates a connection for the given integration and mark the connection status as initiated if the auth scheme is OAuth1 or OAuth2"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}},"description":"Failed to initiate connection due to various reasons such as invalid payload or app schema not found. Please check the details field for more information."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}},"description":"Integration pass is not found, check if the integrationId passed is correct and enabled."}},"summary":"Initiate connection","tags":["Connections"]}},"/api/v1/connectedAccounts/{connectedAccountId}/data":{"patch":{"operationId":"updateConnectionData","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectionLabelsPayloadDto"}}},"description":"UpdateConnectionLabelsPayloadDto","required":false},"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Update connection data","tags":["Connections"],"description":"Update connection data"}},"/api/v1/connectedAccounts/{connectedAccountId}":{"get":{"operationId":"getConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedAccountResponseDTO"}}},"description":"Retrieve details of a specific connected account by its ID"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectedAccountNotFoundError"}}},"description":"Connection with the specified ID not found"}},"summary":"Get single connection","tags":["Connections"]},"delete":{"operationId":"deleteConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""}},"summary":"Delete connection","tags":["Connections"],"description":"Delete a connection"}},"/api/v1/connectedAccounts/{connectedAccountId}/info":{"get":{"operationId":"getConnectionInfo","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConnectionInfoResponseDTO"}}},"description":""}},"summary":"Get Auth credentials","tags":["Connections"],"description":"Get authentication crdentials for the connected account, i.e all the headers, query parameters, etc. that are required to make requests to the third-party service directly."}},"/api/v1/connectedAccounts/{connectedAccountId}/disable":{"post":{"operationId":"disableConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleConnectedAccountResponseDTO"}}},"description":""}},"summary":"Disable connection","tags":["Connections"],"description":"Disable a connection"}},"/api/v1/connectedAccounts/{connectedAccountId}/enable":{"post":{"operationId":"enableConnection","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleConnectedAccountResponseDTO"}}},"description":""}},"summary":"Enable connection","tags":["Connections"],"description":"Enable a connection"}},"/api/v1/triggers":{"get":{"operationId":"listTriggers","parameters":[{"in":"query","name":"appNames","schema":{"type":"string","description":"Comma-separated list of app names to filter connections by. You can get the app names from the `name` field in the response of the `GET /api/v1/apps` endpoint."}},{"in":"query","name":"connectedAccountIds","schema":{"type":"string","description":"Comma-separated list of connected account IDs to filter triggers by. Returns all the possible triggers you can setup for these connected accounts. You can get the connected account IDs from the `id` field in the response of the `GET /api/v1/connections` endpoint."}},{"in":"query","name":"triggerIds","schema":{"type":"string","description":"Comma-separated list of trigger names to filter triggers by. You can get the trigger names from the `name` field in the response of the `GET /api/v1/triggers` endpoint."}},{"in":"query","name":"integrationIds","schema":{"type":"string","description":"Comma-separated list of integration IDs to filter triggers by. You can get the integration IDs from the `id` field in the response of the `GET /api/v1/integrations` endpoint."}},{"in":"query","name":"showEnabledOnly","schema":{"type":"boolean","description":"When set to true, returns only enabled triggers. This field is deprecated and will be removed in future versions.","deprecated":true}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TriggerResDTO"},"type":"array"}}},"description":""}},"summary":"List triggers","tags":["Triggers"],"description":"List triggers"}},"/api/v1/triggers/update_webhook_format":{"post":{"operationId":"updateNewWebhook","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WehbookNewFormatDTO"}}},"description":"WehbookNewFormatDTO","required":false},"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Update new webhook","tags":["Triggers"],"description":"Update isNewWebhook"}},"/api/v1/triggers/enable/{connectedAccountId}/{triggerName}":{"post":{"operationId":"enableTrigger","parameters":[{"in":"path","name":"connectedAccountId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}},{"in":"path","name":"triggerName","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableTriggerBodyDTO"}}},"description":"EnableTriggerBodyDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Enable trigger","tags":["Triggers"],"description":"Enables a trigger for a connected account and specific trigger name."}},"/api/v1/triggers/active_triggers":{"get":{"operationId":"getActiveTriggers","parameters":[{"in":"query","name":"connectedAccountIds","schema":{"type":"string","description":"Comma-separated list of connected account IDs to filter triggers by. You can get these IDs from the `id` field in the response of the `GET /api/v1/connections` endpoint."}},{"in":"query","name":"integrationIds","schema":{"type":"string","description":"Comma-separated list of integration IDs to filter triggers by. You can get these IDs from the `id` field in the response of the `GET /api/v1/integrations` endpoint."}},{"in":"query","name":"triggerIds","schema":{"type":"string","description":"Comma-separated list of trigger IDs to filter triggers by. You can get these IDs from the `id` field in the response of the `GET /api/v1/triggers` endpoint."}},{"in":"query","name":"triggerNames","schema":{"type":"string","description":"Comma-separated list of trigger names to filter triggers by. You can get these names from the `name` field in the response of the `GET /api/v1/triggers` endpoint."}},{"in":"query","name":"page","schema":{"type":"number","description":"Page number for pagination. Starts from 1."}},{"in":"query","name":"limit","schema":{"type":"number","description":"Number of items to return per page."}},{"in":"query","name":"showDisabled","schema":{"type":"boolean","description":"When set to true, includes disabled triggers in the response."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveTriggersResDTO"}}},"description":""}},"summary":"Get active triggers","tags":["Triggers"],"description":"Lists active triggers based on query parameters."}},"/api/v1/triggers/instance/{triggerId}/status":{"patch":{"operationId":"switchTriggerInstanceStatus","parameters":[{"in":"path","name":"triggerId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwitchTriggerStatusBodyDTO"}}},"description":"SwitchTriggerStatusBodyDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Switch trigger instance status","tags":["Triggers"],"description":"Switches the status of a trigger instance."}},"/api/v1/triggers/disable/{triggerInstanceId}":{"post":{"operationId":"disableTrigger","parameters":[{"in":"path","name":"triggerInstanceId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Disable trigger","tags":["Triggers"],"description":"Disables a specified trigger instance."}},"/api/v1/triggers/instance/{triggerInstanceId}":{"delete":{"operationId":"deleteTrigger","parameters":[{"in":"path","name":"triggerInstanceId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""}},"summary":"Delete trigger","tags":["Triggers"],"description":"Deletes a specified trigger instance."}},"/api/v1/triggers/set_callback_url":{"post":{"operationId":"set_callback_url","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCallbackUrlBodyDTO"}}},"description":"SetCallbackUrlBodyDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerResponseDTO"}}},"description":""}},"summary":"Set callback url","tags":["Triggers"],"description":"Sets a universal callback URL for the client."}},"/api/v1/triggers/callback_url":{"get":{"operationId":"getWebhookURL","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookURLResponseDTO"}}},"description":""}},"summary":"Get webhook url","tags":["Triggers"],"description":"Retrieves the universal callback URL set for the client."}},"/api/v1/triggers/logs":{"get":{"operationId":"getTriggerLogs","parameters":[{"in":"query","name":"connectionId","schema":{"type":"string","description":"Filter logs by connection ID. You can get this from the `id` field in the response of the `GET /api/v1/connections` endpoint."}},{"in":"query","name":"integrationId","schema":{"type":"string","description":"Filter logs by integration ID. You can get this from the `id` field in the response of the `GET /api/v1/integrations` endpoint."}},{"in":"query","name":"page","schema":{"type":"number","description":"Page number for pagination. Starts from 1."}},{"in":"query","name":"limit","schema":{"type":"number","description":"Number of items to return per page."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerLogsResDTO"}}},"description":""}},"summary":"Get logs","tags":["Triggers"],"description":"Fetches logs based on connection and integration details."}},"/api/v1/logs/":{"get":{"operationId":"getLogs","parameters":[{"in":"query","name":"type","schema":{"enum":["error","info","debug"],"type":"string","description":"Type of the log"}},{"in":"query","name":"time","schema":{"enum":["5m","30m","6h","1d","1w","1month","1y"],"type":"string","description":"Time interval for which data needs to be fetched"}},{"in":"query","name":"status","schema":{"enum":["all","success","error"],"type":"string","description":"Status of the log"}},{"in":"query","name":"search","schema":{"type":"string","description":"Search term in the log"}},{"in":"query","name":"integrationId","schema":{"type":"string","description":"Integration UUID"}},{"in":"query","name":"entityId","schema":{"type":"string","description":"Entity id"}},{"in":"query","name":"limit","schema":{"type":"number","description":"Limit of the logs","default":10}},{"in":"query","name":"cursor","schema":{"type":"string","description":"Cursor for pagination"}},{"in":"query","name":"logsType","schema":{"type":"string","description":"Type of the log"}},{"in":"query","name":"sessionId","schema":{"type":"string","description":"Session ID of the log"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogsResDTO"}}},"description":""}},"summary":"Get logs","tags":["Logs"],"description":"List logs"},"post":{"operationId":"postLogs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestDataDTO"}}},"description":"IngestDataDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestDataResponseDTO"}}},"description":""}},"summary":"Post logs","tags":["Logs"],"description":"Add new logs"}},"/api/v2/actions/list/tags":{"get":{"operationId":"listActionTags","parameters":[{"in":"query","name":"apps","schema":{"type":"string","description":"Comma separated list of app names to filter the action tags by."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionsTagsResponseDTO"}}},"description":""}},"summary":"List action tags","tags":["Actions"],"description":"List all the action tags available in composio"}},"/api/v2/actions/list/all":{"get":{"operationId":"listActionsMinimalV2","parameters":[{"in":"query","name":"apps","schema":{"type":"string","description":"Comma separated list of composio apps to filter by. You can get the list of apps by using [/api/v1/apps](/api-reference/apps/list-apps) endpoint."}},{"in":"query","name":"actions","schema":{"type":"string","description":"Comma separated list of composio actions to filter by. You can get the list of actionIds from this API or you can get it by running `composio actions` command in your terminal."}},{"in":"query","name":"tags","schema":{"type":"string","description":"Comma separated list of composio action tags to filter by. You can get the list of action tags by using [/api/v2/actions/list/tags](/api-reference/actions/list-action-tags) endpoint."}},{"in":"query","name":"useCase","schema":{"type":"string","description":"Smart use-case based search for actions needed to be performed as per the use-case. This uses AI to understand the use-case and then finally returns the list of actions. **Note:** If you are using this field, you can not use actions or tags fields."}},{"in":"query","name":"page","schema":{"type":"number","description":"Page number to be returned, default is 1","minimum":1}},{"in":"query","name":"limit","schema":{"type":"number","description":"Limit the number of actions to be returned, default is 30","minimum":1}},{"in":"query","name":"filterImportantActions","schema":{"type":"boolean","description":"Filter and return only important actions. This is equivalent to setting tags='important' in the query params mentioned above."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionsListResponseDTO"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}},"description":"Validation error with the provided filters. Please check your input."}},"summary":"List actions","tags":["Actions"],"description":"Retrieve a list of all actions based on query parameters."}},"/api/v2/actions/{actionId}/execute":{"post":{"operationId":"executeActionV2","parameters":[{"in":"path","name":"actionId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionExecutionReqDTO"}}},"description":"ActionExecutionReqDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionExecutionResDto"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}},"description":"Validation error with the provided filters. Please check your input."}},"summary":"Execute an action","tags":["Actions"],"description":"Execute an action. Support both connected account and no auth auth."}},"/api/v2/actions/{actionId}/execute/get.inputs":{"post":{"operationId":"getActionInputsV2","parameters":[{"in":"path","name":"actionId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionGetNLAInputsReqDTO"}}},"description":"ActionGetNLAInputsReqDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NLAArgumentsResponseDTO"}}},"description":""}},"summary":"Get action inputs","tags":["Actions"],"description":"Get the inputs for an action with NLA"}},"/api/v2/actions/{actionId}":{"get":{"operationId":"getActionV2","parameters":[{"in":"path","name":"actionId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionDetails"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionNotFoundError"}}},"description":""}},"summary":"Get single action","tags":["Actions"],"description":"Get action details, including the input and response schema. This is very useful for setting upfunction/tool calling with composio actions."}},"/api/v2/triggers/{triggerName}":{"get":{"operationId":"getTriggerInfoV2","parameters":[{"in":"path","name":"triggerName","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SingleTriggerResDTO"},"type":"array"}}},"description":""}},"summary":"Get trigger info","tags":["Triggers"],"description":"Get Trigger Info"}},"/api/v1/org/projects/create":{"post":{"operationId":"createProject","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectReqDTO"}}},"description":"ProjectReqDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResDTO"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}},"description":""}},"summary":"Create new project","tags":["Projects"],"description":"Create a new project to the client's organization","security":[{"org_api_key":[]}]}},"/api/v1/org/projects":{"get":{"operationId":"getProjects","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgProjectListResDTO"}}},"description":""}},"summary":"List all projects","tags":["Projects"],"security":[{"org_api_key":[]}]}},"/api/v1/org/projects/{projectId}/api-key/regenerate":{"post":{"operationId":"regenerateProjectApiKey","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResDTO"}}},"description":""}},"summary":"Regenerate project api key","tags":["Projects"],"description":"Regenerate project API key. Ideally use when no API key is available as project can have multiple API keys","security":[{"org_api_key":[]}]}},"/api/v1/org/projects/{projectId}":{"get":{"operationId":"getProject","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResDTO"}}},"description":""}},"summary":"Get project","tags":["Projects"],"security":[{"org_api_key":[]}]},"delete":{"operationId":"deleteProject","parameters":[{"in":"path","name":"projectId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRowAPIDTO"}}},"description":""}},"summary":"Delete project","tags":["Projects"],"security":[{"org_api_key":[]}]}},"/api/v1/org/projects/{projectId}/rename":{"post":{"operationId":"renameProject","parameters":[{"in":"header","name":"X-Org-API-Key","required":false,"schema":{"type":"string"}},{"in":"path","name":"projectId","required":true,"schema":{"pattern":"[^\\/#\\?]+?","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectReqDTO"}}},"description":"ProjectReqDTO","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRowAPIDTO"}}},"description":""}},"summary":"Rename project","tags":["Projects"]}}},"security":[{"api_key":[]}],"servers":[{"url":"https://backend.composio.dev"}]}
\ No newline at end of file
diff --git a/docs/enterprise/intro.mdx b/docs/enterprise/intro.mdx
new file mode 100644
index 00000000000..b3484843819
--- /dev/null
+++ b/docs/enterprise/intro.mdx
@@ -0,0 +1,82 @@
+---
+title: "How to Create and Manage Projects?"
+sidebarTitle: "Managing Projects"
+description: "Learn how to create and manage multiple projects"
+---
+
+## Overview
+
+Within a single account, you can create and manage multiple independent projects. Each project exists in its own isolated environment, with complete separation of data and resources. Using your master API key, you can programmatically create and manage these projects through our [APIs](https://docs.composio.dev/api-reference/client/get-user-info).
+
+## Project Isolation Architecture
+
+Each project within your account is fully isolated, providing:
+
+- Isolated entity IDs and data storage
+- Project-specific admin API keys
+- Segregated action execution and trigger logs
+- Team management with separate permissions
+
+## How to Create a New Project?
+
+
+
+
+
+Go to [Dashboard](https://app.composio.dev/dashboard) and click on dropdown corresponding to **Project**
+
+
+
+
+
+
+Enter the project name and click on **Add and switch**.
+
+
+
+
+
+```python Python
+coming soon!
+```
+
+
+
+## How to Manage Projects?
+
+#### Switching between projects
+You can switch between projects by clicking on the dropdown corresponding to **Project** in the bottom-left corner of the dashboard.
+
+
+#### Adding Project Specific API Key
+You can add a project specific API key by clicking on the **API Keys** under **Settings** on the dashboard.
+
+
+#### Adding Team Member
+You can add a team member by with specific role to the project.
+
+
+Go to [Dashboard](https://app.composio.dev/dashboard) and click **Manage teams** under **Settings**.
+
+
+
+Click on **Add** & configure the team member by entering the name, email, role and click on **Invite**. An invite email will be sent to the team member.
+
+
+
+Click on **Delete** button corresponding to the team member to remove them from the project.
+
+
+
+#### Monitoring Action Execution & Triggers Logs
+
+
+You can monitor the action execution & triggers logs by clicking on **Action Logs** and **Triggers Logs** under **Logs** on the dashboard.
+
+
+
+Click on any log to view detais like log id, provider name, action name, request & response body.
+
+
+
+
diff --git a/docs/enterprise/media/create-project/1.jpg b/docs/enterprise/media/create-project/1.jpg
new file mode 100644
index 00000000000..9d75a90679b
Binary files /dev/null and b/docs/enterprise/media/create-project/1.jpg differ
diff --git a/docs/enterprise/media/create-project/2.jpg b/docs/enterprise/media/create-project/2.jpg
new file mode 100644
index 00000000000..6294d301f77
Binary files /dev/null and b/docs/enterprise/media/create-project/2.jpg differ
diff --git a/docs/enterprise/media/create-project/3.jpg b/docs/enterprise/media/create-project/3.jpg
new file mode 100644
index 00000000000..fc72f654e5d
Binary files /dev/null and b/docs/enterprise/media/create-project/3.jpg differ
diff --git a/docs/enterprise/media/manage-projects/1.jpg b/docs/enterprise/media/manage-projects/1.jpg
new file mode 100644
index 00000000000..439a6dabf6a
Binary files /dev/null and b/docs/enterprise/media/manage-projects/1.jpg differ
diff --git a/docs/enterprise/media/manage-projects/add-project-specific-api-key-1.jpg b/docs/enterprise/media/manage-projects/add-project-specific-api-key-1.jpg
new file mode 100644
index 00000000000..7c5475d5b98
Binary files /dev/null and b/docs/enterprise/media/manage-projects/add-project-specific-api-key-1.jpg differ
diff --git a/docs/enterprise/media/manage-projects/add-team-members-1.jpg b/docs/enterprise/media/manage-projects/add-team-members-1.jpg
new file mode 100644
index 00000000000..09276748e17
Binary files /dev/null and b/docs/enterprise/media/manage-projects/add-team-members-1.jpg differ
diff --git a/docs/enterprise/media/manage-projects/add-team-members-2.jpg b/docs/enterprise/media/manage-projects/add-team-members-2.jpg
new file mode 100644
index 00000000000..eb4a10d2c65
Binary files /dev/null and b/docs/enterprise/media/manage-projects/add-team-members-2.jpg differ
diff --git a/docs/enterprise/media/manage-projects/logs-1.jpg b/docs/enterprise/media/manage-projects/logs-1.jpg
new file mode 100644
index 00000000000..80b0a5d645e
Binary files /dev/null and b/docs/enterprise/media/manage-projects/logs-1.jpg differ
diff --git a/docs/enterprise/media/manage-projects/logs-2.jpg b/docs/enterprise/media/manage-projects/logs-2.jpg
new file mode 100644
index 00000000000..a96a5117928
Binary files /dev/null and b/docs/enterprise/media/manage-projects/logs-2.jpg differ
diff --git a/docs/examples/combined/calendar-agent-javascript.mdx b/docs/examples/combined/calendar-agent-javascript.mdx
index d2604b34aed..ce3f39c357a 100644
--- a/docs/examples/combined/calendar-agent-javascript.mdx
+++ b/docs/examples/combined/calendar-agent-javascript.mdx
@@ -1,7 +1,6 @@
---
title: "Calendar Agent"
sidebarTitle: "Calendar Agent"
-icon: "calendar"
description: "This project is an example which uses Composio to seamlessly convert your to-do lists into Google Calendar events. It automatically schedules tasks with specified labels and times, ensuring your calendar is always up-to-date and organized."
---
diff --git a/docs/examples/combined/calendar-agent-python.mdx b/docs/examples/combined/calendar-agent-python.mdx
index 27be898f0f3..7aae84f73a7 100644
--- a/docs/examples/combined/calendar-agent-python.mdx
+++ b/docs/examples/combined/calendar-agent-python.mdx
@@ -1,7 +1,6 @@
---
title: "Calendar Agent"
sidebarTitle: "Calendar Agent"
-icon: "calendar"
description: "This project is an example which uses Composio to seamlessly convert your to-do lists into Google Calendar events. It automatically schedules tasks with specified labels and times, ensuring your calendar is always up-to-date and organized."
---
diff --git a/docs/examples/combined/calendar-agent.mdx b/docs/examples/combined/calendar-agent.mdx
index 69bb1555c54..64733a1e257 100644
--- a/docs/examples/combined/calendar-agent.mdx
+++ b/docs/examples/combined/calendar-agent.mdx
@@ -1,7 +1,6 @@
---
title: "Calendar Agent"
sidebarTitle: "Calendar Agent"
-icon: "calendar"
description: "This project is an example which uses Composio to seamlessly convert your to-do lists into Google Calendar events. It automatically schedules tasks with specified labels and times, ensuring your calendar is always up-to-date and organized."
---
diff --git a/docs/examples/combined/code-execution-agent-javascript.mdx b/docs/examples/combined/code-execution-agent-javascript.mdx
index 71e0a86d473..f3687c01676 100644
--- a/docs/examples/combined/code-execution-agent-javascript.mdx
+++ b/docs/examples/combined/code-execution-agent-javascript.mdx
@@ -1,7 +1,6 @@
---
title: "Code Execution Agent"
sidebarTitle: "Code Execution Agent"
-icon: "code"
description: "The project generates and executes code based on user-defined problems. It utilizes the Composio and connects your AI Agent to E2B's Code Interpreter to facilitate code execution, allowing users to input a problem statement and receive executable code as output. The agent is designed to operate in a sandbox environment, ensuring safe execution and accurate results. Key functionalities include code generation, execution, and result interpretation, making it an invaluable resource for developers and data scientists alike."
---
diff --git a/docs/examples/combined/code-execution-agent-python.mdx b/docs/examples/combined/code-execution-agent-python.mdx
index d9d3dd71c5d..a53ed18be6b 100644
--- a/docs/examples/combined/code-execution-agent-python.mdx
+++ b/docs/examples/combined/code-execution-agent-python.mdx
@@ -1,7 +1,6 @@
---
title: "Code Execution Agent"
sidebarTitle: "Code Execution Agent"
-icon: "code"
description: "The project generates and executes code based on user-defined problems. It utilizes the Composio and connects your AI Agent to E2B's Code Interpreter to facilitate code execution, allowing users to input a problem statement and receive executable code as output. The agent is designed to operate in a sandbox environment, ensuring safe execution and accurate results. Key functionalities include code generation, execution, and result interpretation, making it an invaluable resource for developers and data scientists alike."
---
diff --git a/docs/examples/combined/code-execution-agent.mdx b/docs/examples/combined/code-execution-agent.mdx
index aef86ebb635..5a5ca7300ae 100644
--- a/docs/examples/combined/code-execution-agent.mdx
+++ b/docs/examples/combined/code-execution-agent.mdx
@@ -1,7 +1,6 @@
---
title: "Code Execution Agent"
sidebarTitle: "Code Execution Agent"
-icon: "code"
description: "The project generates and executes code based on user-defined problems. It utilizes the Composio and connects your AI Agent to E2B's Code Interpreter to facilitate code execution, allowing users to input a problem statement and receive executable code as output. The agent is designed to operate in a sandbox environment, ensuring safe execution and accurate results. Key functionalities include code generation, execution, and result interpretation, making it an invaluable resource for developers and data scientists alike."
---
diff --git a/docs/examples/combined/newsletter-summarizer-javascript.mdx b/docs/examples/combined/newsletter-summarizer-javascript.mdx
index ac1faa77b2e..c8c8ddbd585 100644
--- a/docs/examples/combined/newsletter-summarizer-javascript.mdx
+++ b/docs/examples/combined/newsletter-summarizer-javascript.mdx
@@ -1,7 +1,6 @@
---
title: "Newsletter Summarizer"
sidebarTitle: "Newsletter Summarizer"
-icon: "book"
description: "This project serves as an example of how to use Composio to seamlessly fetch and summarize newsletter emails. It automatically retrieves recent newsletters, summarizes their content, and sends a well-formatted email to the specified recipient."
---
diff --git a/docs/examples/combined/newsletter-summarizer-python.mdx b/docs/examples/combined/newsletter-summarizer-python.mdx
index 578d44ab432..3bdc8d683aa 100644
--- a/docs/examples/combined/newsletter-summarizer-python.mdx
+++ b/docs/examples/combined/newsletter-summarizer-python.mdx
@@ -1,7 +1,6 @@
---
title: "Newsletter Summarizer"
sidebarTitle: "Newsletter Summarizer"
-icon: "book"
description: "This project serves as an example of how to use Composio to seamlessly fetch and summarize newsletter emails. It automatically retrieves recent newsletters, summarizes their content, and sends a well-formatted email to the specified recipient."
---
diff --git a/docs/examples/combined/newsletter_summarizer.mdx b/docs/examples/combined/newsletter_summarizer.mdx
index 441824caeba..401f2a5d085 100644
--- a/docs/examples/combined/newsletter_summarizer.mdx
+++ b/docs/examples/combined/newsletter_summarizer.mdx
@@ -1,7 +1,6 @@
---
title: "Newsletter Summarizer"
sidebarTitle: "Newsletter Summarizer"
-icon: "book"
description: "This project serves as an example of how to use Composio to seamlessly fetch and summarize newsletter emails. It automatically retrieves recent newsletters, summarizes their content, and sends a well-formatted email to the specified recipient."
---
diff --git a/docs/examples/combined/rag-agent-javascript.mdx b/docs/examples/combined/rag-agent-javascript.mdx
index f4f6f9c1785..65520351ef6 100644
--- a/docs/examples/combined/rag-agent-javascript.mdx
+++ b/docs/examples/combined/rag-agent-javascript.mdx
@@ -1,7 +1,6 @@
---
title: "RAG Tool Agent"
sidebarTitle: "RAG Tool Agent"
-icon: "database"
description: "This project involves setting up and running a system of agents to add content to a RAG (Retrieval-Augmented Generation) tool, perform queries, and return relevant information. We use Composio to setup this Local Tool and OpenAI GPT-4o to power the agents. Follow this guide to set up and run the project."
---
diff --git a/docs/examples/combined/rag-agent-python.mdx b/docs/examples/combined/rag-agent-python.mdx
index 002b300525b..5005e23807c 100644
--- a/docs/examples/combined/rag-agent-python.mdx
+++ b/docs/examples/combined/rag-agent-python.mdx
@@ -1,7 +1,6 @@
---
title: "RAG Tool Agent"
sidebarTitle: "RAG Tool Agent"
-icon: "database"
description: "This project involves setting up and running a system of agents to add content to a RAG (Retrieval-Augmented Generation) tool, perform queries, and return relevant information. We use Composio to setup this Local Tool and OpenAI GPT-4o to power the agents. Follow this guide to set up and run the project."
---
diff --git a/docs/examples/combined/rag-agent.mdx b/docs/examples/combined/rag-agent.mdx
index 8c3d766d50e..55ef1081d36 100644
--- a/docs/examples/combined/rag-agent.mdx
+++ b/docs/examples/combined/rag-agent.mdx
@@ -1,7 +1,6 @@
---
title: "RAG Tool Agent"
sidebarTitle: "RAG Tool Agent"
-icon: "database"
description: "This project involves setting up and running a system of agents to add content to a RAG (Retrieval-Augmented Generation) tool, perform queries, and return relevant information. We use Composio to setup this Local Tool and OpenAI GPT-4o to power the agents. Follow this guide to set up and run the project."
---
diff --git a/docs/examples/combined/research-agent-javascript.mdx b/docs/examples/combined/research-agent-javascript.mdx
index 5c486c54436..9439618bb8a 100644
--- a/docs/examples/combined/research-agent-javascript.mdx
+++ b/docs/examples/combined/research-agent-javascript.mdx
@@ -1,7 +1,6 @@
---
title: "Research Agent"
sidebarTitle: "Research Agent"
-icon: "book"
description: "This guide provides detailed steps to create a Demo Assistant using Composio and OpenAI. You will build a system capable of interacting with GitHub to create issues and fetch user information."
---
This project is an example that uses Composio to seamlessly interact with GitHub through an AI assistant. It automatically creates issues and retrieves user information based on user input.
diff --git a/docs/examples/combined/research-agent-python.mdx b/docs/examples/combined/research-agent-python.mdx
index 473087ea80a..68c055a4d94 100644
--- a/docs/examples/combined/research-agent-python.mdx
+++ b/docs/examples/combined/research-agent-python.mdx
@@ -1,7 +1,6 @@
---
title: "Research Agent"
sidebarTitle: "Research Agent"
-icon: "book"
description: "This guide provides detailed steps to create a Demo Assistant using Composio and OpenAI. You will build a system capable of interacting with GitHub to create issues and fetch user information."
---
This project is an example that uses Composio to seamlessly interact with GitHub through an AI assistant. It automatically creates issues and retrieves user information based on user input.
diff --git a/docs/examples/combined/research_agent.mdx b/docs/examples/combined/research_agent.mdx
index ee6f1b5dcb2..85717a41ae3 100644
--- a/docs/examples/combined/research_agent.mdx
+++ b/docs/examples/combined/research_agent.mdx
@@ -1,7 +1,6 @@
---
title: "Research Agent"
sidebarTitle: "Research Agent"
-icon: "book"
description: "This guide provides detailed steps to create a Demo Assistant using Composio and OpenAI. You will build a system capable of interacting with GitHub to create issues and fetch user information."
---
This project is an example that uses Composio to seamlessly interact with GitHub through an AI assistant. It automatically creates issues and retrieves user information based on user input.
diff --git a/docs/examples/combined/sql-agent-javascript.mdx b/docs/examples/combined/sql-agent-javascript.mdx
index 1dbf21d0511..6a1186bd2bf 100644
--- a/docs/examples/combined/sql-agent-javascript.mdx
+++ b/docs/examples/combined/sql-agent-javascript.mdx
@@ -1,7 +1,6 @@
---
title: "SQL Agent"
sidebarTitle: "SQL Agent"
-icon: "database"
description: "This guide provides detailed steps to create an agent that leverages
Composio to perform SQL queries and file operations."
---
diff --git a/docs/examples/combined/sql-agent-python.mdx b/docs/examples/combined/sql-agent-python.mdx
index 7b2af2d1a53..b925dbdf8bc 100644
--- a/docs/examples/combined/sql-agent-python.mdx
+++ b/docs/examples/combined/sql-agent-python.mdx
@@ -1,7 +1,6 @@
---
title: "SQL Agent"
sidebarTitle: "SQL Agent"
-icon: "database"
description: "This guide provides detailed steps to create an agent that leverages
Composio to perform SQL queries and file operations to perform sql queries and
File operations and plot insightful graphs on the data in the db"
diff --git a/docs/examples/examples/Example.mdx b/docs/examples/examples/Example.mdx
index 8947763ed18..20f8aab8f70 100644
--- a/docs/examples/examples/Example.mdx
+++ b/docs/examples/examples/Example.mdx
@@ -1,7 +1,6 @@
---
title: "Coding Guides"
sidebarTitle: "Coding Guides"
-icon: "book"
description: "The Composio coding cookbook contain in-depth examples and code.
These examples can be used as reference to better understand the core principles and applications of composio."
---
diff --git a/docs/examples/python/lead_generator_agent_python.mdx b/docs/examples/python/lead_generator_agent_python.mdx
index d29627a42a2..752941c1e78 100644
--- a/docs/examples/python/lead_generator_agent_python.mdx
+++ b/docs/examples/python/lead_generator_agent_python.mdx
@@ -1,7 +1,6 @@
---
title: "Lead Generator Agent"
sidebarTitle: "Lead Generator Agent"
-icon: "user-plus"
description: "This project demonstrates how to use Composio to create a lead generation agent. It automatically searches for potential leads based on user input, collects relevant information, and organizes it into a Google Sheet."
---
diff --git a/docs/examples/python/news-summary.mdx b/docs/examples/python/news-summary.mdx
index c7e6c028576..525fdc8b2d0 100644
--- a/docs/examples/python/news-summary.mdx
+++ b/docs/examples/python/news-summary.mdx
@@ -1,7 +1,6 @@
---
title: "News Summary"
sidebarTitle: "News Summary"
-icon: "newspaper"
description: "This guide provides detailed instructions on how to create an application that
retrieves the latest news articles and generates summaries using Langchain and Composio."
---
diff --git a/docs/examples/python/research-assistant.mdx b/docs/examples/python/research-assistant.mdx
index 79903377df0..9a5fbe0eb11 100644
--- a/docs/examples/python/research-assistant.mdx
+++ b/docs/examples/python/research-assistant.mdx
@@ -1,7 +1,6 @@
---
title: "Research Assistant"
sidebarTitle: "Research Assistant"
-icon: "book"
description: "This guide provides detailed steps to create a research assistant agent that leverages CrewAI, Composio, and ChatGPT to perform web searches and compile research reports. Ensure you have Python 3.8 or higher installed.
"
---
diff --git a/docs/faq/api_key/api_key.mdx b/docs/faq/api_key/api_key.mdx
index 69689d570f7..70c633c7b0a 100644
--- a/docs/faq/api_key/api_key.mdx
+++ b/docs/faq/api_key/api_key.mdx
@@ -1,7 +1,6 @@
---
title: "API key"
sidebarTitle: "API key"
-icon: "key"
description: "Learn how to obtain and use your Composio API key"
---
diff --git a/docs/faq/api_key/cli.mdx b/docs/faq/api_key/cli.mdx
index 0da1a3bedfd..e20e2ff9cae 100644
--- a/docs/faq/api_key/cli.mdx
+++ b/docs/faq/api_key/cli.mdx
@@ -1,7 +1,6 @@
---
title: "💻 Using Composio CLI"
sidebarTitle: "How to use CLI?"
-icon: "gear"
description: "Learn how to install and use the Composio CLI for managing your agent interactions."
---
diff --git a/docs/faq/integrations_and_connections/list_of_tools.mdx b/docs/faq/integrations_and_connections/list_of_tools.mdx
index 3d17bac7b12..9ea674574d6 100644
--- a/docs/faq/integrations_and_connections/list_of_tools.mdx
+++ b/docs/faq/integrations_and_connections/list_of_tools.mdx
@@ -1,7 +1,6 @@
---
title: "Listing all tools, actions, and more"
sidebarTitle: "Listing Tools & Actions"
-icon: "magnifying-glass"
description: "This section will walk you through discovering and managing the tools, integrations, actions, and more."
---
diff --git a/docs/faq/supported_llms/supported_llm.mdx b/docs/faq/supported_llms/supported_llm.mdx
index d3a3c1f30a9..e77749837e2 100644
--- a/docs/faq/supported_llms/supported_llm.mdx
+++ b/docs/faq/supported_llms/supported_llm.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ What LLMs can I use?"
sidebarTitle: "Supported LLMs"
-icon: "code"
description: "Understand more about Actions"
---
diff --git a/docs/framework/autogen.mdx b/docs/framework/autogen.mdx
index 93d6213e128..893e45d82f4 100644
--- a/docs/framework/autogen.mdx
+++ b/docs/framework/autogen.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Autogen"
sidebarTitle: "Autogen"
-icon: "robot"
description: "Integrate Composio with Autogen agents to let them seamlessly interact with external Apps"
---
diff --git a/docs/framework/camelai.mdx b/docs/framework/camelai.mdx
index 0670e7d5092..02d981284ea 100644
--- a/docs/framework/camelai.mdx
+++ b/docs/framework/camelai.mdx
@@ -1,7 +1,6 @@
---
title: "🐫 Using Composio With CAMEL-AI"
sidebarTitle: "CAMEL"
-icon: "cow"
description: "Integrate Composio with CAMEL agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/crewai.mdx b/docs/framework/crewai.mdx
index edbca689dd3..2d77f5d28e1 100644
--- a/docs/framework/crewai.mdx
+++ b/docs/framework/crewai.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With CrewAI"
sidebarTitle: "CrewAI"
-icon: "people-group"
description: "Integrate Composio with CrewAI agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/google.mdx b/docs/framework/google.mdx
index 7ce47a677bc..8233d8de64f 100644
--- a/docs/framework/google.mdx
+++ b/docs/framework/google.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Google AI"
sidebarTitle: "Google AI"
-icon: "google"
description: "Enable Google AI models to seamlessly interact with external apps via Composio for enhanced functionality"
---
diff --git a/docs/framework/griptape.mdx b/docs/framework/griptape.mdx
index 20efa320cb4..6a079408c8a 100644
--- a/docs/framework/griptape.mdx
+++ b/docs/framework/griptape.mdx
@@ -1,7 +1,6 @@
---
title: "🧻 Using Composio With Griptape"
sidebarTitle: "Griptape"
-icon: "tape"
description: "Integrate Composio with Griptape agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/groq.mdx b/docs/framework/groq.mdx
index 8f03b61ba8f..1797f90fd82 100644
--- a/docs/framework/groq.mdx
+++ b/docs/framework/groq.mdx
@@ -1,7 +1,6 @@
---
title: "🦜🔗 Using Composio With Groq"
sidebarTitle: "Groq"
-icon: "link"
description: "Integrate Composio with Groq to seamlessly interact with external apps"
---
diff --git a/docs/framework/julep.mdx b/docs/framework/julep.mdx
index 5fe1d98b752..788f1799150 100644
--- a/docs/framework/julep.mdx
+++ b/docs/framework/julep.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Julep"
sidebarTitle: "Julep"
-icon: "robot"
description: "Integrate Composio with Julep agents to enhance their interaction with external apps"
---
diff --git a/docs/framework/langchain.mdx b/docs/framework/langchain.mdx
index ba983f128d7..e2df547632b 100644
--- a/docs/framework/langchain.mdx
+++ b/docs/framework/langchain.mdx
@@ -1,7 +1,6 @@
---
title: "🦜🔗 Using Composio With LangChain"
sidebarTitle: "LangChain"
-icon: "link"
description: "Integrate Composio with LangChain agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/langflow.mdx b/docs/framework/langflow.mdx
index b858291fff1..ebdd1497ec0 100644
--- a/docs/framework/langflow.mdx
+++ b/docs/framework/langflow.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With LangFlow"
sidebarTitle: "LangFlow"
-icon: "network-wired"
description: "Use Composio with LangFlow to create LLM agents that can interact with external apps"
---
diff --git a/docs/framework/langgraph.mdx b/docs/framework/langgraph.mdx
index 306c3130616..7a33dd0a43b 100644
--- a/docs/framework/langgraph.mdx
+++ b/docs/framework/langgraph.mdx
@@ -1,7 +1,6 @@
---
title: "🦜🕸️ Using Composio With LangGraph"
sidebarTitle: "LangGraph"
-icon: "spider-web"
description: "Integrate Composio with LangGraph agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/letta.mdx b/docs/framework/letta.mdx
index f7188d59c71..27b31846a14 100644
--- a/docs/framework/letta.mdx
+++ b/docs/framework/letta.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Letta"
sidebarTitle: "Letta"
-icon: "people-group"
description: "Integrate Composio with Letta agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/litellm.mdx b/docs/framework/litellm.mdx
index 7ec485ca5bd..ee54d2a28fb 100644
--- a/docs/framework/litellm.mdx
+++ b/docs/framework/litellm.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With LiteLLM"
sidebarTitle: "LiteLLM"
-icon: "people-group"
description: "Integrate Composio with LiteLLM and seamlessly interact with external apps"
---
diff --git a/docs/framework/llamaindex.mdx b/docs/framework/llamaindex.mdx
index 61ed88795f5..1dd5290c670 100644
--- a/docs/framework/llamaindex.mdx
+++ b/docs/framework/llamaindex.mdx
@@ -1,7 +1,6 @@
---
title: "🦙 Using Composio With LlamaIndex"
sidebarTitle: "LlamaIndex"
-icon: "dove"
description: "Integrate Composio with LLamaIndex agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/lyzr.mdx b/docs/framework/lyzr.mdx
index a17d5eb18f2..5c746e2856a 100644
--- a/docs/framework/lyzr.mdx
+++ b/docs/framework/lyzr.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Lyzr"
sidebarTitle: "Lyzr"
-icon: "robot"
description: "Integrate Composio with Lyzr agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/openai.mdx b/docs/framework/openai.mdx
index 86a07d78b9f..8b76219ab5e 100644
--- a/docs/framework/openai.mdx
+++ b/docs/framework/openai.mdx
@@ -1,7 +1,6 @@
---
title: "֎ Using Composio With OpenAI"
sidebarTitle: "OpenAI"
-icon: "robot"
description: "Integrate Composio with OpenAI Assistants to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/phidata.mdx b/docs/framework/phidata.mdx
index d74f780b00c..50794aa2d12 100644
--- a/docs/framework/phidata.mdx
+++ b/docs/framework/phidata.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Phidata"
sidebarTitle: "Phidata"
-icon: "link"
description: "Integrate Composio with Phidata agents to let them seamlessly interact with external apps"
---
diff --git a/docs/framework/praisonai.mdx b/docs/framework/praisonai.mdx
index 91a3ef964b2..e60f342a9c7 100644
--- a/docs/framework/praisonai.mdx
+++ b/docs/framework/praisonai.mdx
@@ -1,7 +1,6 @@
---
title: "📖 Using Composio With PraisonAI"
sidebarTitle: "PraisonAI SDK"
-icon: "book-open-reader"
description: "Integrate Composio with PraisonAI agents to let them seamlessly interact with external apps"
---
diff --git a/docs/introduction/foundations/components/actions/local-code.mdx b/docs/introduction/foundations/components/actions/local-code.mdx
index 99a691af75a..bc65188ae29 100644
--- a/docs/introduction/foundations/components/actions/local-code.mdx
+++ b/docs/introduction/foundations/components/actions/local-code.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ How to Use Custom Local Actions"
sidebarTitle: "Custom Actions"
-icon: "code"
description: "Learn how to perform local actions with a connected account."
---
diff --git a/docs/introduction/foundations/components/integrations/connected-account.mdx b/docs/introduction/foundations/components/integrations/connected-account.mdx
index 6215aa3ef7f..1398d4e8606 100644
--- a/docs/introduction/foundations/components/integrations/connected-account.mdx
+++ b/docs/introduction/foundations/components/integrations/connected-account.mdx
@@ -1,7 +1,6 @@
---
title: "Connected Accounts"
sidebarTitle: "Accounts"
-icon: "plug"
description: "Authorize Users Seamlessly 🌐"
---
diff --git a/docs/introduction/foundations/components/integrations/integration-yaml.mdx b/docs/introduction/foundations/components/integrations/integration-yaml.mdx
index dee0fcff27c..d1d3352c624 100644
--- a/docs/introduction/foundations/components/integrations/integration-yaml.mdx
+++ b/docs/introduction/foundations/components/integrations/integration-yaml.mdx
@@ -1,7 +1,6 @@
---
title: "Integrations"
sidebarTitle: "Integrations"
-icon: "plug"
description: "Allow your users to connect with any Apps."
---
diff --git a/docs/introduction/foundations/components/list_local_tools.mdx b/docs/introduction/foundations/components/list_local_tools.mdx
index bf41973640b..aee940bce17 100644
--- a/docs/introduction/foundations/components/list_local_tools.mdx
+++ b/docs/introduction/foundations/components/list_local_tools.mdx
@@ -2,7 +2,6 @@
title: "Available Local Tools"
description: List of Local Tools you can readily use for your Agents
sidebarTitle: Available Local Tools
-icon: "gear"
---
Composio provides you with hundreds of tools and thousands of prebuilt actions, which contains both:
diff --git a/docs/introduction/foundations/components/no_auth_apps/no_auth_guide.mdx b/docs/introduction/foundations/components/no_auth_apps/no_auth_guide.mdx
index 1112d7ef758..19f2d1e52a6 100644
--- a/docs/introduction/foundations/components/no_auth_apps/no_auth_guide.mdx
+++ b/docs/introduction/foundations/components/no_auth_apps/no_auth_guide.mdx
@@ -1,7 +1,6 @@
---
title: "Apps Requiring No Authentication"
sidebarTitle: "No Auth Apps"
-icon: "unlock"
description: "Learn how to add and update apps that don't require authentication in Composio."
---
diff --git a/docs/introduction/foundations/components/workspace.mdx b/docs/introduction/foundations/components/workspace.mdx
index 2a8818a5f64..ce767b353c5 100644
--- a/docs/introduction/foundations/components/workspace.mdx
+++ b/docs/introduction/foundations/components/workspace.mdx
@@ -1,7 +1,6 @@
---
title: "Workspace Environments"
sidebarTitle: "Workspace Environments"
-icon: "server"
description: "Configure and utilize different workspace environments for running your agents securely and with custom configurations."
---
diff --git a/docs/introduction/foundations/tools/category/codeinterpreter.mdx b/docs/introduction/foundations/tools/category/codeinterpreter.mdx
index 72d1bf581c1..7701a21e883 100644
--- a/docs/introduction/foundations/tools/category/codeinterpreter.mdx
+++ b/docs/introduction/foundations/tools/category/codeinterpreter.mdx
@@ -1,7 +1,6 @@
---
title: "Code Interpreter"
sidebarTitle: "Code Interpreter"
-icon: "code"
description: "Code interpreter tool can execute any python or js Code"
---
diff --git a/docs/introduction/foundations/tools/category/ragtools.mdx b/docs/introduction/foundations/tools/category/ragtools.mdx
index 4697baa0947..d4d538cb811 100644
--- a/docs/introduction/foundations/tools/category/ragtools.mdx
+++ b/docs/introduction/foundations/tools/category/ragtools.mdx
@@ -1,7 +1,6 @@
---
title: "RAG Tool"
sidebarTitle: "RAG Tool"
-icon: "searchengin"
description: "Composio's RAG (Retrieval-Augmented Generation) tool is designed to enhance your AI agents
with powerful knowledge base management and querying capabilities."
---
diff --git a/docs/introduction/foundations/tools/category/searchtools.mdx b/docs/introduction/foundations/tools/category/searchtools.mdx
index 32385a843ee..a51828f608f 100644
--- a/docs/introduction/foundations/tools/category/searchtools.mdx
+++ b/docs/introduction/foundations/tools/category/searchtools.mdx
@@ -1,7 +1,6 @@
---
title: "Search Tools"
sidebarTitle: "Search Tools"
-icon: "magnifying-glass"
description: "Explore a variety of tools designed to enhance your search capabilities across different platforms."
---
diff --git a/docs/introduction/foundations/tools/category/softwaretools.mdx b/docs/introduction/foundations/tools/category/softwaretools.mdx
index 6c9645844a8..5b5c781e4b8 100644
--- a/docs/introduction/foundations/tools/category/softwaretools.mdx
+++ b/docs/introduction/foundations/tools/category/softwaretools.mdx
@@ -1,7 +1,6 @@
---
title: "Software Tools"
sidebarTitle: "Software Tools"
-icon: "inbox"
description: "Discover a wide range of software tools to enhance your development, social media engagement, productivity, and integration with Google services."
---
diff --git a/docs/introduction/foundations/tools/category/systemtools.mdx b/docs/introduction/foundations/tools/category/systemtools.mdx
index 2dd1af0cfec..75a5795ce5f 100644
--- a/docs/introduction/foundations/tools/category/systemtools.mdx
+++ b/docs/introduction/foundations/tools/category/systemtools.mdx
@@ -1,7 +1,6 @@
---
title: "System Tools"
sidebarTitle: "System Tools"
-icon: "computer"
description: "Explore various system tools to enhance your development and deployment processes."
---
diff --git a/docs/introduction/foundations/tools/tools-intro.mdx b/docs/introduction/foundations/tools/tools-intro.mdx
index 6a9b0549a85..f22883b2bca 100644
--- a/docs/introduction/foundations/tools/tools-intro.mdx
+++ b/docs/introduction/foundations/tools/tools-intro.mdx
@@ -1,7 +1,6 @@
---
title: "Tools"
sidebarTitle: "Tools"
-icon: "screwdriver-wrench"
description: "Welcome to our tools page!
Discover our comprehensive suite of tools designed to help you build, integrate, and manage AI agents effectively."
---
diff --git a/docs/introduction/intro/basic.mdx b/docs/introduction/intro/basic.mdx
index b5d09170095..8fef4b6dafa 100644
--- a/docs/introduction/intro/basic.mdx
+++ b/docs/introduction/intro/basic.mdx
@@ -1,22 +1,10 @@
---
title: "Basic Concepts"
sidebarTitle: "Basic Concepts"
-icon: "book"
description: "Core Platform Modules"
---
-
-
-Learn how to use, execute, process, and even create tools.
-
-
-
-Learn how to manage users and authentication integrations.
-
-
-
-
-| Component | Description |
+| Concept | Description |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Entity | **Entity represents your user (Jessica or John)** and all accounts that belong to a specific user will have the same entity ID.
| Accounts | **Accounts represent the link formed when your users connect their accounts (GitHub, Shopify, etc.) to your app**.
@@ -24,3 +12,27 @@ Learn how to manage users and authentication integrations.
| Actions | **Actions are tasks** on top of tools that you can perform using accounts. (Send a mail using Gmail tool)
| Triggers | **Triggers are predefined conditions** that, when met, initiate webhooks to your agents. (When a mail is received in a Gmail account, send a webhook)
| Integrations | **Configuration objects that define how your application connects to external services**, including OAuth credentials, permission scopes, and API specifications. They serve as reusable templates for standardizing authentication flows.
+
+
+## Next Steps
+Now that you've seen how to use triggers, you can explore the following resources:
+
+
+Checkout our toolset of 250+ LLM ready tools to build powerful AI applications
+
+
+Learn how to create and manage connections for your users
+
+
+Integrate with popular agentic frameworks
+
+
+Composio SWE Kit ([#4 on SWE bench](https://www.swebench.com)) - Your ultimate coding companion
+
+
+Subscribe to triggers to execute actions automatically
+
+
+Learn about workspace environments, using CLI & other concepts
+
+
\ No newline at end of file
diff --git a/docs/introduction/intro/overview.mdx b/docs/introduction/intro/overview.mdx
index 280decebc23..2d216461130 100644
--- a/docs/introduction/intro/overview.mdx
+++ b/docs/introduction/intro/overview.mdx
@@ -1,145 +1,49 @@
---
title: "Overview"
sidebarTitle: "Overview"
-icon: "bolt"
description: "Empower your AI agents with Composio - a platform for managing and integrating tools with LLMs & AI agents using Function Calling."
---
-### Welcome to Composio
-
-
-
-
## What is Composio?
-Composio is your gateway to AI integrations:
+Composio helps you connect AI agents to external tools like Gmail, GitHub, Salesforce, etc. It's like a bridge between your AI and the tools it needs to get work done.
-- **Seamless Connections:** Link AI agents to APIs, RPCs, shells, file systems, and web browsers
-- **Secure Authentication:** Manage user-level auth across multiple accounts and tools
+Here's what you can do:
+- **Seamless Connections:** Connect AI Agents to tools like Gmail, GitHub, Salesforce & local tools such as File tool, Shell tool, etc.
+- **Authentication Mechanisms:** Support industry-standard auth protocols (OAuth, API Keys, JWT) with built-in security best practices, automatic token refresh handling, and secure user account connections - all without handling sensitive credentials
- **Language Agnostic:** Integrate with any programming language through our API-first approach
-- **Optimized Performance:** Improve security and cost-efficiency with tailored execution environments
-- **Comprehensive Logging:** Track and analyze every function call made by your LLMs
-
-Unlock the full potential of your AI agents with Composio's powerful integration capabilities.
+- **Managed Execution Environments:** Run tools in managed execution environments - Docker, E2B, Fly.io, Lambda, etc.
+- **Full Visibility:** Inspect every function called by the LLM, track timestamps for each Execution, and more.
-# Get Started with Composio
-Dive into Composio with our introduction video and quickstart guide. These resources will help you understand the platform's capabilities and get you up and running in no time.
+## Quick Access
+
+Get started with these resources:
+
- Dive into our Introduction Video and Learn more about Composio!
+ See Composio in action
- Getting started with Composio
+ Build your first Composio powered AI agent
-
-
-
-
- Complete guide to Authentication & Actions
-
-
- Sign in and get your API key
-
-
-
-### Composio Flow
-
-
-
-
-## Features
-
-### 🔐 Authentication Management
-Composio handles the auth for your users, allowing you to execute **tools on behalf of a specific user.**
-
-### 🚀 Managed Execution Environment
-Composio enables you to:
-
-- **Improve performance**, security, and cost efficiency by **optimising execution environments** at an individual tool level
-- Utilize supported execution environments: **Local, Docker, E2B, Fly.io, Lambda, and more**
-
-### 📊 Tools & Triggers Execution Logs
-Execution logs allow you to:
-
-- **Inspect every function called by the LLM**, including input arguments and return values
-- **Track timestamps for each execution** to understand and optimize latency
-- **Measure Accuracy** of each tool call
-
-### 🛠 Custom Tools
-With Composio, you can:
-
-- Import custom API Definitions (OpenAPI, Postman, Swagger) to automatically add support for your custom tools
-- Leverage support for different Authentication methods: **API Key, OAuth2, Basic Auth, Bearer Token, and more**
-
-### 🌐 Supported Tools
-
-
-
- Triggers & Actions for 100+ widely used softwares. - [View Full List of Supported Apps](https://app.composio.dev/apps)
-
-
- Manage customer relationships with tools like `Salesforce`, `Zoho`,
- `HubSpot`, plus many more CRMs.
-
-
- Enhance your development workflow with `GitHub`, `GitLab`, `Bitbucket`,
- plus many more devtools.
-
-
- Boost productivity using tools like `Slack`, `Trello`, `Asana`, plus
- many more productivity tools.
-
-
- Integrate with Google Workspace applications including `Gmail`, `Docs`,
- `Drive`, plus many more Google apps.
-
-
- Explore additional categories such as Marketing, Finance, HR, and more,
- plus many more categories.
-
-
-
-
- `Filemanager`, `Database`, `Redis`, plus many more system tools.
-
-
- `Shell Management`, `Package Management`, `Execution Sandbox`, `Code
- Testing` and full suite of tools to allow you to power your own SWE agents
-
-
- `Add a document`, `delete a document`, `search across all documents`, plus
- many more RAG operations
-
-
- `Perplexity`, `Exa`, `Serp-api` and 10+ more, plus many more search tools.
-
-
- Navigate the web, interact with the OS, take screenshots, move mouse, and more.
-
-
\ No newline at end of file
+
+Checkout our toolset of 250+ LLM ready tools to build powerful AI applications
+
+
+Learn how to create and manage connections for your users
+
+
+Composio SWE Kit ([#4 on SWE bench](https://www.swebench.com)) - Your ultimate coding companion
+
+
+Subscribe to triggers to execute actions automatically
+
+
\ No newline at end of file
diff --git a/docs/introduction/intro/quickstart_2.mdx b/docs/introduction/intro/quickstart-entities.mdx
similarity index 99%
rename from docs/introduction/intro/quickstart_2.mdx
rename to docs/introduction/intro/quickstart-entities.mdx
index 44472cecdd6..8c112c34401 100644
--- a/docs/introduction/intro/quickstart_2.mdx
+++ b/docs/introduction/intro/quickstart-entities.mdx
@@ -1,7 +1,6 @@
---
title: "🚀 Quick Start - Auth"
sidebarTitle: "Quick Start - Auth"
-icon: "rocket"
description: "Quickstart: Learn how to authenticate and manage multiple users in your app."
---
diff --git a/docs/introduction/intro/quickstart-tools.mdx b/docs/introduction/intro/quickstart-tools.mdx
new file mode 100644
index 00000000000..8a809011a68
--- /dev/null
+++ b/docs/introduction/intro/quickstart-tools.mdx
@@ -0,0 +1,208 @@
+---
+title: "🚀 Quick Start - Tools"
+sidebarTitle: "Quick Start - Tools"
+description: "Learn how to use Tools in less than 5 minutes"
+---
+
+## Composio Quick Start
+In this guide we'll use GitHub tools to star a repo on GitHub.
+
+
+
+
+
+
+
+```shell CLI
+pip install composio_core composio_openai
+```
+
+
+
+
+
+We'll use **`Jessica`** as the user id [(entity id)](../../patterns/Auth/connected_account#entities).
+You need to have an active GitHub Integration. Learn how to do this [here](https://youtu.be/LmyWy4LiedQ?si=u5uFArlNL0tew0Wf)
+
+```shell CLI
+composio login
+composio add github -e "Jessica"
+```
+```python Python
+from composio_openai import ComposioToolSet, App, Trigger
+toolset = ComposioToolSet(entity_id="Jessica")
+
+request = toolset.initiate_connection(app=App.GITHUB)
+
+print(f"Open this URL to authenticate: {request.redirectUrl}")
+```
+
+
+Don't forget to set your `COMPOSIO_API_KEY` and `OPENAI_API_KEY` in your environment variables.
+
+
+
+
+
+```python Python
+from composio_openai import ComposioToolSet, App
+from openai import OpenAI
+
+openai_client = OpenAI()
+composio_toolset = ComposioToolSet(entity_id="Jessica")
+```
+
+
+
+
+
+```python Python
+tools = composio_toolset.get_tools(apps=[App.GITHUB])
+
+task = "Star the repo composiohq/composio on GitHub"
+
+response = openai_client.chat.completions.create(
+ model="gpt-4o",
+ tools=tools,
+ messages=[
+ {"role": "system", "content": "You are a helpful assistant."},
+ {"role": "user", "content": task},
+ ],
+)
+```
+
+
+Composio also supports action executions without LLMs or agents. [Learn more](../../patterns/tools/use-tools/action-guide-without-agents).
+
+
+
+
+
+```python Python
+result = composio_toolset.handle_tool_calls(response)
+print(result)
+```
+
+
+
+
+
+
+
+
+
+
+
+ ```shell CLI
+ npm install composio-core openai
+ ```
+
+
+
+
+ We'll use **`Jessica`** as the user id [(entity id)](../../patterns/Auth/connected_account#entities).
+ You need to have an active GitHub Integration. Learn how to do this [here](https://youtu.be/LmyWy4LiedQ?si=u5uFArlNL0tew0Wf)
+
+ ```shell CLI
+ composio login
+ composio add github
+ ```
+ ```javascript JavaScript
+ import { Composio } from "composio-core";
+
+ const client = new Composio({ apiKey: "" });
+
+ const entity = await client.getEntity("Jessica");
+ const connection = await entity.initiateConnection({appName: 'github'});
+
+ console.log(`Open this URL to authenticate: ${connection.redirectUrl}`);
+ ```
+
+
+
+
+
+ ```javascript JavaScript
+ import { OpenAI } from "openai";
+ import { OpenAIToolSet } from "composio-core";
+
+ const openai_client = new OpenAI();
+ const composio_toolset = new OpenAIToolSet();
+ ```
+
+
+ Don't forget to set your `COMPOSIO_API_KEY` and `OPENAI_API_KEY` in your environment variables.
+
+
+
+
+
+ ```javascript Star a repo using LLM
+ const tools = await composio_toolset.getTools({
+ actions: ["github_star_a_repository_for_the_authenticated_user"]
+ });
+
+ const instruction = "Star the repo composiohq/composio on GitHub";
+
+ const response = await openai_client.chat.completions.create({
+ model: "gpt-4o",
+ messages: [{ role: "user", content: instruction }],
+ tools: tools,
+ tool_choice: "auto",
+ });
+ ```
+
+
+ Composio also supports action executions without LLMs or agents. [Learn more](../../patterns/tools/use-tools/action-guide-without-agents).
+
+
+
+
+
+ ```javascript Execute Function calls
+ const result = await composio_toolset.handleToolCall(response);
+ console.log(result);
+ ```
+
+
+
+
+
+
+
+
+
+## What Just Happened? 🎉
+
+Congratulations! You've just:
+
+1. 🔐 Connected your GitHub account with Composio
+2. 🛠 Fetched GitHub actions
+3. 🧠 Passed these actions to an AI language model
+4. ⭐ Instructed the AI to star the `composiohq/composio` repository
+5. ✅ Successfully executed the action on GitHub
+
+
+
+## Next Steps
+Now that you've seen how to use tools, you can explore the following resources:
+
+
+Checkout our toolset of 250+ LLM ready tools to build powerful AI applications
+
+
+Learn how to create and manage connections for your users
+
+
+Integrate with popular agentic frameworks
+
+
+Composio SWE Kit ([#4 on SWE bench](https://www.swebench.com)) - Your ultimate coding companion
+
+
+Subscribe to triggers to execute actions automatically
+
+
+Learn about workspace environments, using CLI & other concepts
+
+
\ No newline at end of file
diff --git a/docs/introduction/intro/quickstart_3.mdx b/docs/introduction/intro/quickstart-triggers.mdx
similarity index 84%
rename from docs/introduction/intro/quickstart_3.mdx
rename to docs/introduction/intro/quickstart-triggers.mdx
index 0bf68bc6b67..15a08ec9164 100644
--- a/docs/introduction/intro/quickstart_3.mdx
+++ b/docs/introduction/intro/quickstart-triggers.mdx
@@ -1,12 +1,11 @@
---
title: "🚀 Quick Start - Triggers"
sidebarTitle: "Quick Start - Triggers"
-icon: "rocket"
-description: "Quickstart: Learn how to use Triggers with Composio."
+description: "Learn how to use Triggers in less than 5 minutes"
---
## Composio Quick Start
-In this guide we'll configure and enable a trigger to listen to new emails in Gmail & configure an agent add important label to emails that contains details about bank transactions.
+In this guide we'll configure and enable a trigger to listen to new emails in Gmail & configure an agent to add important label to emails that contains details about bank transactions.
@@ -21,7 +20,6 @@ pip install composio-core composio_openai
We'll use **`Jessica`** as the user id [(entity id)](../../patterns/Auth/connected_account#entities).
You need to have an active Gmail Integration. Learn how to do this [here](https://youtu.be/LmyWy4LiedQ?si=u5uFArlNL0tew0Wf)
-
```shell CLI
composio login
@@ -225,24 +223,29 @@ Congratulations! You've just:
1. 🔐 Connected your Gmail account with Composio
2. 🛠 Enabled Triggers
3. 🧠 Passed these triggers event payloads to an AI language model
-4. ⭐ Added the important label to emails that contain details about bank transactions
+4. ⭐ Executed an action from Gmail tool
+
+
-
-
+## Next Steps
+Now that you've seen how to use triggers, you can explore the following resources:
-
-Integrate with popular agentic frameworks
+
+Checkout our toolset of 250+ LLM ready tools to build powerful AI applications
-
-Authorize a user's account to perform actions and subscribe to triggers
+
+Learn how to create and manage connections for your users
-
-Execute actions on behalf of a user
+
+Integrate with popular agentic frameworks
+
+
+Composio SWE Kit ([#4 on SWE bench](https://www.swebench.com)) - Your ultimate coding companion
-
+
Subscribe to triggers to execute actions automatically
-
+
+Learn about workspace environments, using CLI & other concepts
-
-
+
\ No newline at end of file
diff --git a/docs/introduction/intro/quickstart.mdx b/docs/introduction/intro/quickstart.mdx
deleted file mode 100644
index 70835a9570f..00000000000
--- a/docs/introduction/intro/quickstart.mdx
+++ /dev/null
@@ -1,248 +0,0 @@
----
-title: "🚀 Quick Start"
-sidebarTitle: "Quick Start"
-icon: "rocket"
-description: "Learn how to integrate OpenAI with GitHub using Composio in just 5 minutes."
----
-
-## Composio Quick Start
-
-Turn natural language into GitHub actions in minutes. Follow these 5 steps to star a repo using AI:
-
-
- **What you'll achieve:** By the end of this guide, you'll have an AI agent capable of starring GitHub repositories using natural language commands.
-
-
-
-
-
-
-
- ```bash Python Install Packages
- pip install composio_core composio_openai
-
- composio login
- ```
-
-
-
-
-
- Choose your method:
-
-
-
-
- ```bash Authenticate GitHub Account
- composio add github # Launches GitHub login
- ```
-
-
-
-
- ```python Authenticate GitHub Account
- from composio import ComposioToolSet, App
-
- toolset = ComposioToolSet()
- entity = toolset.get_entity() # Get your user
- request = entity.initiate_connection(App.GITHUB)
-
- print(f"Open this URL to authenticate: {request.redirectUrl}")
- ```
-
-
-
-
-
- Ensure you complete the authentication process by following the URL provided in your console.
-
-
-
-
-
- If you prefer using a different framework or LLM, you can explore our comprehensive list of 15+ supported frameworks and LLMs in our [frameworks documentation](/framework).
-
-
- ```python Initialize Clients & Toolset
- from composio_openai import ComposioToolSet, App
- from openai import OpenAI
-
- openai_client = OpenAI()
- composio_toolset = ComposioToolSet()
- ```
-
-
-
- Don't forget to set your `OPENAI_API_KEY` in your environment variables.
-
-
-
-
-
- Now, let's star a repository using natural language:
-
-
- ```python Star a repo using LLM
- tools = composio_toolset.get_tools(apps=[App.GITHUB])
-
- task = "Star the repo composiohq/composio on GitHub"
-
- response = openai_client.chat.completions.create(
- model="gpt-4-turbo-preview",
- tools=tools,
- messages=
- [
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": task},
- ],
- )
- ```
-
-
- Composio also supports action executions without LLMs or agents. [Learn more](../../patterns/tools/use-tools/action-guide-without-agents).
-
-
-
-
- Finally, let's execute the action determined by the LLM:
-
-
- ```python Execute Function calls
- result = composio_toolset.handle_tool_calls(response)
- print(result)
- ```
-
-
-
-
-
-
-
-
-
-
-
- Choose your preferred language:
-
-
- ```bash Install Packages
- npm install -g composio-core
- npm install openai
- ```
-
-
-
-
- Choose your method:
-
-
-
-
- ```bash Authenticate GitHub Account
- composio login
-
- composio add github # Launches GitHub login
- ```
-
-
-
-
- ```javascript Authenticate GitHub Account
- import { Composio } from "composio-core";
-
- const client = new Composio();
-
- const entity = await client.getEntity();
- const connection = await entity.initiateConnection('github');
-
- console.log(`Open this URL to authenticate: ${connection.redirectUrl}`);
- ```
-
-
-
-
-
- Ensure you complete the authentication process by following the URL provided in your console.
-
-
-
-
-
-
- If you prefer using a different framework or LLM, you can explore our comprehensive list of 15+ supported frameworks and LLMs in our [frameworks documentation](/framework).
-
-
- ```javascript Initialize Clients
- import { OpenAI } from "openai";
- import { OpenAIToolSet } from "composio-core";
-
- const openai_client = new OpenAI();
- const composio_toolset = new OpenAIToolSet();
- ```
-
-
- Don't forget to set your `OPENAI_API_KEY` in your environment variables.
-
-
-
-
- Now, let's star a repository using natural language:
-
-
- ```javascript Star a repo using LLM
- const tools = await composio_toolset.getTools({
- actions: ["github_star_a_repository_for_the_authenticated_user"]
- });
-
- const instruction = "Star the repo composiohq/composio on GitHub";
-
- const response = await openai_client.chat.completions.create({
- model: "gpt-4-turbo-preview",
- messages: [{ role: "user", content: instruction }],
- tools: tools,
- tool_choice: "auto",
- });
- ```
-
-
- Composio also supports action executions without LLMs or agents. [Learn more](../../patterns/tools/use-tools/action-guide-without-agents).
-
-
-
-
- Finally, let's execute the action determined by the LLM:
-
-
- ```javascript Execute Function calls
- const result = await composio_toolset.handleToolCall(response);
- console.log(result);
- ```
-
-
-
-
-
-
-
-
-
-
-
-## What Just Happened? 🎉
-
-Congratulations! You've just:
-
-1. 🔐 Authenticated your GitHub account with Composio
-2. 🛠 Fetched GitHub actions
-3. 🧠 Passed these actions to an AI language model
-4. ⭐ Instructed the AI to star the `composiohq/composio` repository
-5. ✅ Successfully executed the action on GitHub
-
-
-
-## Next Steps
-
-
- Let's authenticate your user account to perform actions.
-
-
\ No newline at end of file
diff --git a/docs/introduction/intro/quickstart_3_backup.mdx b/docs/introduction/intro/quickstart_3_backup.mdx
index cc8053067ba..bcc2ab5111b 100644
--- a/docs/introduction/intro/quickstart_3_backup.mdx
+++ b/docs/introduction/intro/quickstart_3_backup.mdx
@@ -1,7 +1,6 @@
---
title: "🚀 Quick Start - 3"
sidebarTitle: "Quick Start - Part 3"
-icon: "rocket"
description: "Quickstart-3: Learn how to use Triggers with Composio."
---
diff --git a/docs/javascript/cloudflare.mdx b/docs/javascript/cloudflare.mdx
index 92b9742efdf..4203beac32f 100644
--- a/docs/javascript/cloudflare.mdx
+++ b/docs/javascript/cloudflare.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Cloudflare Worker AI"
sidebarTitle: "Cloudflare Worker AI"
-icon: "link"
description: "Integrate Composio with Cloudflare Worker AI to let them seamlessly interact with external apps"
---
diff --git a/docs/javascript/introduction.mdx b/docs/javascript/introduction.mdx
index de91b945878..129831c06c7 100644
--- a/docs/javascript/introduction.mdx
+++ b/docs/javascript/introduction.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio JS SDK "
sidebarTitle: "Setup & Use"
-icon: "gear"
description: "The Composio JS SDK allows you to integrate your JS application with a variety of tools and services."
---
diff --git a/docs/javascript/langchain.mdx b/docs/javascript/langchain.mdx
index 310bf9f2cb7..7c5b15c609a 100644
--- a/docs/javascript/langchain.mdx
+++ b/docs/javascript/langchain.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio JS SDK with Langchain"
sidebarTitle: "Langchain (JS)"
-icon: "code"
description: "Use Composio JS SDK with Langchain"
---
diff --git a/docs/javascript/openai.mdx b/docs/javascript/openai.mdx
index 7492a8baa52..7f96b46561c 100644
--- a/docs/javascript/openai.mdx
+++ b/docs/javascript/openai.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio JS SDK with OpenAI"
sidebarTitle: "OpenAI (JS)"
-icon: "code"
description: "Use Composio JS SDK with OpenAI to create a github issue creation agent"
---
diff --git a/docs/javascript/trigger.mdx b/docs/javascript/trigger.mdx
index 92127144acb..7b469807a1b 100644
--- a/docs/javascript/trigger.mdx
+++ b/docs/javascript/trigger.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ Use Triggers"
sidebarTitle: "Triggers"
-icon: "webhook"
description: "Learn, how to use triggers in Connected Apps"
---
diff --git a/docs/javascript/vercel.mdx b/docs/javascript/vercel.mdx
index 082165a493f..7ab51be6d7f 100644
--- a/docs/javascript/vercel.mdx
+++ b/docs/javascript/vercel.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio With Vercel AI SDK"
sidebarTitle: "Vercel AI"
-icon: "link"
description: "Integrate Composio with Vercel AI SDK to let them seamlessly interact with external apps"
---
diff --git a/docs/mint.json b/docs/mint.json
index f93a7c89745..bced1589fdd 100644
--- a/docs/mint.json
+++ b/docs/mint.json
@@ -78,9 +78,8 @@
"pages": [
"introduction/intro/overview",
"introduction/intro/basic",
- "introduction/intro/quickstart",
- "introduction/intro/quickstart_2",
- "introduction/intro/quickstart_3"
+ "introduction/intro/quickstart-tools",
+ "introduction/intro/quickstart-triggers"
]
},
{
@@ -89,7 +88,6 @@
"patterns/tools/what-are-tools",
{
"group": "Use Tools",
- "icon": "shuttle-space",
"pages": [
"patterns/tools/use-tools/action-guide-with-agents",
"patterns/tools/use-tools/use-specific-actions",
@@ -102,7 +100,6 @@
},
{
"group": "Build Tools",
- "icon": "hammer",
"pages": [
"patterns/tools/build-tools/custom-action-without-auth",
"patterns/tools/build-tools/custom-action-with-auth"
@@ -114,7 +111,6 @@
},
{
"group": "Authentication",
- "icon": "unlock",
"pages": [
"patterns/Auth/connected_account",
"patterns/Auth/using-connections",
@@ -125,7 +121,6 @@
},
{
"group": "Triggers & Webhooks",
- "icon": "webhook",
"pages": [
"patterns/triggers/triggers",
"patterns/triggers/webhooks"
@@ -167,8 +162,8 @@
"group": "SWE kit",
"pages": [
"swekit-tools/introduction",
- "swekit-js/introduction",
"swekit/introduction",
+ "swekit-js/introduction",
"swekit/benchmarks",
"swekit-examples/introduction"
]
@@ -226,53 +221,103 @@
"group": "Endpoints",
"icon": "robot",
"pages": [
- {
- "group": "Apps",
- "pages": [
- "api-reference/apps/get-apps",
- "api-reference/apps/get-app"
- ]
- },
- {
- "group": "Integrations(App Connectors)",
- "pages": [
- "api-reference/app-connector/create-connector",
- "api-reference/app-connector/list-global-connectors",
- "api-reference/app-connector/get-connector-info"
- ]
- },
- {
- "group": "Connections",
- "pages": [
- "api-reference/connections/get-connections",
- "api-reference/connections/initiate-connection",
- "api-reference/connections/get-connection"
- ]
- },
- {
- "group": "Actions",
- "pages": [
- "api-reference/actions/list-actions-minimal",
- "api-reference/actions/get-action",
- "api-reference/actions/execute-action",
- "api-reference/actions/execute-action-proxy",
- "api-reference/actions/get-action-inputs"
- ]
- },
- {
- "group": "Triggers",
- "pages": [
- "api-reference/triggers/list-triggers",
- "api-reference/triggers/enable-trigger"
- ]
- },
- {
- "group": "Logs",
- "pages": [
- "api-reference/logs/get-logs"
- ]
- }
- ]
+ {
+ "group": "Actions",
+ "pages": [
+ "api-reference/actions/list-action-tags",
+ "api-reference/actions/list-actions",
+ "api-reference/actions/get-action-inputs",
+ "api-reference/actions/get-single-action",
+ "api-reference/actions/execute-an-action"
+ ]
+ },
+ {
+ "group": "Api Keys",
+ "pages": [
+ "api-reference/api-keys/list-api-keys",
+ "api-reference/api-keys/generate-api-key",
+ "api-reference/api-keys/delete-api-key"
+ ]
+ },
+ {
+ "group": "Apps",
+ "pages": [
+ "api-reference/apps/list-app-categories",
+ "api-reference/apps/list-apps",
+ "api-reference/apps/get-single-app"
+ ]
+ },
+ {
+ "group": "Client",
+ "pages": [
+ "api-reference/client/get-user-info"
+ ]
+ },
+ {
+ "group": "Connections",
+ "pages": [
+ "api-reference/connections/list-connections",
+ "api-reference/connections/get-auth-credentials",
+ "api-reference/connections/get-single-connection",
+ "api-reference/connections/update-connection-data",
+ "api-reference/connections/delete-connection",
+ "api-reference/connections/disable-connection",
+ "api-reference/connections/enable-connection",
+ "api-reference/connections/initiate-connection"
+ ]
+ },
+ {
+ "group": "Integrations",
+ "pages": [
+ "api-reference/integrations/list-all-connectors",
+ "api-reference/integrations/get-connector-info",
+ "api-reference/integrations/create-connector",
+ "api-reference/integrations/delete-connector",
+ "api-reference/integrations/modify-connector"
+ ]
+ },
+ {
+ "group": "Logs",
+ "pages": [
+ "api-reference/logs/get-logs",
+ "api-reference/logs/post-logs"
+ ]
+ },
+ {
+ "group": "Projects",
+ "pages": [
+ "api-reference/projects/list-all-projects",
+ "api-reference/projects/get-project",
+ "api-reference/projects/regenerate-project-api-key",
+ "api-reference/projects/create-new-project",
+ "api-reference/projects/delete-project",
+ "api-reference/projects/rename-project"
+ ]
+ },
+ {
+ "group": "Team",
+ "pages": [
+ "api-reference/team/list-members",
+ "api-reference/team/invite-member"
+ ]
+ },
+ {
+ "group": "Triggers",
+ "pages": [
+ "api-reference/triggers/list-triggers",
+ "api-reference/triggers/get-active-triggers",
+ "api-reference/triggers/get-logs",
+ "api-reference/triggers/get-trigger-info",
+ "api-reference/triggers/get-webhook-url",
+ "api-reference/triggers/update-new-webhook",
+ "api-reference/triggers/delete-trigger",
+ "api-reference/triggers/disable-trigger",
+ "api-reference/triggers/enable-trigger",
+ "api-reference/triggers/set-callback-url",
+ "api-reference/triggers/switch-trigger-instance-status"
+ ]
+ }
+]
}
],
"integrations": {
diff --git a/docs/mint.json.ejs b/docs/mint.json.ejs
new file mode 100644
index 00000000000..4a47bd18a67
--- /dev/null
+++ b/docs/mint.json.ejs
@@ -0,0 +1,292 @@
+{
+ "name": "Composio",
+ "theme": "venus",
+ "logo": {
+ "light": "/logo/light.svg",
+ "dark": "/logo/dark.svg"
+ },
+ "openapi": [
+ "/composio.yaml"
+ ],
+ "favicon": "/favicon1.png",
+ "colors": {
+ "primary": "#343434",
+ "light": "#fff",
+ "dark": "#343434",
+ "ultraLight": "#9a4dff",
+ "ultraDark": "#9a4dff",
+ "background": {
+ "dark": "#181818",
+ "light": "#fafafa"
+ }
+ },
+ "seo": {
+ "indexHiddenPages": false
+ },
+ "modeToggle": {
+ "default": "dark",
+ "isHidden": false
+ },
+ "feedback": {
+ "suggestEdit": true,
+ "raiseIssue": true,
+ "thumbsRating": true
+ },
+ "search": {
+ "prompt": "Make my agents useful ..."
+ },
+ "metadata": {
+ "og:image": "https://framerusercontent.com/images/YwaNXXQETYRs9LymxFCnTjp83Q.svg",
+ "og:description": "Composio enables your agents to connect with Various Tools and work with them",
+ "og:site_name": "Composio Docs",
+ "twitter:site": "https://twitter.com/KaranVaidya6"
+ },
+ "topbarLinks": [
+ {
+ "name": "Discord",
+ "url": "https://dub.composio.dev/discord"
+ }
+ ],
+ "topbarCtaButton": {
+ "name": "Get your API Key",
+ "url": "https://app.composio.dev/settings"
+ },
+ "topAnchor": {
+ "name": "Documentation",
+ "icon": "book-open"
+ },
+ "primaryTab": {
+ "name": "Get Started"
+ },
+ "tabs": [
+ {
+ "name": "Examples",
+ "url": "examples"
+ },
+ {
+ "name": "API",
+ "url": "api-reference"
+ },
+ {
+ "name": "All Tools",
+ "url": "https://composio.dev/tools"
+ },
+ {
+ "name": "Chat with Repo",
+ "url": "https://dub.composio.dev/composio-chat-with-repo"
+ }
+ ],
+ "navigation": [
+ {
+ "group": "Introduction",
+ "pages": [
+ "introduction/intro/overview",
+ "introduction/intro/basic",
+ "introduction/intro/quickstart",
+ "introduction/intro/quickstart_2",
+ "introduction/intro/quickstart_3"
+ ]
+ },
+ {
+ "group": "Tools",
+ "pages": [
+ "patterns/tools/what-are-tools",
+ {
+ "group": "Use Tools",
+ "icon": "shuttle-space",
+ "pages": [
+ "patterns/tools/use-tools/action-guide-with-agents",
+ "patterns/tools/use-tools/use-specific-actions",
+ "patterns/tools/use-tools/get-action-inputs",
+ "patterns/tools/use-tools/processing-actions",
+ "patterns/tools/use-tools/configure-tools",
+ "patterns/tools/use-tools/action-guide-without-agents"
+ ]
+ },
+ {
+ "group": "Build Tools",
+ "icon": "hammer",
+ "pages": [
+ "patterns/tools/build-tools/custom-action-without-auth",
+ "patterns/tools/build-tools/custom-action-with-auth"
+ ]
+ },
+ "patterns/tools/custom-integration",
+ "patterns/tools/serve-tools"
+ ]
+ },
+ {
+ "group": "Authentication",
+ "icon": "unlock",
+ "pages": [
+ "patterns/Auth/connected_account",
+ "patterns/Auth/using-connections",
+ "patterns/Auth/Integrations",
+ "patterns/Auth/examples/gmail_example",
+ "patterns/Auth/examples/shopify_example"
+ ]
+ },
+ {
+ "group": "Triggers & Webhooks",
+ "icon": "webhook",
+ "pages": [
+ "patterns/triggers/triggers",
+ "patterns/triggers/webhooks"
+ ]
+ },
+ {
+ "group": "Supported Frameworks",
+ "pages": [
+ "framework/autogen",
+ "framework/crewai",
+ "framework/langchain",
+ "framework/langgraph",
+ "framework/letta",
+ "framework/litellm",
+ "framework/llamaindex",
+ "framework/openai",
+ {
+ "group": "Other Frameworks",
+ "pages": [
+ "framework/camelai",
+ "javascript/cloudflare",
+ "framework/griptape",
+ "framework/groq",
+ "framework/julep",
+ "framework/lyzr",
+ "framework/phidata",
+ "framework/praisonai",
+ "javascript/vercel",
+ "framework/google"
+ ]
+ }
+ ]
+ },
+ {
+ "group": "SWE Kit",
+ "pages": [
+ "swekit-tools/introduction",
+ "swekit-js/introduction",
+ "swekit/introduction",
+ "swekit/benchmarks",
+ "swekit-examples/introduction"
+ ]
+ },
+ {
+ "group": "Others",
+ "pages": [
+ "introduction/foundations/components/workspace",
+ "faq/api_key/api_key",
+ "faq/api_key/cli",
+ "faq/integrations_and_connections/list_of_tools",
+ "faq/supported_llms/supported_llm"
+ ]
+ },
+ {
+ "group": "Examples",
+ "pages": [
+ {
+ "group": "Python Examples",
+ "pages": [
+ "examples/combined/rag-agent-python",
+ "examples/combined/code-execution-agent-python",
+ "examples/combined/calendar-agent-python",
+ "examples/combined/newsletter-summarizer-python",
+ "examples/combined/research-agent-python",
+ "examples/combined/sql-agent-python"
+ ]
+ },
+ {
+ "group": "JavaScript Examples",
+ "pages": [
+ "examples/combined/rag-agent-javascript",
+ "examples/combined/code-execution-agent-javascript",
+ "examples/combined/calendar-agent-javascript",
+ "examples/combined/newsletter-summarizer-javascript",
+ "examples/combined/research-agent-javascript",
+ "examples/combined/sql-agent-javascript"
+ ]
+ }
+ ]
+ },
+ {
+ "group": "Endpoints",
+ "icon": "robot",
+ "pages": <%- JSON.stringify(apiReferencePages, null, 2) %>
+ }
+ ],
+ "integrations": {
+ "intercom": "dvp1uc7s"
+ },
+ "footerSocials": {
+ "linkedin": "https://www.linkedin.com/company/composio-dev/",
+ "x": "https://twitter.com/composiohq",
+ "github": "https://github.com/composiohq"
+ },
+ "analytics": {
+ "ga4": {
+ "measurementId": "G-3DBLETRPXH"
+ },
+ "posthog": {
+ "apiKey": "phc_Gz8DBv1ZMbOwt3hE8sJZwKGsDl5FtMSkvBNSR0HC07c"
+ },
+ "plausible": {
+ "domain": "composio.dev"
+ }
+ },
+ "api": {
+ "playground": {
+ "mode": "show"
+ }
+ },
+ "redirects": [
+ {
+ "source": "/apps/gitlab",
+ "destination": "https://app.composio.dev/apps"
+ },
+ {
+ "source": "/apps/bitbucket",
+ "destination": "https://app.composio.dev/apps"
+ },
+ {
+ "source": "/introduction/foundations/howtos/get_api_key",
+ "destination": "/patterns/howtos/get_api_key"
+ },
+ {
+ "source": "/sdk/cli/trigger",
+ "destination": "/patterns/cli/trigger"
+ },
+ {
+ "source": "/guides/:slug1*",
+ "destination": "/examples/:slug1*"
+ },
+ {
+ "source": "/apps/usecases/langchain_blogs/:slug2*",
+ "destination": "https://composio.dev/tools/:slug2*"
+ },
+ {
+ "source": "/apps/usecases/crewai/:slug2*",
+ "destination": "https://composio.dev/tools/:slug2*"
+ },
+ {
+ "source": "/apps/usecases/autogen_blogs/:slug2*",
+ "destination": "https://composio.dev/tools/:slug2*"
+ },
+ {
+ "source": "/apps/:slug2*",
+ "destination": "https://composio.dev/tools/:slug2*"
+ },
+ {
+ "source": "/apps",
+ "destination": "https://composio.dev/tools/"
+ },
+ {
+ "source": "/python/local_tools",
+ "destination": "/introduction/foundations/components/custom_actions"
+ },
+ {
+ "source": "/introduction/foundations/components/local_tools",
+ "destination": "/introduction/foundations/components/custom_actions"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/docs/package.json b/docs/package.json
index 4a0f8836cc8..868c9d11fad 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,10 +1,13 @@
{
"scripts": {
"dev": "mintlify dev",
- "generate": "npx @mintlify/scraping@latest openapi-file ./composio_openapi.json -o api-reference"
+ "openapi:validate": "mintlify openapi-check composio_openapi.json",
+ "generate:docs": "curl -o composio_openapi.json https://backend.composio.dev/openapi.json && pnpm generate",
+ "generate": "rm -rf api-reference || true && npx @mintlify/scraping@latest openapi-file ./composio_openapi.json -o api-reference && node scripts/render_mint_json_template.js"
},
"dependencies": {
"axios": "^1.6.8",
+ "ejs": "^3.1.10",
"mintlify": "^4.0.172"
}
}
diff --git a/docs/patterns/Auth/Integrations.mdx b/docs/patterns/Auth/Integrations.mdx
index a4b9b97e01f..7da87a8a3cd 100644
--- a/docs/patterns/Auth/Integrations.mdx
+++ b/docs/patterns/Auth/Integrations.mdx
@@ -1,7 +1,6 @@
---
title: "How To Configure Connections?"
sidebarTitle: "Configuring Connection"
-icon: "sliders"
description: "Learn how to configure connections for your users"
---
diff --git a/docs/patterns/Auth/connected_account.mdx b/docs/patterns/Auth/connected_account.mdx
index b0a5602d03d..e8b07c5a00c 100644
--- a/docs/patterns/Auth/connected_account.mdx
+++ b/docs/patterns/Auth/connected_account.mdx
@@ -1,7 +1,6 @@
---
title: "Create & Manage Connections for Users"
sidebarTitle: "Connections"
-icon: "link"
description: "Learn how to securely manage and authenticate multiple user connections"
---
diff --git a/docs/patterns/Auth/examples/gmail_example.mdx b/docs/patterns/Auth/examples/gmail_example.mdx
index c017e7bd220..fb690674a5c 100644
--- a/docs/patterns/Auth/examples/gmail_example.mdx
+++ b/docs/patterns/Auth/examples/gmail_example.mdx
@@ -1,7 +1,6 @@
---
title: "Connecting your User's Gmail Account"
sidebarTitle: "Example Flow - Gmail"
-icon: "mailbox"
description: "Here's how to connect your user to Gmail"
---
diff --git a/docs/patterns/Auth/examples/shopify_example.mdx b/docs/patterns/Auth/examples/shopify_example.mdx
index 36f884368ef..1b6a86c851a 100644
--- a/docs/patterns/Auth/examples/shopify_example.mdx
+++ b/docs/patterns/Auth/examples/shopify_example.mdx
@@ -1,7 +1,6 @@
---
title: "Connecting a Shopify Account using API Key"
sidebarTitle: "Example Flow - Shopify"
-icon: "bars"
description: "Guide to getting your user's Shopify account connected using API Key"
---
diff --git a/docs/patterns/Auth/using-connections.mdx b/docs/patterns/Auth/using-connections.mdx
index 133ed321362..aad28c0c8bf 100644
--- a/docs/patterns/Auth/using-connections.mdx
+++ b/docs/patterns/Auth/using-connections.mdx
@@ -1,7 +1,6 @@
---
title: "How to use Connections?"
sidebarTitle: "Using Connections"
-icon: "file-user"
description: "Learn how to use connections"
---
diff --git a/docs/patterns/cli/install.mdx b/docs/patterns/cli/install.mdx
index fc6de980859..294f478f021 100644
--- a/docs/patterns/cli/install.mdx
+++ b/docs/patterns/cli/install.mdx
@@ -1,7 +1,6 @@
---
title: "💻 Using Composio CLI"
sidebarTitle: "Install"
-icon: "gear"
description: "Learn how to install and use the Composio CLI for managing your agent interactions."
---
diff --git a/docs/patterns/cli/trigger.mdx b/docs/patterns/cli/trigger.mdx
index 55e0c52af7a..dc11062d5f0 100644
--- a/docs/patterns/cli/trigger.mdx
+++ b/docs/patterns/cli/trigger.mdx
@@ -1,7 +1,6 @@
---
title: "🧑🏻💻 Manage Triggers using CLI"
sidebarTitle: "Triggers"
-icon: "lasso"
description: "Learn how to enable, disable, list, and manage triggers using the CLI."
---
diff --git a/docs/patterns/tools/build-tools/custom-action-with-auth.mdx b/docs/patterns/tools/build-tools/custom-action-with-auth.mdx
index 714e8b25dd0..94c5f3c0894 100644
--- a/docs/patterns/tools/build-tools/custom-action-with-auth.mdx
+++ b/docs/patterns/tools/build-tools/custom-action-with-auth.mdx
@@ -1,7 +1,6 @@
---
title: "Build Tools with Auth"
sidebarTitle: "Build Tools with Auth"
-icon: "toolbox"
description: "Create custom actions that leverage existing tool authentication to extend functionality."
---
diff --git a/docs/patterns/tools/build-tools/custom-action-without-auth.mdx b/docs/patterns/tools/build-tools/custom-action-without-auth.mdx
index ac62dc67bab..6cf05ed7b53 100644
--- a/docs/patterns/tools/build-tools/custom-action-without-auth.mdx
+++ b/docs/patterns/tools/build-tools/custom-action-without-auth.mdx
@@ -1,7 +1,6 @@
---
title: "Build Tools Without Auth"
sidebarTitle: "Build Tools Without Auth"
-icon: "plus"
description: "Create standalone custom tools and actions for any functionality you need (e.g., data processing, calculations, or integrations with other services)"
---
diff --git a/docs/patterns/tools/custom-integration.mdx b/docs/patterns/tools/custom-integration.mdx
index 6b9a01460e2..3bf95144d42 100644
--- a/docs/patterns/tools/custom-integration.mdx
+++ b/docs/patterns/tools/custom-integration.mdx
@@ -1,7 +1,6 @@
---
title: "🔧 How to add your own App?"
sidebarTitle: "Add Your Own App"
-icon: "puzzle-piece"
description: "Learn how to add your own App to Composio"
---
diff --git a/docs/patterns/tools/serve-tools.mdx b/docs/patterns/tools/serve-tools.mdx
index 5d36e8eb4d4..0b6a0748bf1 100644
--- a/docs/patterns/tools/serve-tools.mdx
+++ b/docs/patterns/tools/serve-tools.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ Serving Tools Over Endpoint"
sidebarTitle: "Serving Tools Over Endpoint"
-icon: "server"
description: "Learn how to create a REST API endpoint that processes natural language requests into tool actions using Composio, OpenAI and FastAPI"
---
diff --git a/docs/patterns/tools/use-tools/action-guide-with-agents.mdx b/docs/patterns/tools/use-tools/action-guide-with-agents.mdx
index 92af160e302..5becbfaecb1 100644
--- a/docs/patterns/tools/use-tools/action-guide-with-agents.mdx
+++ b/docs/patterns/tools/use-tools/action-guide-with-agents.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ How can I use Tools with LLMs?"
sidebarTitle: "Use Tools with LLMs"
-icon: "robot"
description: "Guide to using Tools with LLMs"
---
diff --git a/docs/patterns/tools/use-tools/action-guide-without-agents.mdx b/docs/patterns/tools/use-tools/action-guide-without-agents.mdx
index 1c7045a0daf..cf471de28c7 100644
--- a/docs/patterns/tools/use-tools/action-guide-without-agents.mdx
+++ b/docs/patterns/tools/use-tools/action-guide-without-agents.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ How can I use Tools directly?"
sidebarTitle: "Use Tools Directly"
-icon: "fax"
description: "Guide to use Tools directly as function calls"
---
diff --git a/docs/patterns/tools/use-tools/configure-tools.mdx b/docs/patterns/tools/use-tools/configure-tools.mdx
index 9735ca2c926..9ac4d69cd65 100644
--- a/docs/patterns/tools/use-tools/configure-tools.mdx
+++ b/docs/patterns/tools/use-tools/configure-tools.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ Configure Tools"
sidebarTitle: "Configure Tools"
-icon: "gear"
description: "Learn how to configure tools"
---
diff --git a/docs/patterns/tools/use-tools/get-action-inputs.mdx b/docs/patterns/tools/use-tools/get-action-inputs.mdx
index 9d26f26070e..dd4db050400 100644
--- a/docs/patterns/tools/use-tools/get-action-inputs.mdx
+++ b/docs/patterns/tools/use-tools/get-action-inputs.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ How can I get the schema for an Action?"
sidebarTitle: "Get Action Schema"
-icon: "text-size"
description: "Guide to get the schema for an Action"
---
diff --git a/docs/patterns/tools/use-tools/processing-actions.mdx b/docs/patterns/tools/use-tools/processing-actions.mdx
index 2b44b745ba1..52e36a17c4c 100644
--- a/docs/patterns/tools/use-tools/processing-actions.mdx
+++ b/docs/patterns/tools/use-tools/processing-actions.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ How to modify Actions?"
sidebarTitle: "Modify Actions"
-icon: "wand-magic-sparkles"
description: "Learn how to modify Tools & Actions to refine schemas, inputs, and outputs for optimal results."
---
diff --git a/docs/patterns/tools/use-tools/use-actions-with-custom-auth.mdx b/docs/patterns/tools/use-tools/use-actions-with-custom-auth.mdx
index 15b834f392d..4e5b130f08b 100644
--- a/docs/patterns/tools/use-tools/use-actions-with-custom-auth.mdx
+++ b/docs/patterns/tools/use-tools/use-actions-with-custom-auth.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ How Can I Use Tools and Actions With Custom Authentication?"
sidebarTitle: "Use Custom Auth"
-icon: "lock"
description: "Guide to use Custom Authentication With Tools And Actions"
---
diff --git a/docs/patterns/tools/use-tools/use-specific-actions.mdx b/docs/patterns/tools/use-tools/use-specific-actions.mdx
index c65e2ef8c11..ebf6d3a7dca 100644
--- a/docs/patterns/tools/use-tools/use-specific-actions.mdx
+++ b/docs/patterns/tools/use-tools/use-specific-actions.mdx
@@ -1,7 +1,6 @@
---
title: "How can I get and use specific actions from a Tool?"
sidebarTitle: "Use Specific Actions"
-icon: "pickaxe"
description: "Each Tool (like GitHub, Slack, etc.) comes with many Actions. You can explore all available Tools & Actions [here](https://app.composio.dev/apps). Each Action has an associated action ID which you can use to call the action."
---
diff --git a/docs/patterns/tools/use-tools/use-tools-with-your-auth.mdx b/docs/patterns/tools/use-tools/use-tools-with-your-auth.mdx
index 35c6ff08603..d6293c6d0c6 100644
--- a/docs/patterns/tools/use-tools/use-tools-with-your-auth.mdx
+++ b/docs/patterns/tools/use-tools/use-tools-with-your-auth.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ How Can I Use Tools and Actions With Existing Authentication?"
sidebarTitle: "Use Tools With Your Auth"
-icon: "lock"
description: "Guide to using existing authentication with tools and actions"
---
diff --git a/docs/patterns/tools/what-are-tools.mdx b/docs/patterns/tools/what-are-tools.mdx
index 2ceac2138eb..a9fa6d2bb2a 100644
--- a/docs/patterns/tools/what-are-tools.mdx
+++ b/docs/patterns/tools/what-are-tools.mdx
@@ -1,7 +1,6 @@
---
title: "🛠️ What are Tools & Actions?"
sidebarTitle: "What are Tools?"
-icon: "question"
description: "Learn about tools in Composio"
---
### What are tools?
diff --git a/docs/patterns/triggers/triggers.mdx b/docs/patterns/triggers/triggers.mdx
index 7f7f4267999..21038770ea6 100644
--- a/docs/patterns/triggers/triggers.mdx
+++ b/docs/patterns/triggers/triggers.mdx
@@ -1,7 +1,6 @@
---
title: "Getting Started with Triggers"
sidebarTitle: "Triggers"
-icon: "webhook"
description: "Triggers monitor specific events in apps like GitHub or Gmail and notify your agents via webhooks. When triggered, they send relevant data that your agents can act upon"
---
diff --git a/docs/patterns/triggers/webhooks.mdx b/docs/patterns/triggers/webhooks.mdx
index 4c04a9a3d2c..f73e85118d7 100644
--- a/docs/patterns/triggers/webhooks.mdx
+++ b/docs/patterns/triggers/webhooks.mdx
@@ -1,7 +1,6 @@
---
title: "Getting Started with Webhooks"
sidebarTitle: "Webhooks"
-icon: "bell"
description: "Learn how to configure and receive real-time notifications about activities in your Composio account through webhooks"
---
Webhooks provide a way to receive real-time notifications when specific events occur in your Composio account. Instead of continuously polling for changes, webhooks push data to your application as events happen, making them ideal for building responsive integrations.
diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml
index 4189cdffb5b..e6565470e4b 100644
--- a/docs/pnpm-lock.yaml
+++ b/docs/pnpm-lock.yaml
@@ -11,6 +11,9 @@ importers:
axios:
specifier: ^1.6.8
version: 1.6.8
+ ejs:
+ specifier: ^3.1.10
+ version: 3.1.10
mintlify:
specifier: ^4.0.172
version: 4.0.187(openapi-types@12.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -439,6 +442,9 @@ packages:
resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==}
hasBin: true
+ async@3.2.6:
+ resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
@@ -448,6 +454,9 @@ packages:
bail@2.0.2:
resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==}
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
@@ -475,6 +484,12 @@ packages:
boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
@@ -518,6 +533,10 @@ packages:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
engines: {node: '>=4'}
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
chalk@5.3.0:
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
@@ -605,6 +624,9 @@ packages:
resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
engines: {node: '>= 12'}
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
content-disposition@0.5.4:
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
engines: {node: '>= 0.6'}
@@ -776,6 +798,11 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ ejs@3.1.10:
+ resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
@@ -898,6 +925,9 @@ packages:
fd-slicer@1.1.0:
resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+ filelist@1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -999,6 +1029,10 @@ packages:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
@@ -1220,6 +1254,11 @@ packages:
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
engines: {node: '>=8'}
+ jake@10.9.2:
+ resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -1533,6 +1572,13 @@ packages:
resolution: {integrity: sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+
minipass@3.3.6:
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
engines: {node: '>=8'}
@@ -1965,6 +2011,10 @@ packages:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
tar-fs@2.1.1:
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
@@ -2812,6 +2862,8 @@ snapshots:
astring@1.8.6: {}
+ async@3.2.6: {}
+
asynckit@0.4.0: {}
axios@1.6.8:
@@ -2824,6 +2876,8 @@ snapshots:
bail@2.0.2: {}
+ balanced-match@1.0.2: {}
+
base64-js@1.5.1: {}
base64id@2.0.0: {}
@@ -2863,6 +2917,15 @@ snapshots:
boolbase@1.0.0: {}
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
braces@3.0.3:
dependencies:
fill-range: 7.1.1
@@ -2913,6 +2976,11 @@ snapshots:
escape-string-regexp: 1.0.5
supports-color: 5.5.0
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
chalk@5.3.0: {}
character-entities-html4@2.1.0: {}
@@ -3011,6 +3079,8 @@ snapshots:
commander@8.3.0: {}
+ concat-map@0.0.1: {}
+
content-disposition@0.5.4:
dependencies:
safe-buffer: 5.2.1
@@ -3172,6 +3242,10 @@ snapshots:
ee-first@1.1.1: {}
+ ejs@3.1.10:
+ dependencies:
+ jake: 10.9.2
+
emoji-regex@8.0.0: {}
encodeurl@1.0.2: {}
@@ -3347,6 +3421,10 @@ snapshots:
dependencies:
pend: 1.2.0
+ filelist@1.0.4:
+ dependencies:
+ minimatch: 5.1.6
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -3461,6 +3539,8 @@ snapshots:
has-flag@3.0.0: {}
+ has-flag@4.0.0: {}
+
has-property-descriptors@1.0.2:
dependencies:
es-define-property: 1.0.0
@@ -3766,6 +3846,13 @@ snapshots:
dependencies:
is-docker: 2.2.1
+ jake@10.9.2:
+ dependencies:
+ async: 3.2.6
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+
js-tokens@4.0.0: {}
js-yaml@3.14.1:
@@ -4317,6 +4404,14 @@ snapshots:
mimic-response@4.0.0: {}
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.1
+
minipass@3.3.6:
dependencies:
yallist: 4.0.0
@@ -4894,6 +4989,10 @@ snapshots:
dependencies:
has-flag: 3.0.0
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
tar-fs@2.1.1:
dependencies:
chownr: 1.1.4
diff --git a/docs/python/introduction.mdx b/docs/python/introduction.mdx
index 650bd20781b..ac82a250e28 100644
--- a/docs/python/introduction.mdx
+++ b/docs/python/introduction.mdx
@@ -1,7 +1,6 @@
---
title: "Using Composio Python SDK"
sidebarTitle: "Install"
-icon: "gear"
description: "The Composio SDK allows you to integrate your applications with a variety of tools and services."
---
diff --git a/docs/scripts/render_mint_json_template.js b/docs/scripts/render_mint_json_template.js
new file mode 100644
index 00000000000..20b233c3df0
--- /dev/null
+++ b/docs/scripts/render_mint_json_template.js
@@ -0,0 +1,58 @@
+const fs = require('fs');
+const ejs = require('ejs');
+const path = require('path');
+
+// Path to the mint.json.ejs template
+const templatePath = path.join(__dirname, '../mint.json.ejs');
+
+// Path to the output mint.json file
+const outputPath = path.join(__dirname, '../mint.json');
+
+// Function to read the api-reference directory and construct apiReferencePages
+function getApiReferencePages() {
+ const apiReferenceDir = path.join(__dirname, '../api-reference');
+ const groups = fs.readdirSync(apiReferenceDir, { withFileTypes: true })
+ .filter(dirent => dirent.isDirectory())
+ .map(dirent => {
+ const group = dirent.name;
+ const capitalizedGroup = group.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
+ const pages = fs.readdirSync(path.join(apiReferenceDir, group))
+ .filter(file => file.endsWith('.mdx'))
+ .map(file => `api-reference/${group}/${file.replace('.mdx', '')}`);
+
+ // Custom ordering of pages
+ const order = ['list', 'get', 'add', 'generate', 'create', 'update', 'delete'];
+ pages.sort((a, b) => {
+ const aType = order.findIndex(type => a.toLowerCase().includes(type));
+ const bType = order.findIndex(type => b.toLowerCase().includes(type));
+ return (aType === -1 ? order.length : aType) - (bType === -1 ? order.length : bType);
+ });
+
+ return { group: capitalizedGroup, pages };
+ });
+ return groups;
+}
+
+// Value for apiReferencePages
+const apiReferencePages = getApiReferencePages();
+
+// Read the template file
+fs.readFile(templatePath, 'utf8', (err, data) => {
+ if (err) {
+ console.error('Error reading the template file:', err);
+ return;
+ }
+
+ // Render the template with the provided data
+ const rendered = ejs.render(data, { apiReferencePages });
+
+ // Write the rendered content to the output file
+ fs.writeFile(outputPath, rendered, 'utf8', (err) => {
+ if (err) {
+ console.error('Error writing the output file:', err);
+ return;
+ }
+
+ console.log('mint.json has been generated successfully.');
+ });
+});
diff --git a/docs/sdrkit/ai-lead-generator.mdx b/docs/sdrkit/ai-lead-generator.mdx
index ceafe29f300..d59921530d6 100644
--- a/docs/sdrkit/ai-lead-generator.mdx
+++ b/docs/sdrkit/ai-lead-generator.mdx
@@ -1,7 +1,6 @@
---
title: "AI Lead Generator Agent"
sidebarTitle: "AI Lead Generator"
-icon: "user-plus"
description: "This project demonstrates how to use Composio to create a lead generation agent."
---
diff --git a/docs/sdrkit/ai-market-research-agent.mdx b/docs/sdrkit/ai-market-research-agent.mdx
index 05c61f7e319..fdbaf42ac90 100644
--- a/docs/sdrkit/ai-market-research-agent.mdx
+++ b/docs/sdrkit/ai-market-research-agent.mdx
@@ -1,7 +1,6 @@
---
title: "AI Market Research Agent"
sidebarTitle: "AI Market Researcher"
-icon: "user-plus"
description: "This project demonstrates how to use Composio to create a market research agent."
---
diff --git a/docs/sdrkit/ai-outreach-agent.mdx b/docs/sdrkit/ai-outreach-agent.mdx
index f31202e22e5..5cdc7da89ab 100644
--- a/docs/sdrkit/ai-outreach-agent.mdx
+++ b/docs/sdrkit/ai-outreach-agent.mdx
@@ -1,7 +1,6 @@
---
title: "AI Outreach Agent"
sidebarTitle: "AI Outreach Agent"
-icon: "envelope"
description: "This project demonstrates how to use Composio to create an outreach agent."
---
diff --git a/docs/sdrkit/ai-scheduling-agent.mdx b/docs/sdrkit/ai-scheduling-agent.mdx
index c2a27247ca0..d452c198036 100644
--- a/docs/sdrkit/ai-scheduling-agent.mdx
+++ b/docs/sdrkit/ai-scheduling-agent.mdx
@@ -1,7 +1,6 @@
---
title: "AI Scheduling Agent"
sidebarTitle: "AI Scheduler"
-icon: "calendar"
description: "This project demonstrates how to use Composio to create a scheduling agent."
---
diff --git a/docs/sdrkit/tools.mdx b/docs/sdrkit/tools.mdx
index c5e6a243563..a8b4f0ca451 100644
--- a/docs/sdrkit/tools.mdx
+++ b/docs/sdrkit/tools.mdx
@@ -1,7 +1,6 @@
---
title: "Tools For AI SDR Kit"
sidebarTitle: "Tools"
-icon: "hammer"
description: "List of tools you can use for your AI SDR Development, compatible with agentic frameworks like CrewAI, LangChain, and LlamaIndex etc. These utilities enable file system operations, command execution, and other core development tasks"
---
@@ -42,7 +41,7 @@ Provides GDPR-compliant B2B contact data and prospecting solutions.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["COGNISM"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -89,7 +88,7 @@ A sales intelligence platform for finding leads and automating outbound workflow
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["APOLLO"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -136,7 +135,7 @@ Offers comprehensive contact and company information for sales and marketing tea
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["ZOOMINFO"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -182,7 +181,7 @@ Delivers verified email addresses and contact details for professionals worldwid
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["ROCKET_REACH"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -228,7 +227,7 @@ A B2B lead generation platform with real-time data enrichment.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["UPLEAD"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -274,7 +273,7 @@ A platform for discovering and comparing software solutions based on user review
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["G2"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -321,7 +320,7 @@ A sales engagement platform to streamline prospecting and customer outreach.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_ANALYSIS_TOOL_CREATE_CODE_MAP"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -364,7 +363,7 @@ Enables sales teams to manage and optimize multi-channel engagement.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "npf6zezgodpzr3r19bdu9" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["OUTREACH"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -410,7 +409,7 @@ Analyzes sales calls and provides actionable insights to improve team performanc
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["GONG"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -456,7 +455,7 @@ A CRM designed for inside sales with built-in calling, email, and pipeline manag
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CLOSE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -506,7 +505,7 @@ Offers company data, intent signals, and enrichment for targeting prospects.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CLEARBIT"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -553,7 +552,7 @@ Uses AI-powered intent data to identify and prioritize potential buyers.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["SIX_SENSE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -600,7 +599,7 @@ Helps identify buyer intent with data-driven insights for B2B marketing and sale
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["RB_TWOB"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -651,7 +650,7 @@ Improves email deliverability through warmup and automated outreach.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["INSTANTLY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -697,7 +696,7 @@ Optimizes inbox placement by simulating email interactions.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["LEMWARM"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -743,7 +742,7 @@ Helps improve email deliverability through personalized email warmup.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["MAILREACH"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -789,7 +788,7 @@ Helps improve email deliverability through personalized email warmup.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["LEMLIST"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -835,7 +834,7 @@ A tool to enhance deliverability and inbox performance for email campaigns.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["WARMLY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -884,7 +883,7 @@ Creates AI-powered personalized content for outreach and sales.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["REGIE_AI"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -930,7 +929,7 @@ Generates AI-driven content for emails, blogs, and personalized messaging.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["JASPER"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -976,7 +975,7 @@ Automates lead research and creates hyper-personalized outreach.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CLAY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1022,7 +1021,7 @@ Enables personalized outreach through AI-driven data aggregation.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["AOMNI"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1068,7 +1067,7 @@ Provides business information for market research and sales prospecting.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CRUNCHBASE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1114,7 +1113,7 @@ Delivers market intelligence and insights for business decision-making.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CB_INSIGHTS"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1164,7 +1163,7 @@ Offers real-time data enrichment for contacts and companies.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["SEAMLESS"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1210,7 +1209,7 @@ Combines enrichment and automation to create highly personalized outreach campai
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CLAY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1253,7 +1252,7 @@ Simplifies B2B prospecting with enriched contact and company data.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["LUSHA"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1300,7 +1299,7 @@ Simplifies scheduling by automating meeting bookings.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CALENDLY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1344,7 +1343,7 @@ Streamlines inbound meeting scheduling and routing for sales teams.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CHILI_PIPER"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1388,7 +1387,7 @@ Simplifies scheduling by automating meeting bookings.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CAL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1435,7 +1434,7 @@ A cloud-based phone system for managing sales and support calls.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["JUST_CALL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1478,7 +1477,7 @@ Performs code formatting and linting using ruff, addressing style issues and che
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["NOOKS"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1521,7 +1520,7 @@ A unified communications platform with AI-powered calling and messaging.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["DIALPAD"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1564,7 +1563,7 @@ Enables developers to integrate messaging, voice, and video in applications.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["TWILIO"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1607,7 +1606,7 @@ A tool for automated, AI-powered sales calling.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["ORUM"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1654,7 +1653,7 @@ Automates LinkedIn outreach, connection requests, and messaging.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["OCTOPUS"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1697,7 +1696,7 @@ Boosts LinkedIn prospecting with automated workflows.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["EXPAND"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1740,7 +1739,7 @@ Extracts data and automates actions on LinkedIn and other platforms.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["PHANTOM_BUSTER"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1783,7 +1782,7 @@ Simplifies LinkedIn prospecting with drip campaigns and automation.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["DRIPIFY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1830,7 +1829,7 @@ A robust CRM for marketing, sales, and customer service management.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["HUBSPOT"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1873,7 +1872,7 @@ A CRM tool designed to optimize and track the sales pipeline.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["PIPEDRIVE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1916,7 +1915,7 @@ A leading CRM platform for managing customer relationships and automating proces
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["SALESFORCE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1959,7 +1958,7 @@ An all-in-one CRM platform for managing leads, marketing, and sales.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["HIGHLEVEL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -2002,7 +2001,7 @@ A collaborative CRM built for fast-moving teams.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["ATTIO"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -2049,7 +2048,7 @@ A widely used email platform with powerful organizational tools.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["GMAIL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -2092,7 +2091,7 @@ A marketing platform for email campaigns and audience management.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["MAILCHIMP"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -2135,7 +2134,7 @@ A marketing platform for email campaigns and audience management.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["BREVO"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -2178,7 +2177,7 @@ Simplifies email marketing with a beginner-friendly interface and tools.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["SELZY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -2221,7 +2220,7 @@ An email marketing platform focused on personalization and eCommerce.
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["KLAVIYO"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -2264,7 +2263,7 @@ Provides customer engagement and retention through personalized messaging campai
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ apps: ["CLEVERTAP"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
diff --git a/docs/swekit-examples/introduction.mdx b/docs/swekit-examples/introduction.mdx
index 16b5810904d..a916882bb34 100644
--- a/docs/swekit-examples/introduction.mdx
+++ b/docs/swekit-examples/introduction.mdx
@@ -1,7 +1,6 @@
---
title: "SWE Kit: PR Review Agent"
sidebarTitle: "PR Review Agent"
-icon: "github"
description: "Build a PR Review agent with SWE Kit"
---
diff --git a/docs/swekit-js/introduction.mdx b/docs/swekit-js/introduction.mdx
index 984b4647c08..281b29efa83 100644
--- a/docs/swekit-js/introduction.mdx
+++ b/docs/swekit-js/introduction.mdx
@@ -1,7 +1,6 @@
---
title: "SWE Development Kit"
sidebarTitle: "Introduction (JS)"
-icon: "code"
description: "Build and benchmark Software Engineering agents with Composio's tooling ecosystem using JavaScript"
---
diff --git a/docs/swekit-js/workspace-env.mdx b/docs/swekit-js/workspace-env.mdx
index 58fddcb35e2..ad6768bbeaa 100644
--- a/docs/swekit-js/workspace-env.mdx
+++ b/docs/swekit-js/workspace-env.mdx
@@ -1,7 +1,6 @@
---
title: "Workspace Environments"
sidebarTitle: "Workspace Environments"
-icon: "server"
description: "Configure and utilize different workspace environments for running your SWE agents"
---
diff --git a/docs/swekit-tools/introduction.mdx b/docs/swekit-tools/introduction.mdx
index b95d7ba1b87..67b23c0a801 100644
--- a/docs/swekit-tools/introduction.mdx
+++ b/docs/swekit-tools/introduction.mdx
@@ -1,7 +1,6 @@
---
title: "Tools For SWE Kit"
sidebarTitle: "Tools"
-icon: "hammer"
description: "List of tools you can use for your SWE Kit Development, compatible with agentic frameworks like CrewAI, LangChain, and LlamaIndex etc. These utilities enable file system operations, command execution, and other core development tasks"
---
@@ -42,7 +41,7 @@ description: "List of tools you can use for your SWE Kit Development, compatible
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_OPEN_FILE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -89,7 +88,7 @@ description: "List of tools you can use for your SWE Kit Development, compatible
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_OPEN_FILE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -136,7 +135,7 @@ description: "List of tools you can use for your SWE Kit Development, compatible
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_EDIT_FILE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -182,7 +181,7 @@ Creates a new file or directory within a shell session
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_CREATE_FILE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -228,7 +227,7 @@ Scrolls the view of the opened file up or down by 100 lines
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_SCROLL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -274,7 +273,7 @@ Scrolls the view of the opened file up or down by 100 lines
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_SCROLL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -320,7 +319,7 @@ Lists files and directories in the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_LIST_FILES"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -366,7 +365,7 @@ Search for a specific word or phrase across multiple files in your workspace by
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_SEARCH_WORD"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -412,7 +411,7 @@ Finds files or directories matching the given pattern in the workspace
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_FIND_FILE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -458,7 +457,7 @@ Write the given content to a file
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_WRITE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -504,7 +503,7 @@ Changes the current working directory of the file manager to the specified path
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_CHANGE_WORKING_DIRECTORY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -550,7 +549,7 @@ This action allows you to clone a Git repository to your local directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_GIT_CLONE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -596,7 +595,7 @@ Creates a tree representation of the Git repository
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_GIT_REPO_TREE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -642,7 +641,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["FILETOOL_GIT_PATCH"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -689,7 +688,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_ANALYSIS_TOOL_CREATE_CODE_MAP"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -732,7 +731,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "npf6zezgodpzr3r19bdu9" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_ANALYSIS_TOOL_GET_CLASS_INFO"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -778,7 +777,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_ANALYSIS_TOOL_GET_METHOD_BODY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -824,7 +823,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_ANALYSIS_TOOL_GET_METHOD_SIGNATURE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -870,7 +869,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_ANALYSIS_TOOL_GET_RELEVANT_CODE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -920,7 +919,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["SHELLTOOL_EXEC_COMMAND"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -967,7 +966,7 @@ Get the patch from the current working directory
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["SHELLTOOL_CREATE_SHELL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1014,7 +1013,7 @@ Spawn a process
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["SHELLTOOL_SPAWN_PROCESS"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1060,7 +1059,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["SHELLTOOL_TEST_COMMAND"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1111,7 +1110,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["RAGTOOL_ADD_CONTENT_TO_RAG_TOOL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1157,7 +1156,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["RAGTOOL_ADD_CONTENT_TO_RAG_TOOL"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1206,7 +1205,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["EMBED_TOOL_CREATE_IMAGE_VECTOR_STORE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1252,7 +1251,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["EMBED_TOOL_QUERY_IMAGE_VECTOR_STORE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1302,7 +1301,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["SQLTOOL_SQL_QUERY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1348,7 +1347,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_GREP_TOOL_SEARCH_CODEBASE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1391,7 +1390,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["CODE_FORMAT_TOOL_FORMAT_AND_LINT_CODEBASE"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
@@ -1437,7 +1436,7 @@ Run the command for testing the patch
const prompt = await pull("hwchase17/openai-functions-agent");
- const toolset = new LangchainToolSet({ apiKey: "" });
+ const toolset = new LangchainToolSet({ apiKey: "" });
const tools = await toolset.getTools({ actions: ["HISTORY_FETCHER_GET_WORKSPACE_HISTORY"] });
const agent = await createOpenAIFunctionsAgent({llm, tools, prompt});
diff --git a/docs/swekit/benchmarks.mdx b/docs/swekit/benchmarks.mdx
index 3a693b46877..8be1697c338 100644
--- a/docs/swekit/benchmarks.mdx
+++ b/docs/swekit/benchmarks.mdx
@@ -1,7 +1,6 @@
---
title: "Benchmarks"
sidebarTitle: "SWE Kit Benchmarks"
-icon: "chart-line"
description: "Learn how to run and evaluate your SWE agents using benchmarks"
---
diff --git a/docs/swekit/custom-tools.mdx b/docs/swekit/custom-tools.mdx
index 9fe3f882069..d11a950647e 100644
--- a/docs/swekit/custom-tools.mdx
+++ b/docs/swekit/custom-tools.mdx
@@ -1,7 +1,6 @@
---
title: "Adding Custom Tools"
sidebarTitle: "Custom Tools"
-icon: "puzzle-piece"
description: "Learn how to extend the capabilities of your SWE agents by adding custom tools."
---
diff --git a/docs/swekit/introduction.mdx b/docs/swekit/introduction.mdx
index 6c2fec0a119..dadb7e10b08 100644
--- a/docs/swekit/introduction.mdx
+++ b/docs/swekit/introduction.mdx
@@ -1,7 +1,6 @@
---
title: "SWE Development Kit"
sidebarTitle: "Introduction (Python)"
-icon: "code"
description: "Build Software Engineering agents locally with frameworks and tools of your choice"
---
diff --git a/docs/swekit/workspace-env.mdx b/docs/swekit/workspace-env.mdx
index 9067a7428ca..01f3174792c 100644
--- a/docs/swekit/workspace-env.mdx
+++ b/docs/swekit/workspace-env.mdx
@@ -1,7 +1,6 @@
---
title: "Workspace Environments"
sidebarTitle: "Workspace Environments"
-icon: "server"
description: "Configure and utilize different workspace environments for running your SWE agents securely and with custom configurations."
---
diff --git a/js/examples/newsletter_twitter_threads/demo.mjs b/js/examples/newsletter_twitter_threads/demo.mjs
index bff43ee239d..fd1388ddb3b 100644
--- a/js/examples/newsletter_twitter_threads/demo.mjs
+++ b/js/examples/newsletter_twitter_threads/demo.mjs
@@ -1,4 +1,5 @@
import { openai } from "@ai-sdk/openai";
+import {groq} from '@ai-sdk/groq'
import { VercelAIToolSet } from "composio-core";
import dotenv from "dotenv";
import { generateText } from "ai";
@@ -36,7 +37,7 @@ async function executeAgent(entityName) {
// Generate text using the model and tools
const output = await generateText({
- model: openai("gpt-4o"),
+ model: groq("llama-3.3-70b-versatile"),
streamText: false,
tools: tools,
prompt: `
diff --git a/python/composio/__version__.py b/python/composio/__version__.py
index 63af88769b0..7bbb2ef5c08 100644
--- a/python/composio/__version__.py
+++ b/python/composio/__version__.py
@@ -1 +1 @@
-__version__ = "0.6.3"
+__version__ = "0.6.5"
diff --git a/python/composio/client/enums/action.pyi b/python/composio/client/enums/action.pyi
index a2c00519dba..0cf296aa1d3 100644
--- a/python/composio/client/enums/action.pyi
+++ b/python/composio/client/enums/action.pyi
@@ -2613,11 +2613,11 @@ class Action(Enum[ActionData], metaclass=EnumGenerator):
FILETOOL_SCROLL: "Action"
FILETOOL_SEARCH_WORD: "Action"
FILETOOL_WRITE: "Action"
- FIRECRAWL_CANCEL_A_CRAWL_JOB: "Action"
- FIRECRAWL_CRAWL_MULTIPLE_URLS_BASED_ON_OPTIONS: "Action"
- FIRECRAWL_GET_THE_STATUS_OF_A_CRAWL_JOB: "Action"
- FIRECRAWL_MAP_MULTIPLE_URLS_BASED_ON_OPTIONS: "Action"
- FIRECRAWL_SCRAPE_AND_OPTIONALLY_EXTRACT_DATA_FROM_A_URL_USING_LLM: "Action"
+ FIRECRAWL_CANCEL_CRAWL_JOB: "Action"
+ FIRECRAWL_CRAWL_JOB_STATUS: "Action"
+ FIRECRAWL_CRAWL_URLS: "Action"
+ FIRECRAWL_MAP_URLS: "Action"
+ FIRECRAWL_SCRAPE_EXTRACT_DATA_LLM: "Action"
FRESHDESK_CREATE_TICKET: "Action"
FRESHDESK_DELETE_TICKET: "Action"
FRESHDESK_GET_TICKETS: "Action"
@@ -3643,6 +3643,18 @@ class Action(Enum[ActionData], metaclass=EnumGenerator):
GOOGLETASKS_LIST_TASK_LISTS: "Action"
GOOGLETASKS_PATCH_TASK: "Action"
GOOGLETASKS_PATCH_TASK_LIST: "Action"
+ GOOGLE_PHOTOS_ADD_ENRICHMENT: "Action"
+ GOOGLE_PHOTOS_BATCH_ADD_MEDIA_ITEMS: "Action"
+ GOOGLE_PHOTOS_BATCH_CREATE_MEDIA_ITEMS: "Action"
+ GOOGLE_PHOTOS_BATCH_GET_MEDIA_ITEMS: "Action"
+ GOOGLE_PHOTOS_CREATE_ALBUM: "Action"
+ GOOGLE_PHOTOS_GET_ALBUM: "Action"
+ GOOGLE_PHOTOS_GET_MEDIA_ITEM_DOWNLOAD: "Action"
+ GOOGLE_PHOTOS_LIST_ALBUMS: "Action"
+ GOOGLE_PHOTOS_LIST_MEDIA_ITEMS: "Action"
+ GOOGLE_PHOTOS_SEARCH_MEDIA_ITEMS: "Action"
+ GOOGLE_PHOTOS_UPDATE_MEDIA_ITEM: "Action"
+ GOOGLE_PHOTOS_UPLOAD_MEDIA: "Action"
GREPTILE_CODE_QUERY: "Action"
HACKERNEWS_GET_FRONTPAGE: "Action"
HACKERNEWS_GET_ITEM_WITH_ID: "Action"
@@ -3882,6 +3894,49 @@ class Action(Enum[ActionData], metaclass=EnumGenerator):
INDUCED_AI_GET_DATA_EXTRACTION_STATUS: "Action"
INDUCED_AI_PERFORM_AUTONOMOUS_TASK: "Action"
INDUCED_AI_STOP_AUTONOMOUS_TASK: "Action"
+ INTERCOM_ADD_SUBSCRIPTION_TO_A_CONTACT: "Action"
+ INTERCOM_ADD_TAG_TO_A_CONTACT: "Action"
+ INTERCOM_ATTACH_A_CONTACT_TO_A_COMPANY: "Action"
+ INTERCOM_CREATE_AN_ARTICLE: "Action"
+ INTERCOM_CREATE_A_COLLECTION: "Action"
+ INTERCOM_CREATE_A_NOTE: "Action"
+ INTERCOM_CREATE_OR_UPDATE_A_COMPANY: "Action"
+ INTERCOM_DELETE_AN_ARTICLE: "Action"
+ INTERCOM_DELETE_A_COLLECTION: "Action"
+ INTERCOM_DELETE_A_COMPANY: "Action"
+ INTERCOM_DELETE_A_CONTACT: "Action"
+ INTERCOM_DETACH_A_CONTACT_FROM_A_COMPANY: "Action"
+ INTERCOM_GET_A_CONTACT: "Action"
+ INTERCOM_IDENTIFY_AN_ADMIN: "Action"
+ INTERCOM_LIST_ALL_ACTIVITY_LOGS: "Action"
+ INTERCOM_LIST_ALL_ADMINS: "Action"
+ INTERCOM_LIST_ALL_ARTICLES: "Action"
+ INTERCOM_LIST_ALL_COLLECTIONS: "Action"
+ INTERCOM_LIST_ALL_COMPANIES: "Action"
+ INTERCOM_LIST_ALL_HELP_CENTERS: "Action"
+ INTERCOM_LIST_ALL_NOTES: "Action"
+ INTERCOM_LIST_ATTACHED_COMPANIES_FOR_CONTACT: "Action"
+ INTERCOM_LIST_ATTACHED_CONTACTS: "Action"
+ INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_COMPANIES: "Action"
+ INTERCOM_LIST_ATTACHED_SEGMENTS_FOR_CONTACT: "Action"
+ INTERCOM_LIST_SUBSCRIPTIONS_FOR_A_CONTACT: "Action"
+ INTERCOM_LIST_TAGS_ATTACHED_TO_A_CONTACT: "Action"
+ INTERCOM_MERGE_A_LEAD_AND_A_USER: "Action"
+ INTERCOM_REMOVE_SUBSCRIPTION_FROM_A_CONTACT: "Action"
+ INTERCOM_REMOVE_TAG_FROM_A_CONTACT: "Action"
+ INTERCOM_RETRIEVE_AN_ADMIN: "Action"
+ INTERCOM_RETRIEVE_AN_ARTICLE: "Action"
+ INTERCOM_RETRIEVE_A_COLLECTION: "Action"
+ INTERCOM_RETRIEVE_A_COMPANY_BY_ID: "Action"
+ INTERCOM_RETRIEVE_A_HELP_CENTER: "Action"
+ INTERCOM_RETRIEVE_COMPANIES: "Action"
+ INTERCOM_SCROLL_OVER_ALL_COMPANIES: "Action"
+ INTERCOM_SEARCH_FOR_ARTICLES: "Action"
+ INTERCOM_SET_AN_ADMIN_TO_AWAY: "Action"
+ INTERCOM_UPDATE_AN_ARTICLE: "Action"
+ INTERCOM_UPDATE_A_COLLECTION: "Action"
+ INTERCOM_UPDATE_A_COMPANY: "Action"
+ INTERCOM_UPDATE_A_CONTACT: "Action"
JIRA_ADD_ACTORS_TO_PROJECT_ROLE: "Action"
JIRA_ADD_ATTACHMENT: "Action"
JIRA_ADD_COMMENT: "Action"
@@ -4651,12 +4706,15 @@ class Action(Enum[ActionData], metaclass=EnumGenerator):
LINEAR_CREATE_LINEAR_COMMENT: "Action"
LINEAR_CREATE_LINEAR_ISSUE: "Action"
LINEAR_CREATE_LINEAR_LABEL: "Action"
+ LINEAR_GET_ATTACHMENTS: "Action"
+ LINEAR_GET_LINEAR_ISSUE: "Action"
LINEAR_LIST_LINEAR_ISSUES: "Action"
LINEAR_LIST_LINEAR_LABELS: "Action"
LINEAR_LIST_LINEAR_PROJECTS: "Action"
LINEAR_LIST_LINEAR_TEAMS: "Action"
LINKEDIN_CREATE_LINKED_IN_POST: "Action"
LINKEDIN_DELETE_LINKED_IN_POST: "Action"
+ LINKEDIN_GET_COMPANY_INFO: "Action"
LINKEDIN_GET_MY_INFO: "Action"
LISTENNOTES_BATCH_FETCH_BASIC_META_DATA_FOR_EPISODES: "Action"
LISTENNOTES_BATCH_FETCH_BASIC_META_DATA_FOR_PODCASTS: "Action"
@@ -5062,14 +5120,18 @@ class Action(Enum[ActionData], metaclass=EnumGenerator):
PEOPLEDATALABS_CLEAN_COMPANY_DATA: "Action"
PEOPLEDATALABS_CLEAN_LOCATION_DATA: "Action"
PEOPLEDATALABS_CLEAN_SCHOOL_DATA: "Action"
+ PEOPLEDATALABS_COMPANY_SEARCH_ELASTIC: "Action"
PEOPLEDATALABS_ENRICH_COMPANY_DATA: "Action"
PEOPLEDATALABS_ENRICH_IP_DATA: "Action"
PEOPLEDATALABS_ENRICH_PERSON_DATA: "Action"
PEOPLEDATALABS_ENRICH_SKILL_DATA: "Action"
+ PEOPLEDATALABS_GET_COLUMN_DETAILS: "Action"
+ PEOPLEDATALABS_GET_SCHEMA: "Action"
PEOPLEDATALABS_IDENTIFY_PERSON_DATA: "Action"
+ PEOPLEDATALABS_NATURAL_LANGUAGE_QUERY_ACTION: "Action"
+ PEOPLEDATALABS_PEOPLE_SEARCH_ELASTIC: "Action"
PEOPLEDATALABS_SEARCH_COMPANY_DATA: "Action"
PEOPLEDATALABS_SEARCH_PERSON_DATA: "Action"
- PEOPLEDATALABS_SEARCH_PERSON_DATA_ELASTIC: "Action"
PERPLEXITYAI_PERPLEXITY_AI_SEARCH: "Action"
PIPEDRIVE_ADD_AN_ACTIVITY: "Action"
PIPEDRIVE_ADD_AN_INSTALLMENT_SUBSCRIPTION: "Action"
@@ -7113,6 +7175,12 @@ class Action(Enum[ActionData], metaclass=EnumGenerator):
ZEPTOOL_CREATE_SESSION: "Action"
ZEPTOOL_GET_MEMORY: "Action"
ZEPTOOL_SEARCH_MEMORY: "Action"
+ ZOHO_CONVERT_ZOHO_LEAD: "Action"
+ ZOHO_CREATE_ZOHO_RECORD: "Action"
+ ZOHO_CREATE_ZOHO_TAG: "Action"
+ ZOHO_GET_ZOHO_RECORDS: "Action"
+ ZOHO_UPDATE_RELATED_RECORDS: "Action"
+ ZOHO_UPDATE_ZOHO_RECORD: "Action"
ZOOM_ADD_A_MEETING_REGISTRANT: "Action"
ZOOM_ADD_A_NEW_DEVICE: "Action"
ZOOM_ADD_A_USER_S_TSP_ACCOUNT: "Action"
diff --git a/python/composio/client/enums/app.pyi b/python/composio/client/enums/app.pyi
index f840187ee00..f4368dd706c 100644
--- a/python/composio/client/enums/app.pyi
+++ b/python/composio/client/enums/app.pyi
@@ -131,6 +131,7 @@ class App(Enum[AppData], metaclass=EnumGenerator):
GOOGLESHEETS: "App"
GOOGLETASKS: "App"
GOOGLE_ANALYTICS: "App"
+ GOOGLE_PHOTOS: "App"
GORGIAS: "App"
GO_TO_WEBINAR: "App"
GREPTILE: "App"
diff --git a/python/composio/client/enums/tag.pyi b/python/composio/client/enums/tag.pyi
index 8af922743ae..bdbd66545a1 100644
--- a/python/composio/client/enums/tag.pyi
+++ b/python/composio/client/enums/tag.pyi
@@ -410,10 +410,7 @@ class Tag(Enum[TagData], metaclass=EnumGenerator):
FIGMA_USERS: "Tag"
FIGMA_VARIABLES: "Tag"
FIGMA_WEBHOOKS: "Tag"
- FIRECRAWL_CRAWLING: "Tag"
FIRECRAWL_IMPORTANT: "Tag"
- FIRECRAWL_MAPPING: "Tag"
- FIRECRAWL_SCRAPING: "Tag"
GITHUB_ACTIONS: "Tag"
GITHUB_ACTIVITY: "Tag"
GITHUB_APPS: "Tag"
@@ -482,6 +479,16 @@ class Tag(Enum[TagData], metaclass=EnumGenerator):
HUBSPOT_TEMPLATES: "Tag"
HUBSPOT_TOKENS: "Tag"
HUBSPOT_TYPES: "Tag"
+ INTERCOM_ADMINS: "Tag"
+ INTERCOM_ARTICLES: "Tag"
+ INTERCOM_COMPANIES: "Tag"
+ INTERCOM_CONTACTS: "Tag"
+ INTERCOM_HELP_CENTER: "Tag"
+ INTERCOM_IMPORTANT: "Tag"
+ INTERCOM_NOTES: "Tag"
+ INTERCOM_SEGMENTS: "Tag"
+ INTERCOM_SUBSCRIPTION_TYPES: "Tag"
+ INTERCOM_TAGS: "Tag"
JIRA_ANNOUNCEMENT_BANNER: "Tag"
JIRA_APPLICATION_ROLES: "Tag"
JIRA_APP_DATA_POLICIES__EAP_: "Tag"
@@ -643,6 +650,7 @@ class Tag(Enum[TagData], metaclass=EnumGenerator):
NOTION_IMPORTANT: "Tag"
OUTLOOK_EMAIL: "Tag"
OUTLOOK_IMPORTANT: "Tag"
+ PEOPLEDATALABS_IMPORTANT: "Tag"
PIPEDRIVE_ACTIVITIES: "Tag"
PIPEDRIVE_ACTIVITYFIELDS: "Tag"
PIPEDRIVE_ACTIVITYTYPES: "Tag"
@@ -968,6 +976,15 @@ class Tag(Enum[TagData], metaclass=EnumGenerator):
WRIKE_TASKS: "Tag"
WRIKE_USERS: "Tag"
WRIKE_WORKFLOWS: "Tag"
+ ZOHO_CONVERT: "Tag"
+ ZOHO_CREATE: "Tag"
+ ZOHO_FETCH: "Tag"
+ ZOHO_LEADS: "Tag"
+ ZOHO_RECORDS: "Tag"
+ ZOHO_RELATEDRECORDS: "Tag"
+ ZOHO_TAGS: "Tag"
+ ZOHO_UPDATE: "Tag"
+ ZOHO_ZOHOCRM: "Tag"
ZOOM_ARCHIVING: "Tag"
ZOOM_CLOUD_RECORDING: "Tag"
ZOOM_DEVICES: "Tag"
diff --git a/python/composio/client/enums/trigger.pyi b/python/composio/client/enums/trigger.pyi
index 69fd70c5d5d..6a7c3b42270 100644
--- a/python/composio/client/enums/trigger.pyi
+++ b/python/composio/client/enums/trigger.pyi
@@ -34,6 +34,8 @@ class Trigger(Enum[TriggerData], metaclass=EnumGenerator):
MAILCHIMP_MAILCHIMP_SUBSCRIBE_TRIGGER: "Trigger"
MAILCHIMP_MAILCHIMP_UNSUBSCRIBE_TRIGGER: "Trigger"
NOTION_PAGE_ADDED_TO_DATABASE: "Trigger"
+ NOTION_PAGE_ADDED_TRIGGER: "Trigger"
+ NOTION_PAGE_UPDATED_TRIGGER: "Trigger"
ONE_DRIVE_ONE_DRIVE_ITEM_TRIGGER: "Trigger"
OUTLOOK_OUTLOOK_MESSAGE_TRIGGER: "Trigger"
PIPEDRIVE_PIPEDRIVE_NEW_DEAL_TRIGGER: "Trigger"
diff --git a/python/composio/tools/base/abs.py b/python/composio/tools/base/abs.py
index bbcaf0c04ee..589f5a54ca3 100644
--- a/python/composio/tools/base/abs.py
+++ b/python/composio/tools/base/abs.py
@@ -3,6 +3,7 @@
import hashlib
import inspect
import json
+import textwrap
import typing as t
from abc import abstractmethod
from pathlib import Path
@@ -376,8 +377,8 @@ def validate(obj: t.Type["Tool"], name: str, methods: t.Tuple[str, ...]) -> None
f"Please implement {name}.{method} as class method"
)
- @staticmethod
- def set_metadata(obj: t.Type["Tool"]) -> None:
+ @classmethod
+ def set_metadata(cls, obj: t.Type["Tool"]) -> None:
setattr(obj, "file", Path(inspect.getfile(obj)))
setattr(obj, "gid", getattr(obj, "gid", "local"))
setattr(obj, "name", getattr(obj, "name", inflection.underscore(obj.__name__)))
@@ -391,7 +392,7 @@ def set_metadata(obj: t.Type["Tool"]) -> None:
inflection.humanize(inflection.underscore(obj.__name__)),
),
)
- setattr(obj, "description", (obj.__doc__ or obj.display_name).lstrip().rstrip())
+ setattr(obj, "description", cls._get_description(obj=obj))
setattr(obj, "_actions", getattr(obj, "_actions", {}))
setattr(obj, "_triggers", getattr(obj, "_triggers", {}))
@@ -426,6 +427,18 @@ def setup_children(obj: t.Type["Tool"]) -> None:
if hasattr(obj, "logo"):
setattr(trigger, "logo", getattr(obj, "logo"))
+ @staticmethod
+ def _get_description(obj) -> str:
+ return " ".join(
+ line
+ for line in textwrap.dedent(
+ (obj.__doc__ if obj.__doc__ else obj.display_name)
+ )
+ .strip()
+ .splitlines()
+ if line
+ )
+
class Tool(WithLogger, _Attributes):
"""Tool abstraction."""
diff --git a/python/composio/tools/env/host/workspace.py b/python/composio/tools/env/host/workspace.py
index 619c0d58534..846aa355fd6 100644
--- a/python/composio/tools/env/host/workspace.py
+++ b/python/composio/tools/env/host/workspace.py
@@ -72,6 +72,8 @@ class HostWorkspace(Workspace):
_browsers: t.Optional[Browsers] = None
_filemanagers: t.Optional[FileManagers] = None
+ _is_ssh_client_set_up: bool
+
def __init__(self, config: Config):
"""Initialize host workspace."""
super().__init__(config=config)
@@ -84,6 +86,9 @@ def __init__(self, config: Config):
def setup(self) -> None:
"""Setup workspace."""
+ self._is_ssh_client_set_up = False
+
+ def _setup_ssh_client(self) -> None:
try:
self.logger.debug(f"Setting up SSH client for workspace {self.id}")
self._ssh = paramiko.SSHClient()
@@ -106,9 +111,13 @@ def setup(self) -> None:
)
self.logger.debug("Using shell over `subprocess.Popen`")
self._ssh = None
+ self._is_ssh_client_set_up = True
def _create_shell(self) -> Shell:
"""Create host shell."""
+ if not self._is_ssh_client_set_up:
+ self._setup_ssh_client()
+
if self._ssh is not None:
return SSHShell(client=self._ssh, environment=self.environment)
return HostShell(environment=self.environment)
diff --git a/python/composio/tools/toolset.py b/python/composio/tools/toolset.py
index 9ff84e7fdf7..2ae6871b65e 100644
--- a/python/composio/tools/toolset.py
+++ b/python/composio/tools/toolset.py
@@ -1141,6 +1141,7 @@ def get_apps(
include_local: bool = True,
) -> t.List[AppModel]:
apps = self.client.apps.get()
+ print(apps)
if no_auth is not None:
apps = [a for a in apps if a.no_auth is no_auth]
diff --git a/python/dockerfiles/Dockerfile b/python/dockerfiles/Dockerfile
index f02ae8f2581..83b78ca9fdb 100644
--- a/python/dockerfiles/Dockerfile
+++ b/python/dockerfiles/Dockerfile
@@ -19,7 +19,7 @@ RUN /bin/python3 -m venv .composio/venv
RUN export PATH=$PATH:$(pwd)/.composio/venv/bin
# Install composio
-RUN python -m pip install composio-core[all]==0.6.3 fastapi playwright uvicorn
+RUN python -m pip install composio-core[all]==0.6.5 fastapi playwright uvicorn
# Install playwright deps
RUN playwright install-deps
diff --git a/python/examples/advanced_agents/recruiter_agent/.env.example b/python/examples/advanced_agents/recruiter_agent/.env.example
new file mode 100644
index 00000000000..499ab384977
--- /dev/null
+++ b/python/examples/advanced_agents/recruiter_agent/.env.example
@@ -0,0 +1,3 @@
+OPENAI_API_KEY=KEY
+COMPOSIO_API_KEY=KEY
+AGENTOPS_API_KEY=KEY
\ No newline at end of file
diff --git a/python/examples/advanced_agents/recruiter_agent/main.py b/python/examples/advanced_agents/recruiter_agent/main.py
new file mode 100644
index 00000000000..72ed7a33517
--- /dev/null
+++ b/python/examples/advanced_agents/recruiter_agent/main.py
@@ -0,0 +1,45 @@
+from composio_llamaindex import ComposioToolSet, App, Action
+from llama_index.core.agent import FunctionCallingAgentWorker
+from llama_index.core.llms import ChatMessage
+from llama_index.llms.groq import Groq
+from dotenv import load_dotenv
+import os
+
+
+load_dotenv()
+import agentops
+agentops.init(os.getenv("AGENTOPS_API_KEY"))
+
+
+toolset = ComposioToolSet(api_key=os.getenv("COMPOSIO_API_KEY"))
+tools = [*toolset.get_tools(apps=[App.GOOGLESHEETS]), *toolset.get_tools(actions=[Action.PEOPLEDATALABS_NATURAL_LANGUAGE_QUERY_ACTION])]
+
+llm = Groq(model="llama3-groq-70b-8192-tool-use-preview")
+
+# Set up prefix messages for the agent
+prefix_messages = [
+ ChatMessage(
+ role="system",
+ content=(
+ f"""
+ You are a recruiter agent. Based on user input, identify 10 highly qualified candidates using People Data Labs.
+ After identifying the candidates, create a Google Sheet and add their details for the provided candidate description.
+ Print the list of candidates and their details along with the Linkedin profile to the Google Sheet.
+ """
+ ),
+ )
+]
+
+agent = FunctionCallingAgentWorker(
+ tools=tools,
+ llm=llm,
+ prefix_messages=prefix_messages,
+ max_function_calls=10,
+ allow_parallel_tool_calls=False,
+ verbose=True,
+).as_agent()
+
+candidate_description = '10 Senior Python Developers working in seed to series A startups living in San Francisco'
+user_input = f"Create a candidate list based on the description: {candidate_description}. Include all the important details required for the job. Add all of it the google sheet."
+response = agent.chat(user_input)
+print(response)
\ No newline at end of file
diff --git a/python/examples/advanced_agents/recruiter_agent/readme.md b/python/examples/advanced_agents/recruiter_agent/readme.md
new file mode 100644
index 00000000000..a747939aa7b
--- /dev/null
+++ b/python/examples/advanced_agents/recruiter_agent/readme.md
@@ -0,0 +1,28 @@
+# Recruiter Agent
+
+This guide offers comprehensive instructions for creating a Recruiter Agent that utilizes Composio and agentic frameworks like LlamaIndex and ChatGPT. This agent is designed to effectively identify candidates for your business and compile all candidate data into a spreadsheet.
+
+## Steps to Run
+
+**Navigate to the Project Directory:**
+Change to the directory where the `setup.sh`, `main.py`, `requirements.txt`, and `README.md` files are located. For example:
+```sh
+cd path/to/project/directory
+```
+
+### 1. Run the Setup File
+Make the setup.sh Script Executable (if necessary):
+On Linux or macOS, you might need to make the setup.sh script executable:
+```shell
+chmod +x setup.sh
+```
+Execute the setup.sh script to set up the environment and install dependencies:
+```shell
+./setup.sh
+```
+Now, fill in the `.env` file with your secrets.
+
+### 2. Run the Python Script
+```shell
+python cookbook/python-examples/advanced_agents/recruiter_agent/main.py
+```
diff --git a/python/examples/advanced_agents/recruiter_agent/requirements.txt b/python/examples/advanced_agents/recruiter_agent/requirements.txt
new file mode 100644
index 00000000000..e034e97f91a
--- /dev/null
+++ b/python/examples/advanced_agents/recruiter_agent/requirements.txt
@@ -0,0 +1,2 @@
+composio-llamaindex
+gradio
\ No newline at end of file
diff --git a/python/examples/advanced_agents/recruiter_agent/setup.sh b/python/examples/advanced_agents/recruiter_agent/setup.sh
new file mode 100644
index 00000000000..0a7625f08b8
--- /dev/null
+++ b/python/examples/advanced_agents/recruiter_agent/setup.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+# Create a virtual environment named sqlagent
+echo "Creating virtual environment..."
+python3 -m venv recruiter
+
+# Activate the virtual environment
+echo "Activating virtual environment..."
+source recruiter/bin/activate
+
+# Install libraries from requirements.txt
+echo "Installing libraries from requirements.txt..."
+pip install -r requirements.txt
+
+# Copy env backup to .env file
+if [ -f ".env.example" ]; then
+ echo "Copying .env.example to .env..."
+ cp .env.example .env
+else
+ echo "No .env.example file found. Creating a new .env file..."
+ touch .env
+fi
+
+# Prompt the user to enter the OPENAI_API_KEY
+read -p "Enter your OPENAI_API_KEY: " OPENAI_API_KEY
+
+# Update the .env file with the entered OPENAI_API_KEY
+sed -i "s/^OPENAI_API_KEY=.*$/OPENAI_API_KEY=$OPENAI_API_KEY/" .env
+
+echo "OPENAI_API_KEY has been set in the .env file"
+
+echo "Please fill in the .env file with any other necessary environment variables."
+
+echo "Setup completed successfully!"
diff --git a/python/examples/miscellaneous/multi_entity.py b/python/examples/miscellaneous/multi_entity.py
index da3cb624af1..d1fbe2d9d90 100644
--- a/python/examples/miscellaneous/multi_entity.py
+++ b/python/examples/miscellaneous/multi_entity.py
@@ -1,6 +1,7 @@
import os
import time
from composio_langchain import Action, App, ComposioToolSet
+from fastapi import params
from langchain import hub # type: ignore
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_openai import ChatOpenAI
@@ -14,17 +15,16 @@
# Pull relevant agent model.
prompt = hub.pull("hwchase17/openai-functions-agent")
-def initialize_listennotes(entity_id: str, toolset: ComposioToolSet, listennotes_api_key: str) -> t.Optional[t.Sequence[StructuredTool]]:
+def initialize_peopledatalabs(entity_id: str, toolset: ComposioToolSet, peopledatalabs_api_key: str) -> t.Optional[t.Sequence[StructuredTool]]:
try:
entity = toolset.get_entity(id=entity_id)
try:
- entity.get_connection(app=App.LISTENNOTES)
+ entity.get_connection(app=App.PEOPLEDATALABS)
except Exception as e:
print("Exception in getting connection", e)
- auth_config = {"api_key": listennotes_api_key}
-
+ auth_config = {"api_key": peopledatalabs_api_key}
connection_request = entity.initiate_connection(
- app_name=App.LISTENNOTES,
+ app_name=App.PEOPLEDATALABS,
auth_mode="API_KEY",
auth_config=auth_config,
)
@@ -35,45 +35,45 @@ def initialize_listennotes(entity_id: str, toolset: ComposioToolSet, listennotes
)
if not connected_account:
- print("Failed to establish a connection with ListenNotes tool")
+ print("Failed to establish a connection with PeopleDataLabs tool")
return None
- listennotes_tool = toolset.get_tools(
- actions=[Action.LISTENNOTES_FETCH_A_LIST_OF_SUPPORTED_LANGUAGES_FOR_PODCASTS],
+ peopledatalabs_tool = toolset.get_tools(
+ actions=[Action.PEOPLEDATALABS_CLEAN_LOCATION_DATA],
entity_id=entity_id,
)
- return listennotes_tool
+ return peopledatalabs_tool
except Exception as e:
- print("Exception in initializing listennotes tool", e)
+ print("Exception in initializing peopledatalabs tool", e)
try:
error_data = json.loads(str(e))
status = error_data.get("status")
message = error_data.get("message")
- print(f"Error initializing ListenNotes tool\n\nStatus: {status}\n\nMessage: {message}")
- raise ValueError(f"Error initializing ListenNotes tool\n\nStatus: {status}\n\nMessage: {message}")
+ print(f"Error initializing PeopleDataLabs tool\n\nStatus: {status}\n\nMessage: {message}")
+ raise ValueError(f"Error initializing PeopleDataLabs tool\n\nStatus: {status}\n\nMessage: {message}")
except json.JSONDecodeError:
- print(f"Error initializing ListenNotes tool\n\n{e}")
- raise ValueError(f"Error initializing ListenNotes tool\n\n{e}")
+ print(f"Error initializing PeopleDataLabs tool\n\n{e}")
+ raise ValueError(f"Error initializing PeopleDataLabs tool\n\n{e}")
if __name__ == "__main__":
toolset = ComposioToolSet()
- listennotes_api_key = os.environ.get("LISTENNOTES_API_KEY")
- if not listennotes_api_key:
- raise ValueError("LISTENNOTES_API_KEY is not set")
+ peopledatalabs_api_key = os.environ.get("PDL_API_KEY")
+ if not peopledatalabs_api_key:
+ raise ValueError("PDL_API_KEY is not set")
# Generate a timestamp-based entity ID
timestamp_entity_id = f"entity_{int(time.time())}"
- listennotes_tools = initialize_listennotes(entity_id=timestamp_entity_id, toolset=toolset, listennotes_api_key=listennotes_api_key)
+ peopledatalabs_tools = initialize_peopledatalabs(entity_id=timestamp_entity_id, toolset=toolset, peopledatalabs_api_key=peopledatalabs_api_key)
# Define task
- task = "Fetch a list of supported languages for podcasts"
+ task = "Clean the location data for the following: sf"
# Define agent
- agent = create_openai_functions_agent(openai_client, listennotes_tools or [], prompt)
- agent_executor = AgentExecutor(agent=agent, tools=listennotes_tools or [], verbose=True)
+ agent = create_openai_functions_agent(openai_client, peopledatalabs_tools or [], prompt)
+ agent_executor = AgentExecutor(agent=agent, tools=peopledatalabs_tools or [], verbose=True)
# Execute using agent_executor
agent_executor.invoke({"input": task})
diff --git a/python/plugins/autogen/setup.py b/python/plugins/autogen/setup.py
index 902ba6e6023..4e2ade1d5a1 100644
--- a/python/plugins/autogen/setup.py
+++ b/python/plugins/autogen/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_autogen",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your Autogen agent.",
diff --git a/python/plugins/camel/setup.py b/python/plugins/camel/setup.py
index cd5e9bcda73..45c5037a560 100644
--- a/python/plugins/camel/setup.py
+++ b/python/plugins/camel/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_camel",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your Claude LLMs.",
diff --git a/python/plugins/claude/setup.py b/python/plugins/claude/setup.py
index 5de58aa4107..de410253f2e 100644
--- a/python/plugins/claude/setup.py
+++ b/python/plugins/claude/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_claude",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your Claude LLMs.",
diff --git a/python/plugins/crew_ai/setup.py b/python/plugins/crew_ai/setup.py
index 9c3e454d10d..987b740a8ff 100644
--- a/python/plugins/crew_ai/setup.py
+++ b/python/plugins/crew_ai/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_crewai",
- version="0.6.3",
+ version="0.6.5",
author="Himanshu",
author_email="himanshu@composio.dev",
description="Use Composio to get an array of tools with your CrewAI agent.",
diff --git a/python/plugins/google/setup.py b/python/plugins/google/setup.py
index c7eb59856ce..6c6e76fc203 100644
--- a/python/plugins/google/setup.py
+++ b/python/plugins/google/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_google",
- version="0.6.3",
+ version="0.6.5",
author="Assistant",
author_email="karan@composio.dev",
description="Use Composio to get an array of tools with your Google AI Python Gemini model.",
diff --git a/python/plugins/griptape/setup.py b/python/plugins/griptape/setup.py
index 85e380738ec..1789743e3a4 100644
--- a/python/plugins/griptape/setup.py
+++ b/python/plugins/griptape/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_griptape",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your Griptape wokflow.",
diff --git a/python/plugins/julep/setup.py b/python/plugins/julep/setup.py
index c24cf780f9a..7186dda688c 100644
--- a/python/plugins/julep/setup.py
+++ b/python/plugins/julep/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_julep",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your Julep wokflow.",
diff --git a/python/plugins/langchain/setup.py b/python/plugins/langchain/setup.py
index 26a4ef79a0d..e7c4849a2fc 100644
--- a/python/plugins/langchain/setup.py
+++ b/python/plugins/langchain/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_langchain",
- version="0.6.3",
+ version="0.6.5",
author="Karan",
author_email="karan@composio.dev",
description="Use Composio to get an array of tools with your LangChain agent.",
diff --git a/python/plugins/langgraph/setup.py b/python/plugins/langgraph/setup.py
index 2906d3800fe..9ea3a7372d0 100644
--- a/python/plugins/langgraph/setup.py
+++ b/python/plugins/langgraph/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_langgraph",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get array of tools with LnagGraph Agent Workflows",
diff --git a/python/plugins/llamaindex/setup.py b/python/plugins/llamaindex/setup.py
index 4c2627cb9a7..93bcfdd2f25 100644
--- a/python/plugins/llamaindex/setup.py
+++ b/python/plugins/llamaindex/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_llamaindex",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your LlamaIndex agent.",
diff --git a/python/plugins/lyzr/setup.py b/python/plugins/lyzr/setup.py
index f2ca824a2f5..51589190a43 100644
--- a/python/plugins/lyzr/setup.py
+++ b/python/plugins/lyzr/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_lyzr",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your Lyzr workflow.",
diff --git a/python/plugins/openai/setup.py b/python/plugins/openai/setup.py
index 1924443982a..2de09449df1 100644
--- a/python/plugins/openai/setup.py
+++ b/python/plugins/openai/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_openai",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your OpenAI Function Call.",
diff --git a/python/plugins/phidata/composio_phidata/toolset.py b/python/plugins/phidata/composio_phidata/toolset.py
index a71f9ba005c..c1d53637f88 100644
--- a/python/plugins/phidata/composio_phidata/toolset.py
+++ b/python/plugins/phidata/composio_phidata/toolset.py
@@ -6,14 +6,14 @@
import typing as t
import typing_extensions as te
-from phi.tools.function import Function
+from phi.tools.toolkit import Toolkit
from pydantic import validate_call
-from composio import Action, ActionType, AppType, TagType
+from composio import Action, ActionType, AppType
+from composio import ComposioToolSet as BaseComposioToolSet
+from composio import TagType
from composio.tools.toolset import ProcessorsType
-from composio_openai import ComposioToolSet as BaseComposioToolSet
-
class ComposioToolSet(
BaseComposioToolSet,
@@ -28,16 +28,27 @@ def _wrap_tool(
self,
schema: t.Dict,
entity_id: t.Optional[str] = None,
- ) -> Function:
+ ) -> Toolkit:
"""
- Wrap composio tool as Phidata `Function` object.
+ Wrap composio tool as Phidata `Toolkit` object.
"""
name = schema["name"]
description = schema["description"]
parameters = schema["parameters"]
+ # Create a new Toolkit instance
+ toolkit = Toolkit(name=name)
+
+ @validate_call
def function(**kwargs: t.Any) -> str:
- """Composio tool wrapped as Phidata `Function`."""
+ """Composio tool wrapped as Phidata `Function`.
+
+ Args:
+ **kwargs: Function parameters based on the schema
+
+ Returns:
+ str: JSON string containing the function execution result
+ """
return json.dumps(
self.execute_action(
action=Action(value=name),
@@ -46,21 +57,31 @@ def function(**kwargs: t.Any) -> str:
)
)
- return Function(
- name=name,
- description=description,
- parameters=parameters,
- entrypoint=validate_call(function),
- )
+ # Set function docstring from schema
+ param_docs = []
+ if "properties" in parameters:
+ for param_name, param_info in parameters["properties"].items():
+ param_desc = param_info.get("description", "No description available")
+ param_type = param_info.get("type", "any")
+ param_docs.append(f":param {param_name}: {param_desc} ({param_type})")
+
+ function.__doc__ = f"{description}\n\n" + "\n".join(param_docs)
+
+ # Register the function with the toolkit
+ toolkit.register(function)
+
+ return toolkit
@te.deprecated("Use `ComposioToolSet.get_tools` instead")
- def get_actions(self, actions: t.Sequence[ActionType]) -> t.List[Function]:
+ def get_actions(self, actions: t.Sequence[ActionType]) -> t.List[Toolkit]:
"""
- Get composio tools wrapped as Phidata `Function` objects.
+ Get composio tools wrapped as Phidata `Toolkit` objects.
+
+ Args:
+ actions: List of actions to wrap
- :param actions: List of actions to wrap
- :param entity_id: Entity ID to use for executing function calls.
- :return: Composio tools wrapped as `Function` objects
+ Returns:
+ List[Toolkit]: Composio tools wrapped as `Toolkit` objects
"""
return self.get_tools(actions=actions)
@@ -72,15 +93,19 @@ def get_tools(
*,
processors: t.Optional[ProcessorsType] = None,
check_connected_accounts: bool = True,
- ) -> t.List[Function]:
+ ) -> t.List[Toolkit]:
"""
- Get composio tools wrapped as Lyzr `Function` objects.
+ Get composio tools wrapped as Phidata `Toolkit` objects.
- :param actions: List of actions to wrap
- :param apps: List of apps to wrap
- :param tags: Filter the apps by given tags
+ Args:
+ actions: List of actions to wrap
+ apps: List of apps to wrap
+ tags: Filter the apps by given tags
+ processors: Optional processors to apply
+ check_connected_accounts: Whether to check for connected accounts
- :return: Composio tools wrapped as `Function` objects
+ Returns:
+ List[Toolkit]: Composio tools wrapped as `Toolkit` objects
"""
self.validate_tools(apps=apps, actions=actions, tags=tags)
if processors is not None:
diff --git a/python/plugins/phidata/phidata_demo.py b/python/plugins/phidata/phidata_demo.py
index ab4b407a246..e9273702407 100644
--- a/python/plugins/phidata/phidata_demo.py
+++ b/python/plugins/phidata/phidata_demo.py
@@ -3,11 +3,10 @@
toolset = ComposioToolSet()
-composio_tools = toolset.get_actions(
+composio_tools = toolset.get_tools(
actions=[Action.GITHUB_STAR_A_REPOSITORY_FOR_THE_AUTHENTICATED_USER]
)
assistant = Assistant(tools=composio_tools, show_tool_calls=True)
assistant.print_response("Can you start composiohq/composio repo?")
-# pprint(tool)
diff --git a/python/plugins/phidata/setup.py b/python/plugins/phidata/setup.py
index c64825629fe..8f51229d2a2 100644
--- a/python/plugins/phidata/setup.py
+++ b/python/plugins/phidata/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_phidata",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio to get an array of tools with your Phidata Plugin.",
diff --git a/python/plugins/praisonai/setup.py b/python/plugins/praisonai/setup.py
index 44a2213fb69..b4eb85a3e8e 100644
--- a/python/plugins/praisonai/setup.py
+++ b/python/plugins/praisonai/setup.py
@@ -9,7 +9,7 @@
setup(
name="composio_praisonai",
- version="0.6.3",
+ version="0.6.5",
author="Sawradip",
author_email="sawradip@composio.dev",
description="Use Composio Tools to enhance your PraisonAI agents capabilities.",
diff --git a/python/setup.py b/python/setup.py
index 5ba049dfe18..ce52710f4b4 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -90,7 +90,7 @@ def scan_for_package_data(
setup(
name="composio_core",
- version="0.6.3",
+ version="0.6.5",
author="Utkarsh",
author_email="utkarsh@composio.dev",
description="Core package to act as a bridge between composio platform and other services.",
diff --git a/python/swe/setup.py b/python/swe/setup.py
index ca23fe70a60..eedf795b1de 100644
--- a/python/swe/setup.py
+++ b/python/swe/setup.py
@@ -35,7 +35,7 @@ def scan_for_package_data(
setup(
name="swekit",
- version="0.3.4",
+ version="0.3.6",
author="Shubhra",
author_email="shubhra@composio.dev",
description="Tools for running a SWE agent using Composio platform",
diff --git a/python/tests/test_example.py b/python/tests/test_example.py
index 1f0965eac8c..8e539e70f96 100644
--- a/python/tests/test_example.py
+++ b/python/tests/test_example.py
@@ -20,7 +20,7 @@
COMPOSIO_API_KEY = os.environ.get("COMPOSIO_API_KEY")
JULEP_API_KEY = os.environ.get("JULEP_API_KEY")
JULEP_API_URL = os.environ.get("JULEP_API_URL")
-LISTENNOTES_API_KEY = os.environ.get("LISTENNOTES_API_KEY")
+PDL_API_KEY = os.environ.get("PDL_API_KEY")
# Plugin test definitions
EXAMPLES = {
@@ -140,33 +140,27 @@
},
"download_file": {
"plugin": "crew_ai",
- "file": "run_issue.py",
+ "file": EXAMPLES_PATH
+ / "quickstarters"
+ / "sql_agent"
+ / "sql_agent_plotter_crewai" / "run_issue.py",
"match": {
"type": "stdout",
- "values": ["composio_output/CODEINTERPRETER_GET_FILE_CMD_default_", ""],
+ "values": ["composio_output/CODEINTERPRETER_GET_FILE_CMD_default_"],
},
"env": {"OPENAI_API_KEY": OPENAI_API_KEY, "COMPOSIO_API_KEY": COMPOSIO_API_KEY},
- "cwd": EXAMPLES_PATH
- / "quickstarters"
- / "sql_agent"
- / "sql_agent_plotter_crewai",
},
"multi_entity_api_key": {
"plugin": "langchain",
"file": EXAMPLES_PATH / "miscellaneous" / "multi_entity.py",
"match": {
"type": "stdout",
- "values": [
- "Invoking: `LISTENNOTES_FETCH_A_LIST_OF_SUPPORTED_LANGUAGES_FOR_PODCASTS`",
- "Any language",
- "Abkhazian",
- "Arabic",
- ],
+ "values": ["san francisco"],
},
"env": {
"OPENAI_API_KEY": OPENAI_API_KEY,
"COMPOSIO_API_KEY": COMPOSIO_API_KEY,
- "LISTENNOTES_API_KEY": LISTENNOTES_API_KEY,
+ "PDL_API_KEY": PDL_API_KEY,
},
},
# "praisonai": {
@@ -219,14 +213,12 @@ def test_example(
code = add_helicone_headers(code)
filepath.write_text(code, encoding="utf-8")
- cwd = example.get("cwd", None)
proc = subprocess.Popen( # pylint: disable=consider-using-with
args=[sys.executable, str(filepath)],
# TODO(@angryblade): Sanitize the env before running the process.
env={**os.environ, **example["env"]},
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
- cwd=cwd,
)
# Wait for 2 minutes for example to run
diff --git a/python/tests/test_tools/test_base/test_abs.py b/python/tests/test_tools/test_base/test_abs.py
index 1d9f9666825..69c5574139d 100644
--- a/python/tests/test_tools/test_base/test_abs.py
+++ b/python/tests/test_tools/test_base/test_abs.py
@@ -153,3 +153,24 @@ def actions(cls) -> list:
assert SomeAction.enum == "SOME_TOOL_SOME_ACTION"
assert isinstance(tool_registry["local"][SomeTool.enum], SomeTool)
assert action_registry["local"][SomeAction.enum] is SomeAction
+
+ def test_description_builder(self) -> None:
+
+ class SomeTool(Tool):
+ """
+ Some Tool
+
+ With description.
+ """
+
+ logo = ""
+
+ @classmethod
+ def actions(cls) -> list:
+ return []
+
+ ToolBuilder.validate(obj=SomeTool, name="SomeTool", methods=("actions",))
+ ToolBuilder.set_metadata(obj=SomeTool)
+ ToolBuilder.setup_children(obj=SomeTool)
+
+ assert SomeTool.description == "Some Tool With description."