Skip to main content

Check Endpoint

Verify whether two technologies are compatible before committing to your tech stack.

Endpoint

POST /api/v1/check

Request

Headers

HeaderTypeRequiredDescription
Content-TypestringYesMust be application/json

Body

FieldTypeRequiredDescription
techAstringYesFirst technology name
techBstringYesSecond technology name

Example Request

{
  "techA": "nextjs",
  "techB": "prisma"
}

Response

Success Response (200)

{
  "version": "1.0",
  "status": "compatible",
  "severity": "info",
  "message": "Next.js works seamlessly with Prisma ORM for server-side rendering and API routes.",
  "workaround": null,
  "docsUrl": "https://devradar.dev/check/nextjs/prisma",
  "lastUpdated": "2025-01-15T10:30:00Z"
}

Response Fields

FieldTypeDescription
versionstringAPI version (always “1.0”)
statusstringcompatible, partial, incompatible, deprecated, unknown
severitystringinfo, warning, error, critical (optional)
messagestringHuman-readable compatibility description
workaroundstringnullSuggested fix for issues
docsUrlstringURL to full compatibility documentation
lastUpdatedstringISO 8601 timestamp of last data update

Status Values

StatusMeaning
compatibleWorks seamlessly
partialWorks with limitations or configuration
incompatibleFundamental conflicts exist
deprecatedOne or both technologies are end-of-life
unknownNo compatibility data available

Code Examples

cURL

curl -X POST https://devradar.dev/api/v1/check \
  -H "Content-Type: application/json" \
  -d '{"techA": "nextjs", "techB": "prisma"}'

JavaScript (fetch)

const response = await fetch('https://devradar.dev/api/v1/check', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ techA: 'nextjs', techB: 'prisma' })
});

const data = await response.json();
console.log(data.status, data.message);

JavaScript (axios)

import axios from 'axios';

const { data } = await axios.post('https://devradar.dev/api/v1/check', {
  techA: 'nextjs',
  techB: 'prisma'
});

console.log(data.status, data.message);

Python (requests)

import requests

response = requests.post('https://devradar.dev/api/v1/check', json={
    'techA': 'nextjs',
    'techB': 'prisma'
})

data = response.json()
print(data['status'], data['message'])

Go

package main

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

func main() {
    payload := map[string]string{"techA": "nextjs", "techB": "prisma"}
    body, _ := json.Marshal(payload)

    resp, _ := http.Post(
        "https://devradar.dev/api/v1/check",
        "application/json",
        bytes.NewBuffer(body),
    )
    defer resp.Body.Close()

    var data map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&data)
    println(data["status"], data["message"])
}

Example Responses

Compatible

{
  "version": "1.0",
  "status": "compatible",
  "severity": "info",
  "message": "Next.js works seamlessly with Prisma ORM for server-side rendering and API routes."
}

Partial with Workaround

{
  "version": "1.0",
  "status": "partial",
  "severity": "warning",
  "message": "Prisma does not support Edge Runtime due to Node.js APIs required for the query engine.",
  "workaround": "Use dynamic imports with 'ssr: false' for routes using Prisma, or consider Turso for Edge-compatible database."
}

Incompatible

{
  "version": "1.0",
  "status": "incompatible",
  "severity": "error",
  "message": "This framework requires a different authentication approach.",
  "workaround": "Consider using Auth0 or Clerk instead."
}

Unknown

{
  "version": "1.0",
  "status": "unknown",
  "message": "This combination hasn't been analyzed yet. Proceed with caution and test thoroughly."
}

Error Responses

400 Bad Request

{
  "version": "1.0",
  "error": {
    "code": "INVALID_INPUT",
    "message": "Both techA and techB are required."
  }
}

429 Rate Limit Exceeded

{
  "version": "1.0",
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please try again later.",
    "details": "Reset at 2025-01-15T10:31:00Z"
  }
}

Rate Limiting

  • Limit: 60 requests per minute
  • Headers: X-RateLimit-Remaining, X-RateLimit-Reset
See Rate Limits for details.

What’s Next


Try it now: Interactive API Demo