openapi: 3.0.3
info:
title: AutoPilot TaskMate Commons Protocol
version: 0.1.0-draft
description: |
Open protocol for AI-driven business process automation.
This is a DRAFT specification for NGI Commons grant proposal.
Full protocol will be completed with NGI funding (6 months, €50k).
License: MIT
Project: https://github.com/seoframe-com/AutoPilot-TaskMate-Commons
contact:
name: AutoPilot TaskMate Commons
email: info@seoframe.com
url: https://seoframe.com
license:
name: MIT
url: https://opensource.org/licenses/MIT
servers:
- url: https://api.example.com/v1
description: Reference implementation (to be built with NGI funding)
paths:
/tasks/invoice-extraction:
post:
summary: Extract structured data from invoice documents
description: |
Parse invoice PDFs/images and extract vendor, amount, date, invoice number.
Supports multiple formats (PDF, JPG, PNG).
operationId: extractInvoice
tags:
- Invoice Processing
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
properties:
file:
type: string
format: binary
description: Invoice document (PDF, JPG, PNG)
fields:
type: array
items:
type: string
description: Fields to extract (default: vendor, amount, date, invoice_number)
example: ["vendor", "amount", "date", "invoice_number"]
responses:
'200':
description: Successful extraction
content:
application/json:
schema:
type: object
properties:
task_id:
type: string
example: "inv_20260119_abc123"
status:
type: string
enum: [completed, failed]
example: completed
data:
type: object
properties:
vendor:
type: string
example: "Acme Corp Ltd"
amount:
type: number
example: 1250.50
currency:
type: string
example: "EUR"
date:
type: string
format: date
example: "2026-01-15"
invoice_number:
type: string
example: "INV-2026-001"
confidence:
type: number
description: Extraction confidence (0-1)
example: 0.95
'400':
description: Invalid file format
'500':
description: Processing error
/tasks/email-classification:
post:
summary: Classify and route incoming emails
description: |
Analyze email content and classify by urgency, category, department.
Returns routing recommendation.
operationId: classifyEmail
tags:
- Email Classification
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- subject
- body
properties:
subject:
type: string
example: "Urgent: Order #12345 delivery issue"
body:
type: string
example: "Customer reports missing items in shipment..."
sender:
type: string
format: email
example: "customer@example.com"
categories:
type: array
items:
type: string
description: Custom categories for classification
example: ["urgent", "order", "support", "billing"]
responses:
'200':
description: Successful classification
content:
application/json:
schema:
type: object
properties:
task_id:
type: string
example: "email_20260119_xyz789"
status:
type: string
enum: [completed, failed]
classification:
type: object
properties:
category:
type: string
example: "order"
urgency:
type: string
enum: [low, medium, high, critical]
example: "high"
department:
type: string
example: "logistics"
sentiment:
type: string
enum: [positive, neutral, negative]
example: "negative"
confidence:
type: number
example: 0.88
'400':
description: Invalid request
'500':
description: Processing error
/tasks/data-validation:
post:
summary: Validate spreadsheet data integrity
description: |
Check CSV/Excel files for duplicates, missing fields, format errors.
Returns validation report with flagged issues.
operationId: validateData
tags:
- Data Validation
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
- rules
properties:
file:
type: string
format: binary
description: Data file (CSV, XLSX)
rules:
type: array
items:
type: string
description: Validation rules to apply
example: ["no_duplicates", "required_fields", "email_format", "date_format"]
required_fields:
type: array
items:
type: string
example: ["email", "name", "amount"]
responses:
'200':
description: Validation completed
content:
application/json:
schema:
type: object
properties:
task_id:
type: string
example: "val_20260119_def456"
status:
type: string
enum: [completed, failed]
validation_result:
type: object
properties:
total_rows:
type: integer
example: 500
valid_rows:
type: integer
example: 485
invalid_rows:
type: integer
example: 15
errors:
type: array
items:
type: object
properties:
row:
type: integer
example: 42
field:
type: string
example: "email"
error:
type: string
example: "Invalid email format"
duplicates:
type: array
items:
type: object
properties:
rows:
type: array
items:
type: integer
example: [23, 67]
field:
type: string
example: "customer_id"
'400':
description: Invalid file or rules
'500':
description: Processing error
components:
schemas:
TaskStatus:
type: object
properties:
task_id:
type: string
status:
type: string
enum: [pending, processing, completed, failed]
created_at:
type: string
format: date-time
completed_at:
type: string
format: date-time
Error:
type: object
properties:
error:
type: string
message:
type: string
task_id:
type: string
tags:
- name: Invoice Processing
description: Extract structured data from invoices
- name: Email Classification
description: Route and categorize emails
- name: Data Validation
description: Validate spreadsheet integrity