API & AI Integration Reference
Fast, CORS-enabled, unauthenticated REST APIs providing unified real-time Singapore data for developers, autonomous AI agents, and custom integrations.
β‘ Overview & Base URL
All SingaNow APIs are served over HTTPS, return UTF-8 JSON payloads with standard HTTP response status codes, and allow cross-origin requests (CORS). No API keys or registration tokens are required for public endpoints.
Live Bus Arrival Times & Capacity
Returns real-time arrival predictions, passenger load levels (SEA: Seats Available, SDA: Standing Available, LSD: Limited Standing), wheelchair accessibility, and next 3 buses for a given bus stop.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
stop | string | Required | β | 5-digit Singapore Bus Stop Code (e.g. 01012). |
service | string | Optional | β | Filter by bus service number (e.g. 190). |
refresh | boolean | Optional | false | Set to 1 to bypass cache and query LTA directly. |
Public Bus Transit Journey Planner
Multi-modal bus journey planner. Resolves origin and destination from 5-digit bus stop codes (e.g. 01012), GPS coordinates (1.2968,103.8525), or landmark/stop search terms (e.g. Orchard, Tang Plaza). Returns ordered direct routes and 1-transfer routes with walking distances, stop sequences, cumulative travel times, Google Maps transit deep links, and live arrival times for the first boarding bus.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
from | string | Required | β | Origin 5-digit bus stop code, "lat,lng" coordinates, or landmark/road search term (e.g. 01012). |
to | string | Required | β | Destination 5-digit bus stop code, "lat,lng" coordinates, or landmark/road search term (e.g. 09048). |
Bus Services Directory & Full Route Lookup
Returns all public bus services or full bidirectional stop sequences, operating hours, and operators for a specific service.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
service | string | Optional | β | Single bus service lookup with full route stops (e.g. 190). |
q | string | Optional | β | Filter by service number or terminal/interchange name. |
operator | string | Optional | β | SBST, SMRT, TTS, GAS. |
category | string | Optional | β | TRUNK, FEEDER, EXPRESS, INDUSTRIAL. |
Bus Stops Lookup & Search
Search over 5,200 Singapore bus stops by stop code, road name, or description, with calling bus service numbers.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
q | string | Optional | β | Keyword query (e.g. Orchard, Bedok, Victoria). |
code | string | Optional | β | Exact 5-digit bus stop code lookup (e.g. 09048). |
limit | integer | Optional | 30 | Max results (1 to 100). |
Sequential Bus Route Stops
Returns the ordered stop sequence, cumulative distance in kilometers, and scheduled first/last bus timings for a given service.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
service | string | Required | β | Bus service number (e.g. 65). |
dir | integer | Optional | 1 | Direction: 1 (Outbound) or 2 (Return). |
GPS Nearby Bus Stops & Distance
Finds the nearest bus stops and walking distances from any GPS coordinate in Singapore.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
lat | float | Required | β | WGS84 Latitude (e.g. 1.2968). |
lng | float | Required | β | WGS84 Longitude (e.g. 103.8525). |
radius | float | Optional | 1.2 | Radius in kilometers (0.1 to 10.0). |
limit | integer | Optional | 20 | Max results (1 to 50). |
Planned Bus Route Changes
Returns scheduled upcoming bus route diversions, road works, and network adjustments.
2-Hour Regional, 24-Hour Forecast & Live Stations
Provides live 2-hour forecasts across 47 towns, 24-hour national forecast, 4-day outlook, and live climate station telemetry (temperature, humidity, wind, rain).
PSI Air Quality, PM2.5 & UV Index
24-hour National & Regional Pollutant Standards Index (PSI), 1-hour PM2.5 readings (North, South, East, West, Central), and hourly UV index trends.
Live Traffic Camera Feeds
High-definition snapshot images updated every 90 seconds across PIE, CTE, AYE, BKE, ECP, SLE, KJE, TPE, MCE, and Woodlands/Tuas Malaysia border checkpoints.
MRT & LRT Station Crowd Density Real Time
Returns real-time platform crowdedness levels (Low, Moderate, High, NA) for MRT/LRT stations across Singapore train network lines (EWL, NSL, NEL, CCL, CEL, CGL, DTL, TEL, BPL, SLRT, PLRT). Cached on disk for 300s (LTA refresh frequency: 10 minutes).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
line | string | Optional | ALL | Train line code (EWL, NSL, NEL, CCL, DTL, TEL, BPL, SLRT, PLRT, or ALL). |
station | string | Optional | β | Specific station code to filter (e.g. EW13, NS1, DT19). |
crowd | string | Optional | β | Filter by crowd level code (l for Low, m for Moderate, h for High). |
refresh | boolean | Optional | 0 | Bypass disk cache and query live LTA feed. |
Train Service Alerts & Disruptions
Returns real-time train network operational status, disruptions, major delays, affected stations, free public bus boarding, and free MRT bridging shuttles across Singapore MRT & LRT lines. Cached on disk for 120s (LTA updates ad-hoc).
Station Platform Crowd Density Forecast
Returns 24-hour forecasted station platform crowdedness level at 30-minute intervals (48 intervals per station) for Singapore MRT and LRT lines. Cached on disk for 3600s (LTA updates daily).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
line | string | Optional | NSL | Train line code (NSL, EWL, NEL, CCL, DTL, TEL, BPL, SLRT, PLRT). |
station | string | Optional | β | Optional station code to filter (e.g. NS1, EW24). |
refresh | boolean | Optional | 0 | Bypass disk cache and query live LTA feed. |
Expressway Estimated Travel Times
Returns estimated travel times (in minutes) for expressway segments across Singapore (AYE, PIE, CTE, ECP, BKE, KJE, SLE, TPE, MCE, KPE). Cached on disk for 180s (LTA refresh frequency: 5 minutes).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
expressway | string | Optional | ALL | Expressway abbreviation (e.g. AYE, PIE, CTE, ECP). |
direction | integer | Optional | β | Direction of travel: 1 (East/South to West/North) or 2 (West/North to East/South). |
refresh | boolean | Optional | 0 | Bypass disk cache and query live LTA feed. |
Live Traffic Incidents & Hazards
Returns road incidents currently occurring across Singapore: Accidents, Vehicle Breakdowns, Road Works, Road Blocks, Heavy Traffic, Weather, and Diversions with start coordinates and advisories. Cached for 60s (LTA refresh frequency: 2 minutes).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | string | Optional | β | Incident type filter (e.g. Accident, Roadwork, Vehicle breakdown). |
q | string | Optional | β | Keyword search in message description or road. |
refresh | boolean | Optional | 0 | Bypass disk cache and query live LTA feed. |
VMS / EMAS Digital Signboards
Returns traffic advisories and incident alerts displayed on EMAS variable message system signboards along expressways and major arterial roads with signboard coordinates. Cached for 60s (LTA refresh frequency: 2 minutes).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
active_only | boolean | Optional | 0 | Set to 1 to only show signboards with active messages. |
expressway | string | Optional | β | Filter by expressway abbreviation (e.g. KPE, PIE). |
q | string | Optional | β | Search keyword in display message. |
refresh | boolean | Optional | 0 | Bypass disk cache and query live LTA feed. |
Traffic Speed Bands (v4)
Returns current vehicle traffic speeds on expressways and arterial roads, expressed in speed bands (Band 1: 0-9km/h to Band 8: 70+km/h) with start/end GIS coordinates. Cached for 180s (LTA refresh frequency: 5 minutes).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
road | string | Optional | β | Road name filter (e.g. Orchard, Serangoon, CTE). |
category | integer | Optional | β | Road category code (1: Expressways, 2: Major Arterials, etc.). |
band | integer | Optional | β | Speed band number (1 to 8). |
slow_only | boolean | Optional | 0 | Filter heavy / slow segments only (bands 1, 2, 3). |
limit | integer | Optional | 500 | Max road links to return (max 3000). |
Faulty Traffic Lights & Scheduled Maintenance
Returns technical alarm alerts of traffic lights currently faulty (Blackout or Flashing Yellow) or undergoing scheduled maintenance across Singapore. Cached for 60s (LTA refresh frequency: 2 minutes).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
type | integer | Optional | β | Alarm type: 4 (Blackout) or 13 (Flashing Yellow). |
node_id | string | Optional | β | Unique traffic light node ID. |
refresh | boolean | Optional | 0 | Bypass disk cache and query live LTA feed. |
Planned Road Openings
Returns information on scheduled planned road openings across Singapore including Event ID, start and end dates, servicing department/contractor, and contact numbers. Cached for 3600s (LTA refresh frequency: 24 hours).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
road | string | Optional | β | Road name keyword search. |
status | string | Optional | all | Filter status: upcoming, in_progress, past, or all. |
limit | integer | Optional | 500 | Max records to return. |
Approved Road Works
Returns approved road works currently being carried out or scheduled to be performed on roads across Singapore with contractor details and duration. Cached for 3600s (LTA refresh frequency: 24 hours).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
road | string | Optional | β | Road name keyword search. |
status | string | Optional | all | Filter status: upcoming, in_progress, past, or all. |
limit | integer | Optional | 500 | Max records to return. |
Real-Time Carpark Availability & Nearby Lots
Live parking lot availability, GPS distance calculations, and vacancy percentages across 2,600+ HDB, LTA (shopping malls & commercial hubs), and URA carparks nationwide.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
lat | float | Optional | β | User GPS latitude for nearby distance ranking. |
lng | float | Optional | β | User GPS longitude for nearby distance ranking. |
radius | float | Optional | 1.5 | Search radius in km (0.1 to 15.0 km). |
query | string | Optional | β | Search carpark code (e.g. ACB), development/mall (e.g. Suntec, Orchard), or area. |
agency | string | Optional | ALL | Filter agency (ALL, HDB, LTA, URA). |
lot_type | string | Optional | ALL | Vehicle lot type (ALL, C for cars, Y for motorcycles, H for heavy). |
sort | string | Optional | distance | Sorting order (distance, available, pct). |
page | integer | Optional | 1 | Pagination page number. |
Electric Vehicle (EV) Charging Stations & Availability
Directory and live connector availability powered by the Singapore Land Transport Authority (LTA) DataMall API across SP Mobility, Charge+, Tesla Superchargers, CDG ENGIE, Shell Recharge, Keppel Volt, TotalEnergies, and Go by City Energy. Supports 6-digit postal code lookups, connector types (CCS2, Type 2, Tesla), power outputs (7.4kW to 250kW), parking bay locations, tariffs, and GPS distance rankings.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
lat | float | Optional | β | User GPS latitude for nearby distance ranking. |
lng | float | Optional | β | User GPS longitude for nearby distance ranking. |
radius | float | Optional | 2.5 | Search radius in km (0.1 to 25.0 km). |
query | string | Optional | β | Search station name, address, estate, operator, or postal code (e.g. Orchard, Tampines, Tesla). |
operator | string | Optional | ALL | Filter operator (ALL, SP_MOBILITY, CDG_ENGIE, CHARGE_PLUS, SHELL, TESLA, KEPPEL_VOLT, TOTALENERGIES). |
speed | string | Optional | ALL | Filter charging speed (ALL, ULTRA_FAST ≥120kW, FAST_DC 50β100kW, AC_NORMAL 7.4β22kW). |
connector | string | Optional | ALL | Filter connector type (ALL, CCS2, TYPE2, TESLA). |
available_only | integer | Optional | 0 | Pass 1 to return only stations with currently available plugs. |
sort | string | Optional | distance | Sorting order (distance, available, power, name). |
page | integer | Optional | 1 | Pagination page number. |
ACRA Corporate Registry & UEN Search
Query 2.1+ million Singapore corporate entities, businesses, LLPs, societies, and healthcare institutions with full SSIC classifications and registered addresses.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
q or query | string | Required | β | Company Name or UEN (e.g. Singtel, 201400001A, Grab). |
page | integer | Optional | 1 | Page number (24 entities per page). |
Singapore Data.gov.sg v2 Catalog & Metadata
Unified authenticated gateway for Singapore Open Data Portal (Data.gov.sg) datasets, collections, schema metadata, and datastore searching powered by production API credentials.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
action | string | Optional | info | Action: datasets, metadata, collections, collection, search. |
dataset | string | Optional | β | Dataset ID (e.g. d_3f960c10fed6145404ca7b821f263b87). |
collection_id | integer | Optional | β | Collection ID (e.g. 1 for Corporate Information). |
page | integer | Optional | 1 | Page number for pagination. |
q | string | Optional | β | Full-text search keyword for datastore searches. |
β‘ Universal Tool Calling Protocol (UTCP)
SingaNow natively implements the Universal Tool Calling Protocol (UTCP) v1.0.1. Unlike proxy-based architectures that introduce wrapper processes and network hops, UTCP allows autonomous AI agents to discover declarative JSON manuals and invoke tools directly via high-speed native HTTP with 0ms proxy tax.
curl -s -X POST "https://singanow.com/utcp/tools/get_singapore_bus_arrivals" \
-H "Content-Type: application/json" \
-d '{"bus_stop_code": "01012"}'
β‘ Model Context Protocol (MCP) Server
SingaNow provides a production-grade Model Context Protocol (MCP) server enabling AI agents (Claude Desktop, Cursor, Windsurf, LangChain, OpenAI) to discover and execute real-time Singapore transit, environment, traffic, and ACRA registry tools directly via Server-Sent Events (SSE) or stateless JSON-RPC 2.0.
claude_desktop_config.json){
"mcpServers": {
"singanow": {
"url": "https://singanow.com/mcp/sse"
}
}
}
π€ AI Agent & LLM Tool Calling Schema
Copy-paste ready tool definitions compatible with OpenAI Function Calling, Anthropic Claude Tools, Google Gemini, and LangChain. For formal RFC Draft 2020-12 JSON response schemas, see llms-full.txt:
[
{
"type": "function",
"function": {
"name": "get_singapore_bus_arrivals",
"description": "Fetch live arrival times, crowding status (SEA: Seats Available, SDA: Standing Available, LSD: Limited Standing), vehicle deck type (SD/DD/BD), and wheelchair accessibility for the next 3 arriving buses at any 5-digit Singapore bus stop.",
"parameters": {
"type": "object",
"properties": {
"bus_stop_code": {
"type": "string",
"description": "5-digit zero-padded Singapore Bus Stop Code (e.g. '01012', '09048', '67009')."
},
"service_no": {
"type": "string",
"description": "Optional specific bus service number to filter (e.g. '190', '65', '10')."
}
},
"required": ["bus_stop_code"]
}
}
},
{
"type": "function",
"function": {
"name": "plan_singapore_bus_journey",
"description": "Plan a public bus journey in Singapore between any two locations. Resolves 5-digit stop codes, GPS lat/lng coordinates, or landmark/stop names. Returns direct and 1-transfer itineraries with duration, stop count, and live arrival times for the first boarding leg.",
"parameters": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"description": "Starting location: 5-digit bus stop code (e.g. '01012'), coordinates ('1.2968,103.8525'), or landmark/road name ('Victoria St', 'City Hall')."
},
"destination": {
"type": "string",
"description": "Destination location: 5-digit bus stop code (e.g. '09048'), coordinates ('1.3045,103.8331'), or landmark/road name ('Orchard Stn', 'Tang Plaza')."
}
},
"required": ["origin", "destination"]
}
}
},
{
"type": "function",
"function": {
"name": "find_nearby_singapore_bus_stops",
"description": "Find closest public bus stops from GPS coordinates in Singapore, sorted by walking distance with calling bus services.",
"parameters": {
"type": "object",
"properties": {
"latitude": {
"type": "number",
"description": "WGS84 Latitude between 1.15 and 1.48 (e.g. 1.2968)."
},
"longitude": {
"type": "number",
"description": "WGS84 Longitude between 103.58 and 104.05 (e.g. 103.8525)."
},
"radius_km": {
"type": "number",
"description": "Search radius in km (default 1.2, max 10.0)."
},
"limit": {
"type": "integer",
"description": "Maximum number of bus stops to return (default 20, max 50)."
}
},
"required": ["latitude", "longitude"]
}
}
},
{
"type": "function",
"function": {
"name": "search_singapore_bus_stops",
"description": "Search Singapore bus stops by road name, landmark name, or 5-digit stop code.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search term (e.g. 'Orchard', 'Bedok Int', 'Victoria St', '01012')."
},
"limit": {
"type": "integer",
"description": "Max results to return (default 30, max 100)."
}
},
"required": ["query"]
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_bus_service_details",
"description": "Retrieve full route details, operating operators, directions, and ordered stop sequences for a specific Singapore bus service.",
"parameters": {
"type": "object",
"properties": {
"service_no": {
"type": "string",
"description": "Bus service number (e.g. '190', '65', '14', '960e')."
}
},
"required": ["service_no"]
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_bus_route_stops",
"description": "Retrieve the sequential list of bus stops, cumulative kilometer distance, and weekday/weekend operating timetables for a bus line and direction.",
"parameters": {
"type": "object",
"properties": {
"service_no": {
"type": "string",
"description": "Bus service number (e.g. '65')."
},
"direction": {
"type": "integer",
"enum": [1, 2],
"description": "Direction 1 (outbound) or 2 (inbound). Default: 1."
}
},
"required": ["service_no"]
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_planned_bus_changes",
"description": "Retrieve scheduled future bus route diversions, road closures, and route adjustments across Singapore.",
"parameters": {
"type": "object",
"properties": {}
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_weather",
"description": "Retrieve live Singapore weather: 2-hour regional nowcast across 47 towns, 24-hour national forecast with sub-day periods, 4-day outlook, and live station readings (temperature, humidity, wind, rainfall).",
"parameters": {
"type": "object",
"properties": {}
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_environment_air_quality",
"description": "Get real-time Singapore 24-hour PSI air quality ratings, 1-hour PM2.5 readings across 5 regions (North, South, East, West, Central), and current UV index with hourly trend.",
"parameters": {
"type": "object",
"properties": {}
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_traffic_cameras",
"description": "Retrieve live expressway traffic camera image snapshot URLs and coordinates across all major expressways (PIE, CTE, AYE, BKE, etc.) and Malaysia border checkpoints (Woodlands Causeway, Tuas Second Link).",
"parameters": {
"type": "object",
"properties": {}
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_carpark_availability",
"description": "Check live parking lot vacancy and distance across 2,600+ HDB, URA, and LTA shopping mall carparks in Singapore.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Filter by carpark code (e.g. 'ACB'), mall/building name (e.g. 'Suntec', 'Orchard'), or estate."
},
"lat": {
"type": "number",
"description": "User GPS latitude for nearby distance ranking."
},
"lng": {
"type": "number",
"description": "User GPS longitude for nearby distance ranking."
},
"radius": {
"type": "number",
"description": "Search radius in km (0.1 to 15.0 km, default 1.5)."
},
"agency": {
"type": "string",
"enum": ["ALL", "HDB", "LTA", "URA"],
"description": "Filter by agency. Default: 'ALL'."
},
"lot_type": {
"type": "string",
"enum": ["ALL", "C", "Y", "H"],
"description": "Vehicle type: 'C' (Cars), 'Y' (Motorcycles), 'H' (Heavy). Default: 'ALL'."
}
}
}
}
},
{
"type": "function",
"function": {
"name": "get_singapore_ev_charging_points",
"description": "Search real-time EV charging stations and live plug availability across SP Mobility, CDG ENGIE, Charge+, Shell Recharge, Tesla Superchargers, and HDB hubs in Singapore.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Station name, shopping mall, operator, or 6-digit postal code (e.g. 'Orchard', 'Tesla', '529510')."
},
"operator": {
"type": "string",
"enum": ["ALL", "SP_MOBILITY", "CDG_ENGIE", "CHARGE_PLUS", "SHELL", "TESLA", "KEPPEL_VOLT", "TOTALENERGIES", "GO_CITY_ENERGY"],
"description": "Filter operator network."
},
"speed": {
"type": "string",
"enum": ["ALL", "ULTRA_FAST", "FAST_DC", "AC_NORMAL"],
"description": "Filter charging speed tier: ULTRA_FAST (>=120kW), FAST_DC (50-100kW), AC_NORMAL (7.4-22kW)."
},
"connector": {
"type": "string",
"enum": ["ALL", "CCS2", "TYPE2", "TESLA"],
"description": "Filter plug connector type."
},
"lat": {
"type": "number",
"description": "GPS latitude for nearby distance ranking."
},
"lng": {
"type": "number",
"description": "GPS longitude for nearby distance ranking."
},
"radius": {
"type": "number",
"description": "Search radius in km (0.1 to 25.0 km, default 2.5)."
},
"available_only": {
"type": "boolean",
"description": "Set to true to only return stations with at least 1 currently available plug."
}
}
}
}
},
{
"type": "function",
"function": {
"name": "search_singapore_acra_entity",
"description": "Search Singapore registered companies, businesses, LLPs, societies, and healthcare institutions across ACRA regulatory registries by entity name or UEN.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Company name or UEN (e.g. 'DBS Bank', 'Grab', '201812345A')."
},
"page": {
"type": "integer",
"description": "Page number (24 entities per page, default: 1)."
}
},
"required": ["query"]
}
}
}
]
π» Code Integration Examples
// Modern TypeScript / JavaScript Fetch Examples
const BASE_URL = "https://singanow.com/api";
// 1. Fetch Real-Time Bus Arrivals
async function getBusArrivals(busStopCode: string, serviceNo?: string) {
const url = new URL(`${BASE_URL}/bus/arrival`);
url.searchParams.set("stop", busStopCode);
if (serviceNo) url.searchParams.set("service", serviceNo);
const res = await fetch(url.toString());
return res.json();
}
// 2. Fetch Live EV Charging Stations
async function getEVStations(query = "Orchard", operator = "ALL") {
const url = new URL(`${BASE_URL}/ev`);
if (query) url.searchParams.set("query", query);
if (operator !== "ALL") url.searchParams.set("operator", operator);
const res = await fetch(url.toString());
return res.json();
}
// 3. Fetch Nearby Parking Vacancy
async function getCarparksNearGPS(lat: number, lng: number, radius = 1.5) {
const url = new URL(`${BASE_URL}/carparks`);
url.searchParams.set("lat", String(lat));
url.searchParams.set("lng", String(lng));
url.searchParams.set("radius", String(radius));
const res = await fetch(url.toString());
return res.json();
}
// 4. Plan Public Bus Journey
async function planBusJourney(from: string, to: string) {
const url = new URL(`${BASE_URL}/bus/plan`);
url.searchParams.set("from", from);
url.searchParams.set("to", to);
const res = await fetch(url.toString());
return res.json();
}
// Example usage:
const evData = await getEVStations("Orchard");
console.log(`Found ${evData.total} EV stations. Available plugs: ${evData.summary.totalAvailable}`);