Static docs. Zero worker cost. Full timezone depth.

A World Time API for timezone math, signed responses, and embeddable clocks.

TimeLogic API resolves time by IANA zone, IP, coordinates, or offset, then layers in conversion, calendar, DST, elapsed-time, and business-day workflows without forcing you into multiple services.

Built for RapidAPI distribution, but readable enough for engineering teams who want the exact behavior before they subscribe.

TimeLogic API monogram

Selector families stay explicit

Resolve time using `tz`, `ip`, `lat` + `lon`, or `offset`, with docs that explain where each selector works and where it does not.

Signed JSON is documented like a first-class workflow

The public signing key route, signature headers, and verification posture are surfaced alongside normal JSON examples instead of buried in a sidebar.

Clock embeds are treated like product output

The `/v1/time/clock` route gets style-aware examples, embed guidance, and a visual showcase so it reads like a feature, not a novelty endpoint.

Predictable request rules make the docs faster to trust.

Each route explains what selector families are allowed, when bulk mode is valid, how signed responses behave, and what display fields should never be parsed structurally.

Choose one target strategy

Docs make the selector rule obvious up front so teams do not mix incompatible inputs in the same request.

Confirm output semantics

Each endpoint page calls out which fields are authoritative, which are display-oriented, and when a response can be signed.

Ship with your own stack

Every endpoint includes natural-language guidance and code snippets for cURL, JavaScript, TypeScript, Python, Go, Java, C#, PHP, Ruby, and Kotlin.

Deep docs without a noisy sitemap.

Quickstart, concepts, endpoint reference, SEO guides, and a raw Swagger view are all static and generated from the committed public spec.

Get the current time for a target

Use this route to validate selector resolution and inspect the canonical single-target time payload.

View Endpoint

Search the whole reference

Jump into static search for endpoints, parameters, selector rules, guide topics, and common time API terms.

Search Docs

Raw schema included

The committed public OpenAPI document is published directly in the site and rendered through a static Swagger view.

Open Swagger
Code Examples
curl --request GET \
  --url "https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current?tz=America%2FNew_York&format=%25Y-%25m-%25d+%25H%3A%25M&sign=true" \
  --header "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com"
const url = new URL("https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current");
const query = [
  ["tz", "America/New_York"],
  ["format", "%Y-%m-%d %H:%M"],
  ["sign", "true"]
];

for (const [key, value] of query) {
  url.searchParams.set(key, value);
}

const response = await fetch(url, {
  method: "GET",
  headers: {
    "X-RapidAPI-Key": process.env.TIMELOGIC_API_KEY,
    "X-RapidAPI-Host": "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com",
  },
});

const body = await response.text();
console.log(body);
const url = new URL("https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current");
const query: Array<[string, string]> = [
  ["tz", "America/New_York"],
  ["format", "%Y-%m-%d %H:%M"],
  ["sign", "true"]
];

for (const [key, value] of query) {
  url.searchParams.set(key, value);
}

const response = await fetch(url, {
  method: "GET",
  headers: {
    "X-RapidAPI-Key": process.env.TIMELOGIC_API_KEY ?? "",
    "X-RapidAPI-Host": "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com",
  },
});

const body = await response.text();
console.log(body);
import os
import requests

url = "https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current"
params = {
    "tz": "America/New_York",
    "format": "%Y-%m-%d %H:%M",
    "sign": "true"
}
headers = {
    "X-RapidAPI-Key": os.environ["TIMELOGIC_API_KEY"],
    "X-RapidAPI-Host": "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com",
}

response = requests.get(url, params=params, headers=headers, timeout=30)
print(response.text)
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current", nil)
	query := req.URL.Query()
	query.Set("tz", "America/New_York")
	query.Set("format", "%Y-%m-%d %H:%M")
	query.Set("sign", "true")
	req.URL.RawQuery = query.Encode()
	req.Header.Set("X-RapidAPI-Key", os.Getenv("TIMELOGIC_API_KEY"))
	req.Header.Set("X-RapidAPI-Host", "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()

	body, _ := io.ReadAll(res.Body)
	fmt.Println(string(body))
}
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class TimeLogicExample {
  public static void main(String[] args) throws IOException, InterruptedException {
    HttpRequest request = HttpRequest.newBuilder()
      .uri(URI.create("https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current?tz=America%2FNew_York&format=%25Y-%25m-%25d+%25H%3A%25M&sign=true"))
      .header("X-RapidAPI-Key", System.getenv("TIMELOGIC_API_KEY"))
      .header("X-RapidAPI-Host", "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com")
      .GET()
      .build();

    HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
    System.out.println(response.body());
  }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
  static async Task Main() {
    using var client = new HttpClient();
    using var request = new HttpRequestMessage(HttpMethod.Get, "https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current?tz=America%2FNew_York&format=%25Y-%25m-%25d+%25H%3A%25M&sign=true");
    request.Headers.Add("X-RapidAPI-Key", Environment.GetEnvironmentVariable("TIMELOGIC_API_KEY"));
    request.Headers.Add("X-RapidAPI-Host", "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com");

    using var response = await client.SendAsync(request);
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
  }
}
<?php
$url = "https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current?tz=America%2FNew_York&format=%25Y-%25m-%25d+%25H%3A%25M&sign=true";

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "X-RapidAPI-Key: " . getenv("TIMELOGIC_API_KEY"),
        "X-RapidAPI-Host: timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com",
    ],
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
require "net/http"
require "uri"

uri = URI("https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current")
params = {
  "tz" => "America/New_York",
  "format" => "%Y-%m-%d %H:%M",
  "sign" => "true"
}
uri.query = URI.encode_www_form(params)

request = Net::HTTP::Get.new(uri)
request["X-RapidAPI-Key"] = ENV.fetch("TIMELOGIC_API_KEY")
request["X-RapidAPI-Host"] = "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end

puts response.body
import okhttp3.OkHttpClient
import okhttp3.Request

fun main() {
    val client = OkHttpClient()
    val request = Request.Builder()
        .url("https://timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com/v1/time/current?tz=America%2FNew_York&format=%25Y-%25m-%25d+%25H%3A%25M&sign=true")
        .get()
        .addHeader("X-RapidAPI-Key", System.getenv("TIMELOGIC_API_KEY"))
        .addHeader("X-RapidAPI-Host", "timelogic-api-world-time-timezones-time-calculations.p.rapidapi.com")
        .build()

    client.newCall(request).execute().use { response ->
        println(response.body?.string())
    }
}
Guides

The API surface stays compact, but it covers selector families, bulk lookup, signed JSON, holiday-aware calculations, and a clock endpoint that ships usable HTML.

World Time API for production apps

How to evaluate a world time API when you need more than a bare UTC conversion utility.

Read Guide

Timezone Lookup API by IANA zone, IP, coordinates, or offset

The strongest timezone APIs make input strategy and ambiguity handling clear before you ship.

Read Guide

UTC, Unix, and wall-clock timestamp conversion API

Conversion is where timestamp inputs, source timezone context, and formatting choices start to matter.

Read Guide
Enterprise

For sustained volume, broader limits, and tailored rollout requirements.

Teams with higher throughput, commercial review needs, or edge-focused deployment requirements can contact enterprise for capacity planning and a better fit than the standard self-serve path.

Start with the docs. Convert from the exact request you need.

Use the quickstart for the happy path, expand the deep sections when you need full parameter nuance, then push the same request into your preferred language snippet.