Εισαγωγή

Καλώς ήρθατε στο API Μετάφρασης i18n-agent! Υπηρεσία μετάφρασης με τεχνητή νοημοσύνη και πολιτισμική προσαρμογή

Αυτή η τεκμηρίωση API παρέχει ολοκληρωμένες πληροφορίες σχετικά με όλα τα διαθέσιμα τελικά σημεία, τις μεθόδους ταυτοποίησης, τις μορφές αιτήματος/απόκρισης και τους κωδικούς σφάλματος.

Βάση URLs

Περιβάλλον URL
Ανάπτυξη http://localhost:8000
Παραγωγή https://api.i18nagent.ai

Βασικά Χαρακτηριστικά

  • 🌐 Υποστήριξη Πολλαπλών Γλωσσών - Μετάφραση περιεχομένου σε 10+ γλώσσες με πολιτισμική προσαρμογή
  • 🚀 Ροή Πραγματικού Χρόνου - Συμβάντα Αποστολής Διακομιστή για ενημερώσεις προόδου
  • 📁 Μετάφραση Αρχείων - Υποστήριξη για JSON, YAML, XML, CSV και άλλα
  • 🔐 Ασφαλής Ταυτοποίηση - Ταυτοποίηση βασισμένη σε κλειδί API
  • 💳 Σύστημα Πίστωσης - Μοντέλο τιμολόγησης πληρωμής ανά χρήση
  • 🤖 Με τεχνητή νοημοσύνη - Χρησιμοποιεί προηγμένα LLMs για ακριβείς μεταφράσεις

Έλεγχος ταυτότητας

Για έλεγχο ταυτότητας, χρησιμοποιήστε αυτόν τον κωδικό:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here" \
  -H "Authorization: Bearer i18n_your_api_key_here"
const headers = {
  'Authorization': 'Bearer i18n_your_api_key_here',
  'Content-Type': 'application/json'
};

fetch('api_endpoint_here', { headers })
  .then(response => response.json())
  .then(data => console.log(data));
import requests

headers = {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
}

response = requests.get('api_endpoint_here', headers=headers)
print(response.json())
package main

import (
    "net/http"
)

func main() {
    client := &http.Client{}
    req, _ := http.NewRequest("GET", "api_endpoint_here", nil)
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Βεβαιωθείτε ότι έχετε αντικαταστήσει το i18n_your_api_key_here με το API key σας.

Το API του i18n-agent χρησιμοποιεί κλειδιά API για να επιτρέψει την πρόσβαση στο API. Μπορείτε να αποκτήσετε το κλειδί API σας από τον πίνακα ελέγχου του λογαριασμού σας.

Το κλειδί API πρέπει να συμπεριληφθεί σε όλα τα αιτήματα API προς τον διακομιστή σε μια κεφαλίδα που μοιάζει με την ακόλουθη:

Authorization: Bearer i18n_your_api_key_here

Τελικά σημεία

Πιστώσεις

Λήψη πιστώσεων ομάδας

GET /credits

Λάβετε το τρέχον υπόλοιπο πίστωσης για την πιστοποιημένη ομάδα

curl -X GET "https://api.i18nagent.ai/credits" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/credits', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/credits',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/credits", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "success": true,
  "data": {
    "teamId": "team_123",
    "teamName": "My Team",
    "credits": 125.5,
    "userId": "user_456"
  },
  "metadata": {
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

Response Fields

Field Type Description
success boolean Whether the request was successful
data object
data.teamId string Team identifier
data.teamName string Team name
data.credits number Current credit balance
data.userId string User identifier
metadata object
metadata.timestamp string Response timestamp

Γλώσσες

Λίστα υποστηριζόμενων γλωσσών

GET /languages

Λάβετε μια λίστα όλων των υποστηριζόμενων γλωσσών με αξιολογήσεις ποιότητας

curl -X GET "https://api.i18nagent.ai/languages" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/languages', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/languages',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/languages", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "languages": [
    {
      "code": "es",
      "name": "Spanish",
      "quality": "high"
    }
  ]
}

Response Fields

Field Type Description
languages array

Εργασίες Μετάφρασης

Λήψη ιστορικού μετάφρασης

GET /translations

Λάβετε σελιδοποιημένη λίστα εργασιών μετάφρασης με προαιρετικά φίλτρα για κατάσταση, τύπο, γλώσσες-στόχους και εύρος ημερομηνιών

curl -X GET "https://api.i18nagent.ai/translations" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "translations": [
    {
      "id": "translation_job_id",
      "type": "TEXT",
      "fileName": "file_name_(for_file_translations)",
      "fileType": "file_type_(for_file_translations)",
      "targetLanguages": [
        "string"
      ],
      "status": "PENDING",
      "progress": 0,
      "wordCount": 0,
      "creditsRequired": 0,
      "createdAt": "2024-01-15T12:00:00.000Z",
      "startedAt": "2024-01-15T12:00:00.000Z",
      "completedAt": "2024-01-15T12:00:00.000Z",
      "user": {}
    }
  ],
  "pagination": {
    "page": 0,
    "limit": 0,
    "total": 0,
    "totalPages": 0
  }
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
page No Page number for pagination
limit No Number of items per page
status No Filter by translation status
type No Filter by translation type
targetLanguages No Comma-separated list of target language codes to filter by
fromDate No Filter translations created after this date
toDate No Filter translations created before this date

Response Fields

Field Type Description
translations array
pagination object
pagination.page integer
pagination.limit integer
pagination.total integer
pagination.totalPages integer

Λήψη λεπτομερειών μετάφρασης

GET /translations/{id}

Λήψη λεπτομερειών συγκεκριμένης μετάφρασης κατά ID

curl -X GET "https://api.i18nagent.ai/translations/{id}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει δομημένο JSON ως εξής:

{
  "id": "translation_job_id",
  "type": "TEXT",
  "fileName": "original_file_name_(for_file_translations)",
  "fileType": "file_type_(json,_yaml,_etc",
  "fileSize": 0,
  "targetLanguages": [
    "string"
  ],
  "context": "translation_context_or_instructions",
  "wordCount": 0,
  "creditsRequired": 0,
  "status": "PENDING",
  "progress": 0,
  "errorMessage": "error_message_if_translation_failed",
  "translatedFiles": {},
  "createdAt": "2024-01-15T12:00:00.000Z",
  "startedAt": "2024-01-15T12:00:00.000Z",
  "completedAt": "2024-01-15T12:00:00.000Z",
  "user": {}
}

Παράμετροι ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
id Yes Translation ID

Response Fields

Field Type Description
id string Translation job ID
type string Type of translation job
fileName string Original file name (for file translations)
fileType string File type (json, yaml, etc.)
fileSize integer File size in bytes
targetLanguages array Target languages for translation
context string Translation context or instructions
wordCount integer Number of words in source content
creditsRequired number Credits required for this translation
status string Current status of the translation
progress integer Progress percentage (0-100)
errorMessage string Error message if translation failed
translatedFiles object Translated file data (when completed)
createdAt string When the job was created
startedAt string When processing started
completedAt string When the job was completed
user object User who created the translation

Λήψη κατάστασης μετάφρασης

GET /translations/{id}/status

Λάβετε την κατάσταση μιας εργασίας μετάφρασης σε πραγματικό χρόνο με λεπτομερή παρακολούθηση προόδου, συμπεριλαμβανομένων: ποσοστού προόδου, χρόνου που έχει παρέλθει, εκτιμώμενου υπολειπόμενου χρόνου, πληροφοριών σημείου ελέγχου, μερικής ολοκλήρωσης για μεταφράσεις πολλαπλών γλωσσών και προϋπογεγραμμένου URLs λήψης για ολοκληρωμένα αποτελέσματα.

curl -X GET "https://api.i18nagent.ai/translations/{id}/status" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}/status', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}/status',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}/status", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "id": "translation_job_id",
  "status": "PENDING",
  "statusText": "localized_human-readable_status_message",
  "progress": 0,
  "elapsedTime": "120 seconds",
  "estimatedTimeRemaining": "45 seconds",
  "message": "Translation in progress... 65% complete",
  "chunks": {
    "completed": 0,
    "total": 0
  },
  "lastCheckpointId": "opaque_checkpoint_id_for_the_last_saved_checkpoint_(can_be_used_to_resume)",
  "checkpointDescription": "Localization (65% complete, chunk 60%)",
  "completedLanguages": [
    "es",
    "fr",
    "de"
  ],
  "partialCompletionMessage": "3 language(s) completed: es, fr, de",
  "downloadUrls": {},
  "createdAt": "2024-01-15T12:00:00.000Z",
  "startedAt": "2024-01-15T12:00:00.000Z",
  "completedAt": "2024-01-15T12:00:00.000Z",
  "metadata": {},
  "result": {},
  "error": "error_message_(only_when_failed)"
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
id Yes Translation ID

Response Fields

Field Type Description
id string Translation job ID
status string Current status
statusText string Localized human-readable status message
progress integer Progress percentage (0-100)
elapsedTime string Time elapsed since job started processing
estimatedTimeRemaining string Estimated time remaining for completion
message string Status message or error details
chunks object Batch/chunk processing progress (for large translations)
chunks.completed integer Number of chunks completed
chunks.total integer Total number of chunks
lastCheckpointId string Opaque checkpoint ID for the last saved checkpoint (can be used to resume)
checkpointDescription string Human-readable description of current checkpoint progress
completedLanguages array Array of language codes that have been completed (for multi-language translations with partial completion)
partialCompletionMessage string Message describing partial completion status
downloadUrls object Presigned download URLs for completed translations, organized by language code. Example: {"es": "https://...", "fr": "https://..."}. URLs expire after 1 hour. This is the primary method for accessing completed translation files.
createdAt string When the job was created
startedAt string When the job started processing
completedAt string When the job was completed
metadata object Additional metadata about the translation
result object Translation result (only when completed)
error string Error message (only when failed)

Λήψη αποτελέσματος μετάφρασης

GET /translations/{id}/result

Λήψη του μεταφρασμένου περιεχομένου

curl -X GET "https://api.i18nagent.ai/translations/{id}/result" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}/result', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}/result',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}/result", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
id Yes Translation ID
language No Language code for specific language result

Λήψη αρχικού αρχείου

GET /translations/{id}/original

Λήψη του αρχικού μεταφορτωμένου αρχείου

curl -X GET "https://api.i18nagent.ai/translations/{id}/original" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{id}/original', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{id}/original',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{id}/original", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
id Yes Translation ID

Συνέχιση μετάφρασης από σημείο ελέγχου

POST /translations/{id}/resume

Συνέχιση μιας αποτυχημένης ή διακεκομμένης μετάφρασης από ένα συγκεκριμένο σημείο ελέγχου ή αυτόματα από το τελευταίο επιτυχημένο σημείο ελέγχου

curl -X POST "https://api.i18nagent.ai/translations/{id}/resume" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/{id}/resume', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/{id}/resume',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/{id}/resume", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "success": true,
  "message": "Translation resume initiated",
  "id": "translation_job_id",
  "checkpointId": "the_checkpoint_id_from_which_the_translation_is_resuming",
  "description": "Resuming from last checkpoint",
  "status": "PROCESSING"
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
id Yes Translation ID

Παράμετροι Σώματος Αιτήματος

Παράμετρος Τύπος Απαιτείται Περιγραφή
checkpointId string No Opaque checkpoint ID to resume from (obtained from status endpoint). If not provided and autoDetect is true, will resume from last successful checkpoint.
continueToEnd boolean No Whether to continue processing all remaining content after resuming (default: true)
autoDetect boolean No Automatically detect and resume from the last successful checkpoint if checkpointId is not provided (default: true)

Response Fields

Field Type Description
success boolean Whether the resume was successfully initiated
message string Status message
id string Translation job ID
checkpointId string The checkpoint ID from which the translation is resuming
description string Human-readable description of the resume action
status string Current status of the translation after resuming

Λήψη ενεργών εργασιών μετάφρασης

GET /translations/jobs/active

Λήψη λίστας των τρεχόντων ενεργών εργασιών μετάφρασης

curl -X GET "https://api.i18nagent.ai/translations/jobs/active" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/jobs/active', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/jobs/active',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/jobs/active", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "activeJobs": [
    {
      "id": "string",
      "type": "FILE",
      "fileName": "string",
      "fileType": "string",
      "text": "string",
      "targetLanguages": [
        "string"
      ],
      "status": "PENDING",
      "progress": 0,
      "wordCount": 0,
      "creditsRequired": 0,
      "createdAt": "string",
      "startedAt": "string",
      "originalPreview": "string",
      "user": {
        "id": "string",
        "name": "string",
        "email": "string"
      }
    }
  ]
}

Response Fields

Field Type Description
activeJobs array

Λήψη αποτελεσμάτων μετάφρασης

POST /translations/{jobId}/download

Λήψη ολοκληρωμένων αποτελεσμάτων μετάφρασης. Επιστρέφει προϋπογεγραμμένα URLs λήψης οργανωμένα ανά γλώσσα. Τα URLs λήγουν μετά από 24 ώρες.

curl -X POST "https://api.i18nagent.ai/translations/{jobId}/download" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{jobId}/download', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/{jobId}/download',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/{jobId}/download", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "jobId": "translation_job_id",
  "fileName": "original_file_name",
  "targetLanguages": [
    "string"
  ],
  "requestedLanguages": [
    "string"
  ],
  "downloadUrls": {},
  "message": "Translation files ready for download. Use downloadUrls to access each language file.",
  "expiresIn": "24 hours",
  "partialFailure": true,
  "failedLanguages": [
    "string"
  ],
  "errorMessage": "error_message_for_failed_languages",
  "warning": "Translation completed partially. 2 of 5 language(s) failed: ja, zh-CN"
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
jobId Yes Translation job ID

Response Fields

Field Type Description
jobId string Translation job ID
fileName string Original file name
targetLanguages array Completed target languages available for download
requestedLanguages array Originally requested target languages
downloadUrls object Presigned download URLs organized by language code. Example: {"es": {"url": "https://...", "key": "..."}, "fr": {"url": "https://...", "key": "..."}}
message string Status or information message
expiresIn string Expiration time for download URLs
partialFailure boolean Indicates if some languages failed to translate
failedLanguages array Language codes that failed to translate
errorMessage string Error message for failed languages
warning string Warning message about partial completion

Λήψη αρχείου μετάφρασης για συγκεκριμένη γλώσσα

GET /translations/{jobId}/files/{language}

Λήψη ενός μεμονωμένου αρχείου μετάφρασης για μια συγκεκριμένη γλώσσα-στόχο. Επιστρέφει το περιεχόμενο του αρχείου απευθείας με την κατάλληλη κεφαλίδα Content-Type.

curl -X GET "https://api.i18nagent.ai/translations/{jobId}/files/{language}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/translations/{jobId}/files/{language}', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/translations/{jobId}/files/{language}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/translations/{jobId}/files/{language}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

"string"

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
jobId Yes Translation job ID
language Yes Target language code (e.g., 'es', 'fr', 'ja')

Δημιουργία μετάφρασης με ροή προόδου

POST /translations/stream

Δημιουργία μετάφρασης με Server-Sent Events (SSE) για ενημερώσεις προόδου σε πραγματικό χρόνο. Υποστηρίζει μόνο μετάφραση κειμένου (όχι αρχείων). Επιστρέφει ενημερώσεις προόδου σε πραγματικό χρόνο ως συμβάντα SSE.

curl -X POST "https://api.i18nagent.ai/translations/stream" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/stream', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/stream',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/stream", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

Παράμετροι Σώματος Αιτήματος

Παράμετρος Τύπος Απαιτείται Περιγραφή
texts array Yes Array of texts to translate
targetLanguage string No Target language code (e.g., 'es', 'fr', 'ja') - for single language translation
targetAudience string No Target audience (e.g., 'general', 'technical', 'casual', 'formal') (default: general)
industry string No Industry context (e.g., 'technology', 'healthcare', 'finance') (default: technology)
sourceLanguage string No Source language code (auto-detected if not provided)
region string No Specific region for localization (e.g., 'Spain', 'Mexico', 'Brazil')
targetLanguages array No Array of target language codes (e.g., ['es', 'fr', 'zh-CN']) - for multi-language translation. Cannot be used together with targetLanguage.
context string No Optional additional context or instructions for the translation (e.g., 'Keep technical terms in English', 'Use formal tone', 'Preserve brand names')
pseudoTranslation boolean No Enable pseudo-translation mode for testing i18n implementations without AI translation and NO credit cost. Transforms text with accents, brackets, and optional CJK characters to identify untranslated strings and test UI layout. (default: false)
pseudoOptions object No Configuration options for pseudo-translation (only used when pseudoTranslation is true)
skipWarnings boolean No Skip source text quality warnings and proceed with translation (default: false). When false, warnings about problematic source text (e.g., hard-to-translate phrases, pluralization issues, text expansion concerns) will be returned in the response under 'validationSuggestions' field. When true, these warnings are suppressed for cleaner output. (default: false)

Λήψη εκτίμησης κόστους μετάφρασης

POST /translations/estimate

Υπολογισμός αριθμού λέξεων και απαιτούμενων πιστώσεων για μετάφραση

curl -X POST "https://api.i18nagent.ai/translations/estimate" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/estimate', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/estimate',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/estimate", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "wordCount": 0,
  "creditsRequired": 0,
  "fileType": "txt",
  "estimatedCostUSD": 0
}

Παράμετροι Σώματος Αιτήματος

Παράμετρος Τύπος Απαιτείται Περιγραφή
content string Yes Content to analyze
fileType string No File type for content analysis (default: txt)

Response Fields

Field Type Description
wordCount integer Number of words in the content
creditsRequired number Credits required for translation
fileType string File type used for analysis
estimatedCostUSD number Estimated cost in USD

Ανάλυση

Validate source text for translation readiness

POST /analyze

Lightweight validation of source text to identify potential issues before translation. Returns validation results with error codes for programmatic access. This endpoint does NOT consume credits - it runs fast, deterministic validation without AI/LLM calls.

curl -X POST "https://api.i18nagent.ai/analyze" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/analyze', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/analyze',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/analyze", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

The above command returns JSON structured like this:

{
  "success": true,
  "isValid": true,
  "hasWarnings": true,
  "wordCount": 0,
  "issues": [
    {
      "code": "EMPTY_CONTENT",
      "severity": "info",
      "message": "human-readable_description_of_the_issue",
      "suggestion": "suggested_fix_for_the_issue",
      "affectedCount": 0,
      "examples": [
        "string"
      ]
    }
  ],
  "totalIssues": 0,
  "summary": {
    "errors": 0,
    "warnings": 0,
    "info": 0
  },
  "errorCodes": {
    "EMPTY_CONTENT": "string",
    "ENCODING_ISSUES": "string",
    "UNCLOSED_PLACEHOLDER": "string",
    "NESTED_PLACEHOLDERS": "string",
    "INCONSISTENT_PLACEHOLDER_FORMAT": "string",
    "HARDCODED_PLURALS": "string",
    "VERY_LONG_STRINGS": "string",
    "INVISIBLE_CHARACTERS": "string",
    "EMPTY_JSON_VALUES": "string",
    "INVALID_JSON": "string",
    "HARDCODED_VALUES": "string"
  }
}

Request Body Parameters

Parameter Type Required Description
content string Yes Content to validate (text or JSON string)
fileType string No File type hint for validation (auto-detected if not provided) (default: auto)

Response Fields

Field Type Description
success boolean Whether validation completed (same as isValid)
isValid boolean Whether content passed validation (no errors)
hasWarnings boolean Whether content has warnings (but no blocking errors)
wordCount integer Number of words in the content
issues array List of validation issues found
totalIssues integer Total number of issues found
summary object Summary counts by severity
summary.errors integer Number of error-level issues
summary.warnings integer Number of warning-level issues
summary.info integer Number of info-level issues
errorCodes object Reference enum of all possible error codes for programmatic access
errorCodes.EMPTY_CONTENT string
errorCodes.ENCODING_ISSUES string
errorCodes.UNCLOSED_PLACEHOLDER string
errorCodes.NESTED_PLACEHOLDERS string
errorCodes.INCONSISTENT_PLACEHOLDER_FORMAT string
errorCodes.HARDCODED_PLURALS string
errorCodes.VERY_LONG_STRINGS string
errorCodes.INVISIBLE_CHARACTERS string
errorCodes.EMPTY_JSON_VALUES string
errorCodes.INVALID_JSON string
errorCodes.HARDCODED_VALUES string

Namespace Translations

Μεταφόρτωση αρχείου μετάφρασης για επαναχρησιμοποίηση namespace

POST /namespaces/{namespace}/translations/upload

Μεταφόρτωση υπάρχοντος αρχείου μετάφρασης σε ένα namespace για μελλοντική επαναχρησιμοποίηση. Αυτό επιτρέπει τη βελτιστοποίηση κόστους με την επαναχρησιμοποίηση προηγουμένως μεταφρασμένων συμβολοσειρών. Το αρχείο υποβάλλεται σε επεξεργασία και εξάγονται ζεύγη μετάφρασης για προσωρινή αποθήκευση.

curl -X POST "https://api.i18nagent.ai/namespaces/{namespace}/translations/upload" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/upload',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/namespaces/{namespace}/translations/upload", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "success": true,
  "fileId": "string",
  "pairsStored": 0,
  "pairsUpdated": 0,
  "message": "string"
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
namespace Yes Namespace identifier (3-50 chars, alphanumeric + hyphens/underscores only)

Response Fields

Field Type Description
success boolean
fileId string
pairsStored integer Number of new translation pairs stored
pairsUpdated integer Number of existing translation pairs updated
message string

Λήψη στατιστικών μετάφρασης χώρου ονομάτων

GET /namespaces/{namespace}/translations/stats

Λήψη στατιστικών για μεταφορτωμένα αρχεία μετάφρασης και επαναχρησιμοποίηση προσωρινής μνήμης για ένα χώρο ονομάτων

curl -X GET "https://api.i18nagent.ai/namespaces/{namespace}/translations/stats" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/stats', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/stats',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/namespaces/{namespace}/translations/stats", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "namespaceId": "string",
  "namespaceName": "string",
  "totalFiles": 0,
  "files": [
    {
      "id": "string",
      "baseFileName": "string",
      "sourceLocale": "string",
      "targetLocale": "string",
      "pairsExtracted": 0,
      "createdAt": "2024-01-15T12:00:00.000Z"
    }
  ],
  "cacheStatistics": [
    {
      "sourceLocale": "string",
      "targetLocale": "string",
      "pairCount": 0,
      "totalReuses": 0
    }
  ]
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
namespace Yes Namespace identifier

Response Fields

Field Type Description
namespaceId string
namespaceName string
totalFiles integer
files array
cacheStatistics array

Λίστα μεταφορτωμένων αρχείων μετάφρασης στο χώρο ονομάτων

GET /namespaces/{namespace}/translations/files

Λήψη σελιδοποιημένης λίστας μεταφορτωμένων αρχείων μετάφρασης για ένα χώρο ονομάτων

curl -X GET "https://api.i18nagent.ai/namespaces/{namespace}/translations/files" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/files', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/files',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/namespaces/{namespace}/translations/files", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "namespaceId": "string",
  "namespaceName": "string",
  "totalFiles": 0,
  "limit": 0,
  "offset": 0,
  "files": [
    {
      "id": "string",
      "baseFileName": "string",
      "originalFileName": "string",
      "fileType": "string",
      "fileSize": 0,
      "sourceLocale": "string",
      "targetLocale": "string",
      "pairsExtracted": 0,
      "status": "string",
      "uploadedBy": "string",
      "createdAt": "2024-01-15T12:00:00.000Z",
      "updatedAt": "2024-01-15T12:00:00.000Z"
    }
  ]
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
namespace Yes Namespace identifier
limit No Maximum number of files to return
offset No Number of files to skip for pagination

Response Fields

Field Type Description
namespaceId string
namespaceName string
totalFiles integer
limit integer
offset integer
files array

Διαγραφή μεταφορτωμένου αρχείου μετάφρασης

DELETE /namespaces/{namespace}/translations/files/{fileId}

Διαγραφή ενός μεταφορτωμένου αρχείου μετάφρασης και όλων των σχετικών ζευγών μετάφρασης από την προσωρινή μνήμη

curl -X DELETE "https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}', {
  method: 'DELETE',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.delete(
    'https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("DELETE", "https://api.i18nagent.ai/namespaces/{namespace}/translations/files/{fileId}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "success": true,
  "fileName": "string",
  "pairsDeleted": 0,
  "message": "string"
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
namespace Yes Namespace identifier
fileId Yes File ID to delete

Response Fields

Field Type Description
success boolean
fileName string
pairsDeleted integer
message string

Μεταφόρτωση παράλληλων αρχείων μετάφρασης

POST /translations/upload-parallel

Μεταφορτώστε αρχεία πηγής και στόχου παράλληλα για εξαγωγή ζεύγους μετάφρασης και προσωρινή αποθήκευση. Και τα δύο αρχεία πρέπει να έχουν την ίδια δομή και τύπο αρχείου.

curl -X POST "https://api.i18nagent.ai/translations/upload-parallel" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/translations/upload-parallel', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/translations/upload-parallel',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/translations/upload-parallel", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "success": true,
  "fileId": "string",
  "pairsStored": 0,
  "pairsUpdated": 0,
  "message": "string"
}

Response Fields

Field Type Description
success boolean
fileId string
pairsStored integer Number of new translation pairs stored
pairsUpdated integer Number of existing translation pairs updated
message string

Αρχεία

Λήψη αρχείου από αποθήκευση

GET /files/{filePath}

Εξυπηρετεί αρχεία από τοπική αποθήκευση (ανάπτυξη) ή S3 (παραγωγή). Χρησιμοποιείται για πρόσβαση σε μεταφορτωμένα και μεταφρασμένα αρχεία.

curl -X GET "https://api.i18nagent.ai/files/{filePath}" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json"
const response = await fetch('https://api.i18nagent.ai/files/{filePath}', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.get(
    'https://api.i18nagent.ai/files/{filePath}',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    
    req, _ := http.NewRequest("GET", "https://api.i18nagent.ai/files/{filePath}", )
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "error": "Detailed error message describing what went wrong",
  "success": false
}

Παράμετροι Ερωτήματος

Παράμετρος Απαιτείται Περιγραφή
filePath Yes File path including any subdirectories (e.g., 'uploads/test-file.json' or 'translations/result.json')

Σφάλματα

Το API του i18n-agent χρησιμοποιεί τους ακόλουθους κωδικούς σφάλματος:

Κωδικός Σφάλματος Σημασία
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is invalid.
402 Payment Required -- Insufficient credits in your account.
403 Forbidden -- Your API key is inactive or team not found.
404 Not Found -- The specified resource could not be found.
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

Μορφή Απόκρισης Σφάλματος

{
  "error": "Detailed error message describing what went wrong",
  "success": false
}

Ανάλυση περιεχομένου για ετοιμότητα μετάφρασης

POST /analyze

Ελαφριά επικύρωση του πηγαίου κειμένου για τον εντοπισμό πιθανών προβλημάτων πριν από τη μετάφραση. Επιστρέφει αποτελέσματα επικύρωσης με κωδικούς σφαλμάτων για προγραμματική πρόσβαση. Αυτό το endpoint ΔΕΝ καταναλώνει πιστώσεις - εκτελεί γρήγορη, ντετερμινιστική επικύρωση χωρίς κλήσεις AI/LLM.

curl -X POST "https://api.i18nagent.ai/analyze" \
  -H "Authorization: Bearer i18n_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
  "texts": [
    "Hello, world!",
    "Welcome to our service"
  ],
  "targetLanguage": "es",
  "targetAudience": "general",
  "industry": "technology",
  "sourceLanguage": "en",
  "region": "Mexico",
  "notes": "Keep technical terms in English, use formal tone"
}'
const response = await fetch('https://api.i18nagent.ai/analyze', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer i18n_your_api_key_here',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    })
});

const data = await response.json();
console.log(data);
import requests
import json

response = requests.post(
    'https://api.i18nagent.ai/analyze',
    headers={
        'Authorization': 'Bearer i18n_your_api_key_here',
        'Content-Type': 'application/json'
    },
    json={
        "texts": [
            "Hello, world!",
            "Welcome to our service"
        ],
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
        "sourceLanguage": "en",
        "region": "Mexico",
        "notes": "Keep technical terms in English, use formal tone"
    }
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "net/http"
)

func main() {
    client := &http.Client{}
    data := map[string]interface{}{
        "texts": []string{"Hello, world!", "Welcome to our service"},
        "targetLanguage": "es",
        "targetAudience": "general",
        "industry": "technology",
    }
    jsonData, _ := json.Marshal(data)
    
    req, _ := http.NewRequest("POST", "https://api.i18nagent.ai/analyze", bytes.NewBuffer(jsonData))
    req.Header.Add("Authorization", "Bearer i18n_your_api_key_here")
    req.Header.Add("Content-Type", "application/json")
    
    resp, _ := client.Do(req)
    defer resp.Body.Close()
}

Η παραπάνω εντολή επιστρέφει JSON δομημένο ως εξής:

{
  "translations": [
    {
      "original": "Hello, world!",
      "translated": "¡Hola, mundo!",
      "confidence": 0.98
    }
  ],
  "metadata": {
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "wordCount": 2,
    "creditsUsed": 0.002,
    "timestamp": "2024-01-15T12:00:00.000Z"
  }
}

Παράμετροι Σώματος Αιτήματος

Παράμετρος Τύπος Απαιτείται Περιγραφή
targetLanguage string Ναι Κωδικός γλώσσας-στόχου για μετάφραση
targetAudience string Όχι Κοινό-στόχος (προεπιλογή: general)
industry string Όχι Πλαίσιο βιομηχανίας (προεπιλογή: γενικό)
sourceLanguage string Όχι Κωδικός γλώσσας προέλευσης (αυτόματα εντοπισμένος εάν δεν παρέχεται)
region string Όχι Συγκεκριμένη περιοχή για τοπική προσαρμογή
content object Ναι Περιεχόμενο προς ανάλυση (κείμενο, πίνακας κειμένων ή δομημένο αντικείμενο)
fileType string Όχι Προαιρετικός τύπος αρχείου εάν το περιεχόμενο προέρχεται από αρχείο

Μεταφράσεις Namespace