CONNECT APP
Build with AlgoDocs
Artificial Intelligence (AI)
- API key
MCP
Give your agent AlgoDocs tools
Every AlgoDocs action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's AlgoDocs account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "algodocs",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run List Documents:
const result = await mcp.callTool({
name: "algodocs-list-documents",
arguments: {
extractorId: "Extractor ID",
folderId: "Folder ID",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "algodocs",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run List Documents:
result = await session.call_tool("algodocs-list-documents", {
"extractorId": "Extractor ID",
"folderId": "Folder ID",
})API PROXY
Call the AlgoDocs API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the AlgoDocs API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.algodocs.com/v1/me",
})
// Any allowed AlgoDocs endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.algodocs.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuYWxnb2RvY3MuY29tL3YxL21l?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run AlgoDocs actions from your backend
Connect a user's AlgoDocs account once, then run List Documents on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "algodocs-list-documents",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
algodocs: { authProvisionId: "apn_xxxxxxx" },
extractorId: "Extractor ID",
folderId: "Folder ID",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="algodocs-list-documents",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"algodocs": {"authProvisionId": "apn_xxxxxxx"},
"extractorId": "Extractor ID",
"folderId": "Folder ID",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "algodocs-list-documents",
"configured_props": {
"algodocs": { "authProvisionId": "apn_xxxxxxx" },
"extractorId": "Extractor ID",
"folderId": "Folder ID"
}
}'TOOLS
AlgoDocs actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
List Documents
actionLists documents for a given extractor by reading extraction records (GET /v1/extracted_data/{extractorId}) and returning theirdocumentIdandfileName, deduplicated bydocumentId. AlgoDocs has no dedicated documents endpoint, so this action derives the document list from extracted data. Use it to discover a validdocumentIdbefore configuring New Extracted Data. Run List Extractors to find a valid extractor ID first. See the documentation.Read-onlyv0.0.2 -
List Extractors
actionLists all extractors in the authenticated AlgoDocs account (GET /v1/extractors). Each extractor includes at leastidandname. Use this to discover a validextractorIdbefore running Upload File or List Documents. See the documentation.Read-onlyv0.0.2 -
List Folders
actionLists all folders in the authenticated AlgoDocs account (GET /v1/folders). Each folder includes at leastidandname. Use this to discover a validfolderIdbefore running Upload File. See the documentation.Read-onlyv0.0.2 -
Upload File
actionUploads a local file to an AlgoDocs folder for processing by a specific extractor via multipart/form-data (POST /v1/document/upload_local/{extractorId}/{folderId}). Returns the created document record including itsidand upload metadata. Run List Extractors to find a valid extractor ID and List Folders to find a valid folder ID before calling this action. The returned documentidis the value to configure in New Extracted Data. See the documentation.Writev0.0.2
EVENTS
AlgoDocs triggers
Event sources your backend can deploy for users and receive through a webhook.
-
New Extracted Data
triggerEmit new event for each newly extracted data record for a given AlgoDocs document (polls GET /v1/extracted_data/{documentId}). Each extraction record's stableidis used for deduplication. Run the List Documents action to find a valid document ID before configuring this source. An optional filter narrows emissions to records whose extracteddatamatches a provided key or value substring. See the documentation.v0.0.1 -
New Table Row Extracted
triggerEmit new event for each individual table row extracted from an AlgoDocs document (polls GET /v1/extracted_data/{documentId}). AlgoDocs represents a record's extracteddataas a flat object, with any table/repeating field appearing as an array-valued property (e.g.data.LineItems). Unlike New Extracted Data which emits one event per extraction record, this source emits one event per row within each such array field; records with no array-valued field indataproduce no events. Requires a document ID — run List Documents to find one. An optional filter narrows emissions to rows whose JSON representation contains a specified substring. See the documentation.v0.0.1
- App slug
- algodocs
- Authentication
- API key
- Categories
- Artificial Intelligence (AI)
- Actions
- 4
- Triggers
- 2
- API proxy
- Available