> For the complete documentation index, see [llms.txt](https://docs.adaptria.locaria.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.adaptria.locaria.com/internal-api/reference/rfqs.md).

# 📄 RFQs

### Request for Quote (RFQ) Management

RFQs are the starting point for all translation and localization projects.

#### RFQ Lifecycle

```
PENDING ──▶ CHANGED_TO_QUOTE ──▶ CHANGED_TO_PROJECT
              │
              └──▶ Project begins!
```

#### Status Descriptions

| Status               | Description               | Can Edit? |
| -------------------- | ------------------------- | --------- |
| PENDING              | Submitted, awaiting quote | ❌ No      |
| CHANGED\_TO\_QUOTE   | Quote provided            | ❌ No      |
| CHANGED\_TO\_PROJECT | Accepted, project started | ❌ No      |

## 📋 List RFQs

> \## List Your RFQs\
> \
> Retrieve a paginated list of RFQs accessible to your API credentials.\
> \
> \### Filtering Options\
> \
> \| Parameter | Description |\
> \|-----------|-------------|\
> \| \`status\` | Filter by status (DRAFT, PENDING, etc.) |\
> \| \`search\` | Search by project name or RFQ number |\
> \| \`page\` | Page number (starts at 1) |\
> \| \`limit\` | Items per page (max 100) |\
> \
> \### Response\
> \
> Returns a summary view of each RFQ - use \`GET /api/public/v1/rfqs/:id\` for full details.

````json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"📄 RFQs","description":"## Request for Quote (RFQ) Management\n\nRFQs are the starting point for all translation and localization projects.\n\n### RFQ Lifecycle\n\n```\nPENDING ──▶ CHANGED_TO_QUOTE ──▶ CHANGED_TO_PROJECT\n              │\n              └──▶ Project begins!\n```\n\n### Status Descriptions\n\n| Status | Description | Can Edit? |\n|--------|-------------|-----------|\n| PENDING | Submitted, awaiting quote | ❌ No |\n| CHANGED_TO_QUOTE | Quote provided | ❌ No |\n| CHANGED_TO_PROJECT | Accepted, project started | ❌ No |\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"ListRFQsResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"type":"array","items":{"$ref":"#/components/schemas/RFQListItem"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["success","data","pagination"]},"RFQListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Universally Unique Identifier (UUID v4)"},"rfqNumber":{"type":["string","null"],"description":"Human-readable RFQ number (null for drafts)"},"projectName":{"type":"string"},"status":{"type":"string","enum":["PENDING","CHANGED_TO_QUOTE","CHANGED_TO_PROJECT"],"description":"RFQ lifecycle status:\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted - waiting for Adaptria to review and provide a quote |\n| `CHANGED_TO_QUOTE` | Adaptria has provided a quote based on this RFQ |\n| `CHANGED_TO_PROJECT` | Quote was accepted and converted to an active project |"},"companyId":{"type":"string","format":"uuid","description":"Universally Unique Identifier (UUID v4)"},"companyName":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"submittedAt":{"type":"string","format":"date-time"}},"required":["id","rfqNumber","projectName","status","companyId","companyName","createdAt","updatedAt"]},"Pagination":{"type":"object","properties":{"page":{"type":"integer","exclusiveMinimum":0,"description":"Current page number (1-indexed)"},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":100,"description":"Number of items per page (max 100)"},"total":{"type":"integer","minimum":0,"description":"Total number of items across all pages"},"totalPages":{"type":"integer","minimum":0,"description":"Total number of pages"},"hasNextPage":{"type":"boolean","description":"Whether there are more pages after the current page"},"hasPrevPage":{"type":"boolean","description":"Whether there are pages before the current page"}},"required":["page","limit","total","totalPages","hasNextPage","hasPrevPage"]}}},"paths":{"/api/public/v1/rfqs":{"get":{"summary":"📋 List RFQs","description":"## List Your RFQs\n\nRetrieve a paginated list of RFQs accessible to your API credentials.\n\n### Filtering Options\n\n| Parameter | Description |\n|-----------|-------------|\n| `status` | Filter by status (DRAFT, PENDING, etc.) |\n| `search` | Search by project name or RFQ number |\n| `page` | Page number (starts at 1) |\n| `limit` | Items per page (max 100) |\n\n### Response\n\nReturns a summary view of each RFQ - use `GET /api/public/v1/rfqs/:id` for full details.","tags":["📄 RFQs"],"parameters":[{"schema":{"type":"string","pattern":"^\\d+$","default":"1","description":"Page number to retrieve (starts from 1)"},"required":false,"description":"Page number to retrieve (starts from 1)","name":"page","in":"query"},{"schema":{"type":"string","pattern":"^\\d+$","default":"20","description":"Number of items per page (max 100)"},"required":false,"description":"Number of items per page (max 100)","name":"limit","in":"query"},{"schema":{"type":"string","description":"Filter by RFQ status.\n\nAvailable values: `PENDING`, `CHANGED_TO_QUOTE`, `CHANGED_TO_PROJECT`"},"required":false,"description":"Filter by RFQ status.\n\nAvailable values: `PENDING`, `CHANGED_TO_QUOTE`, `CHANGED_TO_PROJECT`","name":"status","in":"query"},{"schema":{"type":"string","description":"Search by project name or RFQ number"},"required":false,"description":"Search by project name or RFQ number","name":"search","in":"query"}],"responses":{"200":{"description":"RFQs retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRFQsResponse"}}}},"401":{"description":"Authentication required"}}}}}}
````

## 🔍 Get RFQ Details

> \## Get Full RFQ Details\
> \
> Retrieve complete information about a specific RFQ, including:\
> \- General information (name, description, dates)\
> \- Selected services\
> \- Language configuration\
> \- Target markets

````json
{"openapi":"3.1.0","info":{"title":"Adaptria Public API: Connector","version":"1.0.0"},"tags":[{"name":"📄 RFQs","description":"## Request for Quote (RFQ) Management\n\nRFQs are the starting point for all translation and localization projects.\n\n### RFQ Lifecycle\n\n```\nPENDING ──▶ CHANGED_TO_QUOTE ──▶ CHANGED_TO_PROJECT\n              │\n              └──▶ Project begins!\n```\n\n### Status Descriptions\n\n| Status | Description | Can Edit? |\n|--------|-------------|-----------|\n| PENDING | Submitted, awaiting quote | ❌ No |\n| CHANGED_TO_QUOTE | Quote provided | ❌ No |\n| CHANGED_TO_PROJECT | Accepted, project started | ❌ No |\n"}],"servers":[{"url":"https://api.adaptria.locaria.com","description":"Production Environment"}],"security":[{"apiKeyAuth":[]}],"components":{"securitySchemes":{"apiKeyAuth":{"type":"apiKey","in":"header","name":"Api-key","description":"## API Key Authentication\n\nStatic API key obtained from the Adaptria Portal or via `POST /api/credentials/api-keys`.\n\n**How to authenticate**:\n1. Generate an API key from the Adaptria Portal (Settings → API Keys) or ask your admin\n2. Include the key in all requests using the `Api-key` header\n\n**Key format**: `lla_live_<32-character-string>`\n\n**No token exchange needed** — the key is used directly in every request. Revoke or rotate keys from the portal."}},"schemas":{"GetRFQDetailsResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]},"data":{"$ref":"#/components/schemas/RFQDetails"}},"required":["success","data"]},"RFQDetails":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Universally Unique Identifier (UUID v4)"},"rfqNumber":{"type":["string","null"]},"projectName":{"type":"string"},"status":{"type":"string","enum":["PENDING","CHANGED_TO_QUOTE","CHANGED_TO_PROJECT"],"description":"RFQ lifecycle status:\n\n| Status | Description |\n|--------|-------------|\n| `PENDING` | Submitted - waiting for Adaptria to review and provide a quote |\n| `CHANGED_TO_QUOTE` | Adaptria has provided a quote based on this RFQ |\n| `CHANGED_TO_PROJECT` | Quote was accepted and converted to an active project |"},"company":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Universally Unique Identifier (UUID v4)"},"name":{"type":"string"}},"required":["id","name"]},"generalInformation":{"type":"object","properties":{"projectName":{"type":"string"},"projectDescription":{"type":"string"},"backgroundInfo":{"type":"string"},"targetAudience":{"type":"string"},"poNumber":{"type":"string"},"referenceNumber":{"type":"string"}},"required":["projectName"]},"projectDueDate":{"type":["string","null"]},"deadlineForQuote":{"type":"string"},"services":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the service"},"name":{"type":"string","description":"Human-readable service name"}},"required":["id","name"]}},"languages":{"type":"object","properties":{"sourceLanguages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"**Language ID - Use this in RFQ creation!** Unique identifier for the language."},"name":{"type":"string","description":"English name of the language"}},"required":["id","name"]}},"targetLanguages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"**Language ID - Use this in RFQ creation!** Unique identifier for the language."},"name":{"type":"string","description":"English name of the language"}},"required":["id","name"]}}},"required":["sourceLanguages","targetLanguages"]},"targetMarkets":{"type":"array","items":{"$ref":"#/components/schemas/PublicTargetMarket"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"submittedAt":{"type":"string","format":"date-time"}},"required":["id","rfqNumber","projectName","status","company","generalInformation","services","languages","targetMarkets","createdAt","updatedAt"]},"PublicTargetMarket":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the target market"},"name":{"type":"string","description":"Human-readable name of the target market/region"},"countryCode":{"type":"string","description":"ISO 3166-1 alpha-2 country code"}},"required":["id","name","countryCode"]}}},"paths":{"/api/public/v1/rfqs/{id}":{"get":{"summary":"🔍 Get RFQ Details","description":"## Get Full RFQ Details\n\nRetrieve complete information about a specific RFQ, including:\n- General information (name, description, dates)\n- Selected services\n- Language configuration\n- Target markets","tags":["📄 RFQs"],"parameters":[{"schema":{"type":"string","format":"uuid","description":"RFQ ID"},"required":true,"description":"RFQ ID","name":"id","in":"path"}],"responses":{"200":{"description":"RFQ details retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetRFQDetailsResponse"}}}},"401":{"description":"Authentication required"},"403":{"description":"Access denied"},"404":{"description":"RFQ not found"}}}}}}
````
