๐Ÿ“„ RFQs

Request for Quote (RFQ) Management

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

RFQ Lifecycle

DRAFT โ”€โ”€โ–ถ PENDING โ”€โ”€โ–ถ CHANGED_TO_QUOTE โ”€โ”€โ–ถ CHANGED_TO_PROJECT
  โ”‚                          โ”‚
  โ”‚                          โ””โ”€โ”€โ–ถ Project begins!
  โ”‚
  โ””โ”€โ”€โ–ถ CANCELLED

Status Descriptions

Status
Description
Can Edit?

DRAFT

Being prepared

โœ… Yes

PENDING

Submitted, awaiting quote

โŒ No

CHANGED_TO_QUOTE

Quote provided

โŒ No

CHANGED_TO_PROJECT

Accepted, project started

โŒ No

CANCELLED

Cancelled

โŒ No

๐Ÿ“‹ List RFQs

get
/api/public/v1/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.

Authorizations
AuthorizationstringRequired

JWT access token obtained from POST /api/credentials/token

How to authenticate:

  1. Generate API credentials from the Adaptria Portal
  2. Exchange credentials for a token: POST /api/credentials/token
  3. Include the token in all requests: Authorization: Bearer <token>

Token Expiration: 1 hour (3600 seconds)

Query parameters
pagestringOptional

Page number to retrieve (starts from 1)

Default: 1Example: 1Pattern: ^\d+$
limitstringOptional

Number of items per page (max 100)

Default: 20Example: 20Pattern: ^\d+$
statusstringOptional

Filter by RFQ status.

Available values: DRAFT, PENDING, CANCELLED, CHANGED_TO_QUOTE, CHANGED_TO_PROJECT

Example: DRAFT
searchstringOptional

Search by project name or RFQ number

Example: Q4 Marketing
Responses
chevron-right
200

RFQs retrieved successfully

application/json
get
/api/public/v1/rfqs

๐Ÿ“ Create and Submit RFQ

post
/api/public/v1/rfqs

Create and Submit a Request for Quote (RFQ) - Unified API

This unified endpoint creates an RFQ with services and automatically submits it in a single API call.

What You Can Do in ONE Request

  • โœ… Create the RFQ with project details

  • โœ… Add LINGUISTICS services (translation) with source/target languages

  • โœ… Add NON_LINGUISTICS services (video adaptation) with target markets

  • โœ… Attach pre-uploaded files to services

  • โœ… Add notification recipients

  • โœ… Automatically submit for quoting

Service Types

LINGUISTICS (for translation/localization):

{
  "serviceId": "34acfed6-ae10-46e3-8896-9afe78c2ecdc",
  "type": "LINGUISTICS",
  "sourceLanguageId": "f5e4d3c2-b1a0-4321-8765-fedcba987654",
  "targetLanguageIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890", "b2c3d4e5-f6a7-8901-bcde-f12345678901"],
  "assetFileIds": ["67eb9e88-7962-41a1-9695-f2051a968728"]
}

NON_LINGUISTICS (for video adaptation, creative services like 3D animation):

Note: assetFileIds contains file IDs obtained from the File Upload endpoint. Upload files first, then use the returned fileId values here.

Internal Transformation

Your simplified input is automatically transformed to the internal format:

Public API Field
Internal Field

serviceId

serviceUUID

targetMarketIds[]

targetMarkets[].targetMarketId

sourceLanguageId

combos[].sourceLanguage

targetLanguageIds[]

combos[].targetLanguages[].languageId

Recommended Workflow

Auto Submit Control

By default (autoSubmit: true), the RFQ is submitted immediately. Set autoSubmit: false to create in DRAFT status.

PO Number Uniqueness

The poNumber field must be unique per company. Duplicate PO numbers return 409 Conflict.

Authorizations
AuthorizationstringRequired

JWT access token obtained from POST /api/credentials/token

How to authenticate:

  1. Generate API credentials from the Adaptria Portal
  2. Exchange credentials for a token: POST /api/credentials/token
  3. Include the token in all requests: Authorization: Bearer <token>

Token Expiration: 1 hour (3600 seconds)

Body
companyIdstring ยท uuidRequired

The company ID this RFQ belongs to.

Important: You must have access to this company through your API credentials.

๐Ÿ“– To get company IDs: See the Companies section โ†’ GET /api/public/v1/client/companies

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
projectNamestring ยท min: 1 ยท max: 255Required

A clear, descriptive name for your project.

Best Practices:

  • Be specific: "Q4 Marketing Campaign - German Website" vs "Translation Project"
  • Include key identifiers: campaign name, product, date
Example: Q4 2025 Marketing Campaign - Website Localization
projectDescriptionstring ยท min: 1 ยท max: 2000Required

Detailed description of what needs to be translated/localized.

Include: Content type, volume estimate, specific requirements, file formats

Example: Translate our new product landing page from English to German, French, and Spanish. Content includes marketing copy (~2,000 words), product specifications, and customer testimonials.
backgroundInfostring ยท max: 1000Optional

Additional context about your company, brand, or project

Example: We're a B2B SaaS company expanding into European markets. We have a brand style guide and terminology glossary.
targetAudiencestring ยท max: 500Optional

Who will consume the translated content? Helps with tone and terminology choices.

Example: European B2B decision-makers, primarily CTOs and IT managers
poNumberstring ยท max: 100Optional

Your internal Purchase Order number (must be unique per company)

Example: PO-2025-Q4-MKT-001
referenceNumberstring ยท max: 100Optional

Your internal reference or ticket number

Example: CAMP-2025-Q4-EU
projectDueDatestring | nullOptional

When do you need the final deliverables? (YYYY-MM-DD, can be null)

Example: 2025-12-31Pattern: ^\d{4}-\d{2}-\d{2}$
deadlineForQuotestring ยท dateOptional

By when do you need the quote? (YYYY-MM-DD)

Example: 2025-12-15Pattern: ^\d{4}-\d{2}-\d{2}$
companyUserIdsstring ยท uuid[]Optional

User IDs from the company to receive notifications

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
autoSubmitbooleanOptional

If true (default), the RFQ is automatically submitted. If false, created as DRAFT.

Default: trueExample: true
Responses
post
/api/public/v1/rfqs

๐Ÿ” Get RFQ Details

get
/api/public/v1/rfqs/{id}

Get Full RFQ Details

Retrieve complete information about a specific RFQ, including:

  • General information (name, description, dates)

  • Selected services

  • Language configuration

  • Target markets

Authorizations
AuthorizationstringRequired

JWT access token obtained from POST /api/credentials/token

How to authenticate:

  1. Generate API credentials from the Adaptria Portal
  2. Exchange credentials for a token: POST /api/credentials/token
  3. Include the token in all requests: Authorization: Bearer <token>

Token Expiration: 1 hour (3600 seconds)

Path parameters
idstring ยท uuidRequired

RFQ ID

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
Responses
chevron-right
200

RFQ details retrieved

application/json
get
/api/public/v1/rfqs/{id}

Last updated