https://github.com/techwithty/document_flow
Document automation SDK for real estate: e-sign, PDF generation, templating, and workflow orchestration.
https://github.com/techwithty/document_flow
api contracts document-automation e-signature fastapi pdf python real-estate templates workflows
Last synced: 4 months ago
JSON representation
Document automation SDK for real estate: e-sign, PDF generation, templating, and workflow orchestration.
- Host: GitHub
- URL: https://github.com/techwithty/document_flow
- Owner: TechWithTy
- Created: 2025-08-31T13:06:06.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2025-08-31T13:06:15.000Z (5 months ago)
- Last Synced: 2025-08-31T15:11:07.388Z (5 months ago)
- Topics: api, contracts, document-automation, e-signature, fastapi, pdf, python, real-estate, templates, workflows
- Language: Python
- Homepage: https://www.cybershoptech.com
- Size: 2.93 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Document Flow (Dotloop Public API v2)
Modular SDK and FastAPI routes to proxy Dotloop endpoints via our backend.
## Environment Variables
- DOTLOOP_ACCESS_TOKEN (required for real API calls)
- DOTLOOP_BASE_URL (default: https://api-gateway.dotloop.com/public/v2)
- DOTLOOP_TIMEOUT (default: 30)
Example .env:
DOTLOOP_ACCESS_TOKEN=your_token_here
DOTLOOP_BASE_URL=https://api-gateway.dotloop.com/public/v2
DOTLOOP_TIMEOUT=30
## Endpoints
- GET /dotloop/health
- Returns: { healthy, base_url, has_token }
- GET /dotloop/profiles
- Query: page (default 1), page_size (default 50)
- Proxies: GET {DOTLOOP_BASE_URL}/profiles
- GET /dotloop/profiles/{profile_id}/loops
- Query: page (default 1), page_size (default 50)
- Proxies: GET {DOTLOOP_BASE_URL}/profiles/{profileId}/loops
Examples:
curl "http://localhost:8000/dotloop/health"
curl "http://localhost:8000/dotloop/profiles?page=1&page_size=50"
curl "http://localhost:8000/dotloop/profiles/123456/loops?page=1&page_size=50"
## Internal Structure
- client.py: DotloopClient builds URLs using base, adds Bearer token header if present.
- api/profiles.py: Routes (`/dotloop/health`, `/dotloop/profiles`).
- api/loops.py: Route (`/dotloop/profiles/{profile_id}/loops`).
- api/_base.py: DotloopAPIBase with shared requests session, base URL, timeout.
- api/_requests.py: ListParams, ListLoopsParams.
- api/_enums.py, api/_responses.py: helpers.
- api/routes.py: Aggregates dotloop sub-routers without extra prefix.