🔑

📋 LanguageService APIv1

Book interpreters and manage sessions

📥 Download OpenAPI Spec

Sessions

GET/sessionsList sessions

Retrieve a list of interpretation sessions for your organization. Results are paginated and sorted by creation date (newest first).

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/sessions", {
    method: "GET",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "data": [ { "id": "sess_1234567890", "object": "session", "status": "scheduled", "fromLanguage": "en", "toLanguage": "es", "serviceType": "video", "duration": 60, "scheduledAt": "2024-01-15T14:00:00Z", "interpreter": { "id": "int_9876543210", "name": "Maria Garcia", "rating": 4.9 }, "createdAt": "2024-01-10T10:30:00Z" } ], "hasMore": true, "totalCount": 45 }
POST/sessionsCreate a session

Create a new interpretation session request. ## Session Types | Type | Description | |------|-------------| | `video` | Video interpretation with screen sharing | | `audio` | Audio-only interpretation | | `in_person` | On-site interpreter dispatch | | `document` | Document translation | ## Scheduling - **On-demand**: Leave `scheduledAt` empty for immediate connection - **Scheduled**: Provide `scheduledAt` for future appointments

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/sessions", {
    method: "POST",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "id": "sess_1234567890", "object": "session", "status": "pending", "fromLanguage": "en", "toLanguage": "es", "serviceType": "video", "duration": 60, "estimatedCost": 4500, "currency": "usd", "createdAt": "2024-01-10T10:30:00Z" }
GET/sessions/{id}Retrieve a session

Retrieve a session

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/sessions/{id}", {
    method: "GET",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "id": "sess_1234567890", "object": "session", "status": "in_progress", "fromLanguage": "en", "toLanguage": "es", "serviceType": "video", "duration": 60, "interpreter": { "id": "int_9876543210", "name": "Maria Garcia", "rating": 4.9, "certifications": [ "ATA", "NAJIT" ] }, "roomUrl": "https://meet.nowlanguage.com/sess_1234567890", "startedAt": "2024-01-15T14:00:00Z", "createdAt": "2024-01-10T10:30:00Z" }
PATCH/sessions/{id}Update a session

Update session details (only for pending/scheduled sessions)

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/sessions/{id}", {
    method: "PATCH",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "success": true, "message": "Operation completed successfully" }
POST/sessions/{id}/cancelCancel a session

Cancel a pending or scheduled session. **Cancellation Policy:** - Free cancellation up to 2 hours before scheduled time - 50% charge for cancellations within 2 hours - Full charge for no-shows

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/sessions/{id}/cancel", {
    method: "POST",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "id": "sess_1234567890", "object": "session", "status": "pending", "fromLanguage": "en", "toLanguage": "es", "serviceType": "video", "duration": 60, "estimatedCost": 4500, "currency": "usd", "createdAt": "2024-01-10T10:30:00Z" }
POST/sessions/{id}/joinJoin a session

Get connection details to join an active session

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/sessions/{id}/join", {
    method: "POST",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "id": "sess_1234567890", "object": "session", "status": "pending", "fromLanguage": "en", "toLanguage": "es", "serviceType": "video", "duration": 60, "estimatedCost": 4500, "currency": "usd", "createdAt": "2024-01-10T10:30:00Z" }

Languages

GET/languagesList supported languages

Get all languages available for interpretation

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/languages", {
    method: "GET",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "success": true, "message": "Operation completed successfully" }
GET/languages/availabilityCheck interpreter availability

Check real-time availability of interpreters for a language pair

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/languages/availability", {
    method: "GET",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "success": true, "message": "Operation completed successfully" }

Interpreters

GET/interpretersList interpreters

Search for interpreters by language, specialty, or availability

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/interpreters", {
    method: "GET",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "data": [ { "id": "int_9876543210", "object": "interpreter", "name": "Maria Garcia", "languages": [ "en", "es", "pt" ], "rating": 4.9, "totalSessions": 1250, "available": true, "certifications": [ "ATA", "NAJIT" ] } ], "hasMore": false, "totalCount": 1 }

Webhooks

GET/webhooksList webhook endpoints

List webhook endpoints

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/webhooks", {
    method: "GET",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "success": true, "message": "Operation completed successfully" }
POST/webhooksCreate a webhook endpoint

Subscribe to real-time events. ## Available Events | Event | Description | |-------|-------------| | `session.created` | New session request | | `session.accepted` | Interpreter assigned | | `session.started` | Session in progress | | `session.completed` | Session ended | | `session.cancelled` | Session cancelled | | `interpreter.joined` | Interpreter connected | | `payment.completed` | Payment processed |

// Node.js (Express backend example)
const express = require("express");
const app = express();

const NL_API_KEY = process.env.NOWLANGUAGE_API_KEY;

app.get("/book-interpreter", async (req, res) => {
  const response = await fetch("https://api.nowlanguage.com/v1/webhooks", {
    method: "POST",
    headers: {
      "Authorization": "Bearer " + NL_API_KEY,
      "Content-Type": "application/json"
    }
  });
  const data = await response.json();
  res.json(data);
});
Response200 OK
{ "success": true, "message": "Operation completed successfully" }