Moneyline

API Reference

Base URL: `https://api.moneyline.ai` (hosted) or `http://localhost:3100` (self-hosted).

All endpoints require Authorization: Bearer <api_key> header unless noted.

OpenAPI spec: openapi.json


Health (public — no auth)

GET    /health
GET    /health/ready
GET    /v1/health

Submissions

POST   /v1/submissions                          Create submission
GET    /v1/submissions                          List submissions (search, filter, paginate)
GET    /v1/submissions/:id                      Get submission
PATCH  /v1/submissions/:id                      Update submission
DELETE /v1/submissions/:id                      Delete submission + related data
POST   /v1/submissions/:id/process              Start processing pipeline
GET    /v1/submissions/:id/status               Get processing status
POST   /v1/submissions/:id/workflow             Start custom workflow
POST   /v1/submissions/:id/enrich              Enrich submission data
GET    /v1/submissions/:id/duplicates           Find duplicate submissions
GET    /v1/submissions/:id/timeline             Event timeline (audit-derived)
GET    /v1/submissions/:id/attribute-values     Entity attribute values
GET    /v1/submissions/:id/parsed-submissions   Parsed submission data
GET    /v1/submissions/:id/missing-accounts     Missing account detection

Documents

POST   /v1/submissions/:sid/documents           Upload document (multipart)
GET    /v1/submissions/:sid/documents           List documents for submission
GET    /v1/documents                            List all documents
GET    /v1/documents/:id                        Get document details
DELETE /v1/documents/:id                        Delete document
GET    /v1/documents/:id/download               Get signed download URL
POST   /v1/documents/:id/parse                  Trigger document parsing
POST   /v1/documents/:id/reclassify             Change document classification
POST   /v1/documents/:id/split                  Split multi-page document
GET    /v1/submissions/:id/documents/:docId/base64   Base64 export
GET    /v1/submissions/:id/documents/:docId/xlsx     XLSX export
POST   /v1/submissions/:id/documents/:docId/rename   Rename document

Document Classes

POST   /v1/document-classes                     Create document class
GET    /v1/document-classes                     List document classes
GET    /v1/document-classes/:id                 Get document class
PATCH  /v1/document-classes/:id                 Update document class
DELETE /v1/document-classes/:id                 Delete document class

Transactions

POST   /v1/transactions                         Create transaction
GET    /v1/transactions                         List transactions (filter, paginate)
POST   /v1/transactions/bulk                    Bulk create transactions
GET    /v1/transactions/:id                     Get transaction
DELETE /v1/transactions/:id                     Delete transaction
POST   /v1/transactions/enrich                  Enrich transactions
POST   /v1/submissions/:sid/transactions/enrich Enrich by submission
POST   /v1/transactions/:id/feedback            Submit correction feedback

Analytics (per-submission)

GET    /v1/submissions/:id/scorecard            Full scorecard with metrics + grades
GET    /v1/submissions/:id/metrics              All metrics for submission
GET    /v1/submissions/:id/metrics/:name        Single metric value
GET    /v1/submissions/:id/cashflow             Cashflow P&L by period
GET    /v1/submissions/:id/balances             Daily balance report
GET    /v1/submissions/:id/statistics           Summary statistics
GET    /v1/submissions/:id/recurring            Recurring transaction report
GET    /v1/submissions/:id/anomalies            Anomaly detection
GET    /v1/submissions/:id/merchants            Merchant spend breakdown
GET    /v1/submissions/:id/categories           Category breakdown
GET    /v1/submissions/:id/coverage             Data coverage analysis
GET    /v1/submissions/:id/risk-score           ML risk score
GET    /v1/submissions/:id/forecast             Revenue forecast
GET    /v1/submissions/:id/benchmarks           Metric benchmarks
GET    /v1/submissions/:id/bank-summary         Bank statement summary
GET    /v1/submissions/:id/financials           Financial overview

Portfolio Analytics (cross-submission)

GET    /v1/analytics/portfolio                  Aggregate analytics across all submissions
GET    /v1/analytics/portfolio?since=2026-01-01 Filter by date

Metrics

GET    /v1/metrics                              List all available metric definitions
GET    /v1/metrics/rule-metrics                 Metrics available for rule evaluation
GET    /v1/search?q=amazon&type=submissions,transactions,merchants

Full-text search with PostgreSQL tsvector + trigram similarity.

Rules & Policies

POST   /v1/rules                                Create rule
GET    /v1/rules                                List rules
GET    /v1/rules/:id                            Get rule
PATCH  /v1/rules/:id                            Update rule
DELETE /v1/rules/:id                            Delete rule
POST   /v1/rules/:id/evaluate                   Evaluate single rule
POST   /v1/policies/evaluate                    Evaluate all policies
GET    /v1/submissions/:id/policy-evaluations   Get evaluation history
POST   /v1/submissions/:id/policy/progress      Policy progress

Funders

POST   /v1/funders                              Create funder
GET    /v1/funders                              List funders
GET    /v1/funders/linked                       List linked funders
GET    /v1/funders/:id                          Get funder
PATCH  /v1/funders/:id                          Update funder
DELETE /v1/funders/:id                          Delete funder
POST   /v1/funders/:id/submissions              Link submission to funder
GET    /v1/funders/:id/submissions              List funder submissions
GET    /v1/funders/:fid/policies                List funder policies
POST   /v1/funders/:fid/policies                Create funder policy
GET    /v1/submissions/:sid/funders             List funders for submission
POST   /v1/submissions/:sid/funders/match       Auto-match funders

Webhooks

POST   /v1/webhooks                             Create webhook
GET    /v1/webhooks                             List webhooks
GET    /v1/webhooks/event-types                 List available event types
GET    /v1/webhooks/:id                         Get webhook
PATCH  /v1/webhooks/:id                         Update webhook
DELETE /v1/webhooks/:id                         Delete webhook
POST   /v1/webhooks/:id/test                    Send test delivery
GET    /v1/webhooks/:id/deliveries              List deliveries
POST   /v1/webhooks/:id/deliveries/:did/replay  Replay failed delivery

API Keys

POST   /v1/api-keys                             Create API key
GET    /v1/api-keys                             List API keys (no secrets)
GET    /v1/api-keys/:id                         Get API key details
DELETE /v1/api-keys/:id                         Revoke/delete key
POST   /v1/api-keys/:id/activate                Activate key
POST   /v1/api-keys/:id/deactivate              Deactivate key
POST   /v1/api-keys/:id/rotate                  Rotate key (24h grace period)

Audit Log

GET    /v1/audit-log                            Query audit log
GET    /v1/audit-log?resource_type=submission&action=create
GET    /v1/audit-log?start_date=2026-01-01&end_date=2026-04-01

Usage Metrics

GET    /v1/usage                                API calls, docs processed, storage used

Entities

POST   /v1/entities                             Create entity
GET    /v1/entities                             List entities
GET    /v1/entities/:id                         Get entity
PATCH  /v1/entities/:id                         Update entity
DELETE /v1/entities/:id                         Delete entity
POST   /v1/entities/:id/attributes              Add attributes
GET    /v1/entities/:id/attributes              Get attributes
POST   /v1/entities/:eid/sources                Add entity source
POST   /v1/entities/bulk-save                   Bulk upsert entities
GET    /v1/entities/export                      Export entities

Merchants

GET    /v1/merchants                            List merchants
GET    /v1/merchants/:id                        Get merchant
GET    /v1/merchants/groups                     List merchant groups
GET    /v1/merchants/groups/:id                 Get merchant group
POST   /v1/merchants/extract                    Extract merchant from text
GET    /v1/merchant-groups                      List merchant groups (alias)
GET    /v1/merchant-groups/:id                  Get merchant group (alias)

Integrations

POST   /v1/integrations                         Create integration
GET    /v1/integrations                         List integrations
GET    /v1/integrations/:id                     Get integration
PATCH  /v1/integrations/:id                     Update integration
DELETE /v1/integrations/:id                     Delete integration
GET    /v1/integrations/:id/links               Get integration links
POST   /v1/integrations/plaid/link-token        Create Plaid link token
POST   /v1/integrations/plaid/exchange-token    Exchange Plaid token
POST   /v1/integrations/finicity/connect        Finicity connect
POST   /v1/integrations/import                  Import from integration

Data Imports (provider-specific)

POST   /v1/submissions/:id/plaid-assets         Import Plaid assets
POST   /v1/submissions/:id/plaid-transactions   Import Plaid transactions
POST   /v1/submissions/:id/ocrolus              Import from Ocrolus
POST   /v1/submissions/:id/inscribe             Import from Inscribe
POST   /v1/submissions/:id/decision-logic       Import from Decision Logic
POST   /v1/submissions/:id/yodlee               Import from Yodlee

PDFs

GET    /v1/submissions/:id/pdfs                 List PDFs
GET    /v1/submissions/:id/pdfs/:pid            Get PDF details
PUT    /v1/submissions/:id/pdfs/:pid            Update PDF
POST   /v1/submissions/:id/pdfs/parse           Parse all PDFs
POST   /v1/submissions/:id/pdfs/:pid/reload     Reload PDF
POST   /v1/submissions/:id/pdfs/:pid/unload     Unload PDF
POST   /v1/submissions/:id/pdfs/:pid/currency   Set PDF currency
PATCH  /v1/submissions/:id/pdfs/:pid/statements Update statements

Enrichers

POST   /v1/submissions/:id/enrichers            Run enrichers
POST   /v1/submissions/:id/enrichers/sync       Sync enricher results
GET    /v1/submissions/:id/enrichers/fields     List enricher fields
GET    /v1/submissions/:id/enrichers/results    Get enricher results
GET    /v1/submissions/:id/enrichers/results/:n Get specific enricher result

Data Sources

GET    /v1/submissions/:sid/data-sources        List data sources for submission
GET    /v1/data-sources/:id                     Get data source
PATCH  /v1/data-sources/:id                     Update data source
GET    /v1/data-sources/:id/accounts            List accounts
PATCH  /v1/data-sources/:dsid/accounts/:id      Update account

Positions

GET    /v1/submissions/:sid/positions           List positions for submission
GET    /v1/positions/:id                        Get position
GET    /v1/positions/:id/transactions           Get position transactions

Broker Portal

POST   /v1/broker/submissions                   Create broker submission
GET    /v1/broker/submissions                   List broker submissions
GET    /v1/broker/submissions/:id               Get broker submission
PATCH  /v1/broker/submissions/:id               Update broker submission
POST   /v1/broker/submissions/:id/submit        Submit for review
POST   /v1/broker/api-keys                      Create broker API key
GET    /v1/broker/api-keys                      List broker API keys

ISO Applications

POST   /v1/iso-applications                     Create ISO application
GET    /v1/iso-applications                     List ISO applications
GET    /v1/iso-applications/:id                 Get ISO application
GET    /v1/iso-applications/:id/results         Get processing results
POST   /v1/iso-applications/:id/reprocess       Reprocess application

Emails

GET    /v1/emails                               List emails
GET    /v1/emails/:id                           Get email
GET    /v1/submissions/:sid/emails              List emails for submission
GET    /v1/emails/:id/eml                       Download EML

Email Templates

POST   /v1/email-templates                      Create template
GET    /v1/email-templates                      List templates
GET    /v1/email-templates/:id                  Get template
PATCH  /v1/email-templates/:id                  Update template
DELETE /v1/email-templates/:id                  Delete template

CRM Integrations

POST   /v1/crm-integrations                     Create CRM integration
GET    /v1/crm-integrations                     List CRM integrations
GET    /v1/crm-integrations/:id                 Get CRM integration
PATCH  /v1/crm-integrations/:id                 Update CRM integration
DELETE /v1/crm-integrations/:id                 Delete CRM integration
POST   /v1/crm-integrations/:id/sync            Sync CRM data

Workflows

GET    /v1/workflows                            List workflows
POST   /v1/workflows                            Create workflow
GET    /v1/workflows/:id                        Get workflow
POST   /v1/workflows/start                      Start workflow execution
GET    /v1/workflows/:id/executions             List executions

Apps

GET    /v1/apps                                 List available apps
GET    /v1/apps/installed                       List installed apps
GET    /v1/apps/:id                             Get app details
POST   /v1/apps/:id/install                     Install app
DELETE /v1/apps/:id/uninstall                   Uninstall app

Categories

GET    /v1/categories                           List transaction categories

Feedback

POST   /v1/feedback                             Submit feedback
GET    /v1/feedback                             List feedback

Files

POST   /v1/files/process                        Process uploaded file
GET    /v1/submissions/:id/files/recent         Get recent files
GET    /v1/file-rename-rules/variables          List rename variables

User Settings

GET    /v1/user/layout                          Get dashboard layout
PUT    /v1/user/layout                          Update dashboard layout
GET    /v1/user/settings                        Get user settings
PUT    /v1/user/settings                        Update user settings
GET    /v1/user/logo                            Get tenant logo
POST   /v1/user/logo                            Upload tenant logo

Error Format

All errors return a consistent JSON body:

{
  "error": {
    "type": "invalid_request_error",
    "code": "invalid_document_class",
    "message": "Invalid document_class 'bank_statment'. Did you mean 'bank_statement'?",
    "param": "document_class",
    "doc_url": "https://docs.moneyline.ai/errors#invalid-document-class",
    "request_id": "9aef5324-635c-4ef2-a4b5-c9c953902413"
  }
}

Error types: invalid_request_error, authentication_error, rate_limit_error, api_error, not_found_error, conflict_error, validation_error.

See Error Codes for the full catalog (30+ codes with doc links).

Pagination

List endpoints use cursor-based pagination:

{
  "data": [...],
  "has_more": true,
  "next_cursor": "eyJ..."
}

Pass ?cursor=eyJ...&limit=100 for the next page. Default limit: 100, max: 1000.

Idempotency

POST/PUT/PATCH requests accept Idempotency-Key header. Keys are scoped per-tenant and expire after 24 hours.

On this page