AuraVMS API Documentation
Complete REST API reference for AuraVMS - RFQ software and vendor management for small businesses. Create RFQs, manage suppliers, compare quotes with L1/L2/L3 ranking, and place purchase orders programmatically.
Base URL: https://api.auravms.com
Using AuraVMS with AI Agents
Copy this skills file and paste it into your AI agent's context (system prompt, tool config, or instructions). It contains everything the agent needs to use the AuraVMS API.
# AuraVMS - AI Agent Skills File
## What is AuraVMS
AuraVMS is RFQ (Request for Quotation) software for small businesses. It manages the supplier quotation workflow: send quote requests to suppliers, collect and compare responses with automatic L1/L2/L3 price ranking, and place purchase orders.
## API Access
- **Base URL:** https://api.auravms.com
- **Auth:** Bearer token in Authorization header
- **Key format:** avms_ prefix + 40 hex characters
- **Get a key:** Settings > API Keys in the AuraVMS app (https://app.auravms.com)
- **Full API docs:** https://www.auravms.com/docs
## Capabilities
You can use the AuraVMS API to:
1. **Manage suppliers** - add, update, list, view categories and performance stats
2. **Create RFQs** - send quotation requests with items, specs, and delivery dates to selected suppliers
3. **Track quotes** - view supplier responses ranked L1 (cheapest) through L3
4. **Place orders** - select a winning quote and place a purchase order (supplier gets PO email)
5. **Close RFQs** - mark quotation rounds as complete
6. **Send reminders** - notify non-responsive suppliers
7. **Manage drafts** - save, edit, send, or delete draft RFQs
8. **Attach documents** - upload/download files on RFQ items
9. **View analytics** - dashboard stats, supplier performance, export data
10. **Manage API keys** - create, list, revoke keys
11. **Submit feedback** - report bugs, request features, or send general feedback
## Key Workflow
1. List/add suppliers -> get their UUIDs
2. Create RFQ with items + supplier UUIDs -> suppliers get email with quote link
3. Check quotes -> GET /api/rfq-item-data/{item_id} shows L1/L2/L3 ranking
4. Place order -> POST with response_id of chosen quote
5. Close RFQ
## Restricted Actions
Organization settings, user profiles, billing, bulk import, and supplier response submission require the web app - they cannot be done via API keys.
## Links
- Full API documentation: https://www.auravms.com/docs
- Interactive API explorer: https://api.auravms.com/api/v1/docs/
- OpenAPI spec: https://api.auravms.com/api/v1/openapi.json
- Sign up: https://app.auravms.com/signup
- Pricing: https://www.auravms.com/pricing
Getting Started
Create an account at app.auravms.com/signup
Go to Settings > API Keys and click Create API Key. Give it a name and save the key - it is shown only once.
Make your first API call:
curl https://api.auravms.com/api/get-suppliers/ \
-H "Authorization: Bearer avms_your_key_here"Authentication
All API requests require a Bearer token in the Authorization header:
Authorization: Bearer avms_your_key_hereAPI keys use the avms_ prefix followed by 40 hex characters. Create and manage keys from Settings > API Keys in the AuraVMS app.
Keys can be revoked at any time. A revoked key immediately stops working. The raw key is shown only at creation time and cannot be retrieved later.
Supplier Management
Create, list, and manage your supplier directory.
/api/create-supplier/Add a new supplier to your directory.
All four fields (company_name, person_of_contact, phone_no, email) are required. Email must be unique within your organization.
Request Body
{
"company_name": "ABC Steel Co.",
"person_of_contact": "Jane Smith",
"phone_no": "555-0199",
"email": "contact@abcsteel.com",
"categories": ["Raw Materials"],
"remark": "Primary steel vendor"
}Response
{
"success": true,
"data": {
"supplier_id": "dffcd0de-e7db-443e-898f-7cfc7b970e6d"
}
}/api/create-supplier/Update an existing supplier.
Request Body
{
"supplier_id": "dffcd0de-e7db-443e-898f-7cfc7b970e6d",
"company_name": "ABC Steel Corporation",
"person_of_contact": "Jane Smith",
"phone_no": "555-0200",
"email": "contact@abcsteel.com",
"categories": ["Raw Materials", "Metals"],
"remark": "Updated contact"
}Response
{
"success": true
}/api/get-suppliers/List all suppliers in your directory.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
search | string | No | Search by company name or email |
category | string | No | Filter by category name |
page | integer | No | Page number (default: 1) |
page_size | integer | No | Results per page (default: 20) |
Response
{
"success": true,
"data": [
{
"supplier_id": "dffcd0de-e7db-443e-898f-7cfc7b970e6d",
"company": "ABC Steel Co.",
"person": "Jane Smith",
"phone": "555-0199",
"email": "contact@abcsteel.com",
"categories": [
{"category_id": 1, "category_name": "Raw Materials"}
],
"remark": "Primary steel vendor"
}
]
}/api/get-supplier-categories/Get all supplier categories in your organization.
Response
{
"success": true,
"data": [
{"label": "Raw Materials", "value": "Raw Materials"},
{"label": "Packaging", "value": "Packaging"}
]
}/api/get-supplier-stats-data/Get performance statistics for all suppliers.
Response
{
"success": true,
"data": [
{
"supplier_id": "dffcd0de-...",
"company_name": "ABC Steel Co.",
"quotes_requested": 10,
"quotes_received": 8,
"quotes_value": 45000.00,
"order_placed": 3,
"total_order_value": 15000.00,
"success_percent": "37.5%",
"contribution_percent": "45.0%"
}
]
}RFQ Lifecycle
Create RFQs, send to suppliers, view quotes with L1/L2/L3 ranking, place orders.
/api/create-rfq/Create a new RFQ and notify selected suppliers by email.
title and items are required. Each item needs product_name and quantity. Suppliers receive email notifications with unique quote links.
Request Body
{
"title": "Q3 Raw Materials",
"items": [
{
"product_name": "Steel Rods",
"quantity": 500,
"uom": "kg",
"specifications": "Grade A, 12mm diameter",
"expected_delivery_date": "2026-05-15"
},
{
"product_name": "Copper Wire",
"quantity": 200,
"uom": "meters",
"specifications": "16 AWG"
}
],
"suppliers": ["supplier-uuid-1", "supplier-uuid-2"],
"terms_and_condition": "Net 30 payment.",
"payment_terms": "30 days from invoice",
"shipping_terms": "FOB destination"
}Response
{
"success": true,
"rfq_id": 42,
"created_items": [
{"id": 101, "index": 1, "product_name": "Steel Rods"},
{"id": 102, "index": 2, "product_name": "Copper Wire"}
]
}/api/get-rfq-list/List all RFQs with status, item count, and quote count.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter: "open" or "closed" |
search | string | No | Search by RFQ title |
page | integer | No | Page number |
page_size | integer | No | Results per page |
Response
{
"success": true,
"data": [
{
"id": 42,
"title": "Q3 Raw Materials",
"item_count": 2,
"open_item_count": 2,
"quotes_count": 3,
"status": "open",
"created": "2026-03-10T09:00:00Z",
"earliest_delivery_date": "2026-05-15"
}
],
"meta": {
"page": 1,
"page_size": 10,
"has_more": false,
"total_count": 1
}
}/api/get-rfq-items/{rfq_id}/Get RFQ details with all line items and supplier response status.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_id | integer | RFQ ID |
Response
{
"success": true,
"rfq": {
"id": 42,
"title": "Q3 Raw Materials",
"status": "open",
"supplier_count": 2,
"suppliers": [
{
"supplier_id": "supplier-uuid-1",
"company_name": "ABC Steel Co.",
"has_responded": true,
"is_declined": false
}
]
},
"items": [
{
"id": 101,
"product_name": "Steel Rods",
"quantity": 500.0,
"uom": "kg",
"status": "open",
"specifications": "Grade A, 12mm diameter",
"expected_delivery_date": "2026-05-15",
"quotes_count": 2,
"attachments": []
}
]
}/api/rfq-item-data/{rfq_item_id}Get a single item with all supplier quotes and automatic L1/L2/L3 price ranking.
Suppliers are automatically ranked by price. L1 = lowest price. Use response_id when placing an order.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_item_id | integer | RFQ item ID |
Response
{
"success": true,
"data": {
"item_id": 101,
"product_name": "Steel Rods",
"status": "Open",
"buyer": {
"quantity": 500.0,
"uom": "kg",
"specification": "Grade A, 12mm diameter",
"currency": "USD"
},
"suppliers": [
{
"company_name": "ABC Steel Co.",
"supplier_id": "supplier-uuid-1",
"response_id": 201,
"price": 45.50,
"quantity": 500.0,
"supplier_lead_time": 7,
"supplier_remarks": "In stock",
"rank_position": 1,
"rank_label": "L1",
"order_status": "Pending"
},
{
"company_name": "XYZ Metals",
"supplier_id": "supplier-uuid-2",
"response_id": 202,
"price": 47.00,
"quantity": 500.0,
"supplier_lead_time": 10,
"supplier_remarks": null,
"rank_position": 2,
"rank_label": "L2",
"order_status": "Pending"
}
]
}
}/api/rfq-item-data/{rfq_item_id}Place a purchase order against a supplier quote. Supplier receives PO confirmation email.
response_id is required - get it from the GET endpoint above. bought_quantity and bought_price are optional (defaults to quoted values). Supplier receives a PO confirmation email automatically.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_item_id | integer | RFQ item ID |
Request Body
{
"response_id": 201,
"bought_quantity": 500,
"bought_price": 45.50
}Response
{
"success": true
}/api/close-rfq/{rfq_id}/Close an RFQ. No more supplier responses will be accepted.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_id | integer | RFQ ID |
Response
{
"success": true,
"message": "RFQ closed successfully."
}/api/send-reminders/Send reminder emails to suppliers who have not responded to an RFQ.
supplier_ids is optional. Omit to send reminders to all non-responsive suppliers.
Request Body
{
"rfq_id": 42,
"supplier_ids": ["supplier-uuid-1"]
}Response
{
"success": true,
"reminders_sent": 1
}/api/get-rfq/Get all RFQ items with quote counts across your RFQs.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
rfq_id | integer | No | Filter by specific RFQ |
Response
{
"success": true,
"data": [
{
"rfq_id": 42,
"rfq_item_id": 101,
"product_name": "Steel Rods",
"quantity": {"amount": 500.0, "uom": "kg"},
"status": "Open",
"specifications": "Grade A, 12mm diameter",
"quotes": 2,
"created": "10/Mar/2026"
}
]
}/api/get-rfq-metadata/Get RFQ metadata - terms, payment terms, shipping terms.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
rfq_id | integer | Yes | RFQ ID |
Response
{
"success": true,
"data": {
"terms_and_conditions": "Net 30 payment.",
"payment_terms": "30 days from invoice",
"shipping_terms": "FOB destination"
}
}Draft RFQs
Save RFQs as drafts before sending to suppliers.
/api/save-rfq-draft/Save an RFQ as a draft. Same body as create-rfq but does not send to suppliers.
Request Body
{
"title": "Draft - Warehouse Supplies",
"items": [
{"product_name": "Packing Tape", "quantity": 200, "uom": "rolls"}
],
"suppliers": ["supplier-uuid-1"]
}Response
{
"success": true,
"rfq_id": 43,
"created_items": [
{"id": 103, "index": 1, "product_name": "Packing Tape"}
]
}/api/get-rfq-draft/{rfq_id}/Get a saved draft RFQ.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_id | integer | Draft RFQ ID |
Response
{
"success": true,
"data": { ... }
}/api/send-rfq-draft/{rfq_id}/Convert a draft to a live RFQ and notify suppliers.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_id | integer | Draft RFQ ID |
Response
{
"success": true
}/api/delete-rfq-draft/{rfq_id}/Delete a draft RFQ.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_id | integer | Draft RFQ ID |
Response
{
"success": true
}Attachments
Upload and download documents attached to RFQ items.
/api/rfq-item/{rfq_item_id}/attachments/upload/Upload a file attachment to an RFQ item. Use multipart/form-data.
Send as multipart/form-data with a "file" field. Supports PDF, Word, Excel, PNG, JPG.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_item_id | integer | RFQ item ID |
Response
{
"success": true
}/api/rfq-item/{rfq_item_id}/attachments/List all buyer attachments for an RFQ item.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_item_id | integer | RFQ item ID |
Response
{
"success": true,
"data": [
{
"id": 1,
"original_filename": "specs.pdf",
"file_size": 102400,
"file_type": "application/pdf",
"created": "2026-03-10T09:00:00Z"
}
]
}/api/rfq-attachment/{attachment_id}/Delete an attachment.
Path Parameters
| Name | Type | Description |
|---|---|---|
attachment_id | integer | Attachment ID |
Response
{
"success": true
}/api/rfq-attachment/{attachment_id}/download/Download an attachment file.
Returns binary file with appropriate Content-Type header.
Path Parameters
| Name | Type | Description |
|---|---|---|
attachment_id | integer | Attachment ID |
/api/supplier-attachment/{attachment_id}/download/Download an attachment uploaded by a supplier.
Returns binary file with appropriate Content-Type header.
Path Parameters
| Name | Type | Description |
|---|---|---|
attachment_id | integer | Supplier attachment ID |
Analytics & Export
Dashboard stats, PDF exports, and data file downloads.
/api/dashboard-stats/Get procurement dashboard statistics.
Response
{
"success": true,
"data": {
"rfqs": {
"open_rfqs_count": 8,
"total_rfqs_count": 25,
"total_purchase_value": 150000.00,
"rfqs_by_product": [
{"product_name": "Steel Rods", "count": 5}
]
},
"suppliers": {
"total_suppliers_count": 30,
"suppliers_by_response_rate": [
{"company_name": "ABC Steel", "response_rate": 80.0}
],
"purchase_by_supplier": [
{"supplier__company_name": "ABC Steel", "count": 3, "value": 45000.0}
]
}
}
}/api/export-quotation-pdf/{rfq_item_id}/Export a quote comparison as PDF with L1/L2/L3 rankings.
Returns a binary PDF file. Content-Type: application/pdf.
Path Parameters
| Name | Type | Description |
|---|---|---|
rfq_item_id | integer | RFQ item ID |
/api/send-rfq-data-file/Email a complete Excel export of all RFQ data (22 fields) to the authenticated user.
The Excel file is sent to the email address of the authenticated user.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
rfq_id | integer | No | Export data for a specific RFQ |
Response
{
"success": true
}Reference Data
Units of measurement and product catalog.
/api/get-item-uom/Get available units of measurement.
Response
{
"success": true,
"data": [
{"label": "kg", "value": "kg"},
{"label": "pcs", "value": "pcs"},
{"label": "meters", "value": "meters"}
]
}/api/get-item-product/Get the product catalog (previously used product names).
Response
{
"success": true,
"data": [
{"label": "Steel Rods", "value": "Steel Rods"},
{"label": "Copper Wire", "value": "Copper Wire"}
]
}API Key Management
Create, list, and revoke API keys.
/api/api-keys/List all API keys for your organization.
Response
{
"success": true,
"keys": [
{
"id": 1,
"name": "ERP Integration",
"key_prefix": "avms_09fc320d867",
"is_active": true,
"last_used_at": "2026-04-12T07:43:22Z",
"created_at": "2026-04-12T07:42:37Z",
"expires_at": null,
"revoked_at": null
}
]
}/api/api-keys/Create a new API key. The raw key is returned only once - save it immediately.
name is required. expires_in_days is optional (null = never expires). The raw key (avms_...) is shown only at creation time. Response includes capabilities and restricted lists.
Request Body
{
"name": "ERP Integration",
"expires_in_days": 365
}Response
{
"success": true,
"key": "avms_09fc320d867528bb92b778f2ddc034fb24805f35",
"id": 1,
"name": "ERP Integration",
"key_prefix": "avms_09fc320d867",
"expires_at": "2027-04-12T07:42:37Z",
"capabilities": ["Create and manage suppliers", "..."],
"restricted": ["Organization settings and team management", "..."],
"warning": "Save this key now. It cannot be retrieved again."
}/api/api-keys/{key_id}/revoke/Revoke an API key. It will immediately stop working.
Path Parameters
| Name | Type | Description |
|---|---|---|
key_id | integer | API key ID |
Response
{
"success": true,
"message": "API key revoked."
}Feedback
Submit feature requests, bug reports, or general feedback to the AuraVMS team.
/api/request-a-feature/Submit feedback, a feature request, or a bug report. Sends an email to the AuraVMS team.
category can be "feature_request", "bug_report", or "general_feedback". Defaults to "feature_request" if not specified.
Request Body
{
"subject": "Add CSV export for supplier list",
"message": "It would be helpful to export the supplier directory as CSV directly from the API.",
"category": "feature_request"
}Response
{
"success": true,
"message": "Thank you for your feedback. The AuraVMS team has been notified."
}Restricted Endpoints
The following endpoints cannot be accessed with API keys for security reasons. Use the AuraVMS web app for these actions.
| Path | Reason |
|---|---|
/api/organization/* | Organization settings, members, invites, roles, permissions |
/auth/user-details/ | User profile information |
/api/subscription-* | Subscription status and details |
/api/billing-* | Billing history |
/api/create-checkout-* | Payment checkout |
/api/cancel-subscription/ | Subscription cancellation |
/api/change-plan/ | Plan changes |
/api/onboarding-* | Onboarding status and progress |
/api/import-suppliers/ | Bulk supplier import (use UI for CSV/Excel upload) |
/api/create-rfq-response/ | Supplier quote submission (suppliers use their unique email links) |
Error Handling
All responses use a consistent JSON format:
Success
{
"success": true,
"data": { ... }
}Error
{
"success": false,
"error": "Human-readable message"
}Status Codes
| Code | Meaning |
|---|---|
200 | Success |
400 | Bad request - missing or invalid field |
401 | Unauthorized - missing or invalid API key |
403 | Forbidden - restricted endpoint, expired subscription, or insufficient permissions |
404 | Not found - resource does not exist |
500 | Server error |
Rate Limits
| Tier | Limit |
|---|---|
| Free / Trial | 60 requests per minute |
| Pro | 300 requests per minute |
Exceeding the rate limit returns HTTP 429. Wait and retry.
Typical Workflow
- 1.Add suppliers -
POST /api/create-supplier/ - 2.Create RFQ with items and supplier UUIDs -
POST /api/create-rfq/ - 3.Wait for quotes - suppliers receive email links and quote through them
- 4.Check quotes with L1/L2/L3 ranking -
GET /api/rfq-item-data/{item_id} - 5.Place order on the best quote -
POST /api/rfq-item-data/{item_id} - 6.Close RFQ -
POST /api/close-rfq/{rfq_id}/