Skip to main content
GET
/
v1
/
technology
/
name
/
{name}
Lookup technology by name API
curl --request GET \
  --url https://api.technologychecker.io/v1/technology/name/{name} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.technologychecker.io/v1/technology/name/{name}"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.technologychecker.io/v1/technology/name/{name}', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.technologychecker.io/v1/technology/name/{name}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

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

func main() {

	url := "https://api.technologychecker.io/v1/technology/name/{name}"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.technologychecker.io/v1/technology/name/{name}")
  .header("Authorization", "Bearer <token>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.technologychecker.io/v1/technology/name/{name}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "success": true,
  "data": {
    "exists": true,
    "technology": {
      "id": 268,
      "name": "React",
      "category": "JavaScript Frameworks"
    }
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Missing or invalid API key"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Missing or invalid API key"
  }
}

Frequently asked questions

No. The name parameter is case-insensitive. shopify, Shopify, and SHOPIFY all match the same technology. Names with spaces or special characters should be URL-encoded (e.g., Google%20Analytics).
The response returns "exists": false with a null technology field. You won’t get a 404 error. The endpoint always returns HTTP 200, and you check the exists boolean in the response to determine if a match was found.
Use this endpoint when you know the exact technology name and need a quick, precise match (1 credit). Use the search endpoint (GET /v1/technologies) when you need fuzzy matching across names and categories or want to browse available technologies.

Authorizations

Authorization
string
header
required

API key in format tapi_live_[32-char] (live) or tapi_test_[32-char] (test)

Path Parameters

name
string
required

Technology name (URL-encoded)

Example:

"React"

Response

Technology lookup result

success
boolean
Example:

true

data
object