Dilip Kumar SREST API · v1 status: available
POST /v1/hire

Full Stack Developer · Hyderabad, IN

I’m an API.
Ask me in any format.

Spring Boot and Node.js services, Angular web apps and Flutter mobile apps — documented the way I build them. Every endpoint below answers in JSON, XML or YAML, and shows the request in cURL, JavaScript or Java.

RESPONSE FORMAT
Accept: application/json
CLIENT
base url: https://sdilipkumar.in/v1
uptime
5+ years
resources
10 projects
formats
JSON · XML · YAML
domains
enterprise · healthcare · education

GET/v1/me

Profile

The public developer resource, availability and related links.

REQUEST
curl -i "https://sdilipkumar.in/v1/me"   -H "Accept: application/json"
fetch("/v1/me", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/me")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "name": "Dilip Kumar S",
  "role": "Full Stack Developer",
  "location": "Hyderabad, IN",
  "remote": true
}
<?xml version="1.0" encoding="UTF-8"?>
<profile>
  <name>Dilip Kumar S</name>
  <role>Full Stack Developer</role>
  <remote>true</remote>
</profile>
name: Dilip Kumar S
role: Full Stack Developer
location: "Hyderabad, IN"
remote: true

GET/v1/skills

Skills

Backend, frontend, mobile, data and cloud capabilities.

NAMEINTYPEDESCRIPTION
categoryquerystringFilter by backend, frontend, mobile, data or cloud.
REQUEST
curl -i "https://sdilipkumar.in/v1/skills"   -H "Accept: application/json"
fetch("/v1/skills", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/skills")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "data": [
    { "category": "backend", "items": ["Java", "Spring Boot", "Node.js"] },
    { "category": "frontend", "items": ["Angular", "TypeScript"] }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<skills>
  <data><category>backend</category></data>
  <data><category>frontend</category></data>
</skills>
data:
  - category: backend
    items:
      - Java
      - Spring Boot
      - Node.js
  - category: frontend
    items:
      - Angular

GET/v1/experience

Experience

Published roles and the product domains where I contributed.

REQUEST
curl -i "https://sdilipkumar.in/v1/experience"   -H "Accept: application/json"
fetch("/v1/experience", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/experience")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "data": [
    { "role": "Full Stack Developer", "domains": ["enterprise", "healthcare"] },
    { "role": "Software Developer", "domains": ["edtech"] }
  ],
  "total": 2
}
<?xml version="1.0" encoding="UTF-8"?>
<experience>
  <data><role>Full Stack Developer</role></data>
  <total>2</total>
</experience>
data:
  - role: Full Stack Developer
    domains:
      - enterprise
      - healthcare
total: 2

GET/v1/projects

Projects

Published work described by role and domain, with standard pagination.

NAMEINTYPEDESCRIPTION
page, limitqueryintegerChoose a page and up to 50 records.
REQUEST
curl -i "https://sdilipkumar.in/v1/projects"   -H "Accept: application/json"
fetch("/v1/projects", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/projects")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "data": [
    { "id": "proj_01", "domain": "healthcare", "role": "Backend Developer" },
    { "id": "proj_02", "domain": "enterprise", "role": "Full Stack Developer" }
  ],
  "total": 5
}
<?xml version="1.0" encoding="UTF-8"?>
<projects>
  <data><id>proj_01</id><domain>healthcare</domain></data>
  <total>5</total>
</projects>
data:
  - id: proj_01
    domain: healthcare
    role: Backend Developer
total: 5

GET/v1/projects/{id}

Project resource

One published project with its stack, modules and public links.

NAMEINTYPEDESCRIPTION
id*pathstringThe stable project resource id.
REQUEST
curl -i "https://sdilipkumar.in/v1/projects/{id}"   -H "Accept: application/json"
fetch("/v1/projects/{id}", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/projects/{id}")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "id": "proj_05",
  "type": "personal",
  "modules": ["app", "admin", "shared"],
  "links": { "live": "[LIVE URL]", "source": "[REPO URL]" }
}
<?xml version="1.0" encoding="UTF-8"?>
<project>
  <id>proj_05</id>
  <type>personal</type>
  <modules>app</modules>
</project>
id: proj_05
type: personal
modules:
  - app
  - admin
  - shared

GET/v1/education

Education

Degrees and fields returned as a compact resource.

REQUEST
curl -i "https://sdilipkumar.in/v1/education"   -H "Accept: application/json"
fetch("/v1/education", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/education")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
200 OK
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "degrees": [
    { "degree": "B.Tech", "field": "EEE", "year": 2020 },
    { "degree": "Diploma", "field": "EEE", "year": 2017 }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<education>
  <degrees><degree>B.Tech</degree><year>2020</year></degrees>
</education>
degrees:
  - degree: B.Tech
    field: EEE
    year: 2020
  - degree: Diploma
    field: EEE
    year: 2017

POST/v1/hire

Send a request

A protected, validated and idempotent way to start a conversation.

NAMEINTYPEDESCRIPTION
Idempotency-Key*headerUUIDMakes retries safe for 24 hours.
REQUEST
curl -i "https://sdilipkumar.in/v1/hire"   -H "Accept: application/json"
fetch("/v1/hire", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/hire")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
201 Created
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "status": "received",
  "replyWithin": "[24 hours]"
}
<?xml version="1.0" encoding="UTF-8"?>
<hireResponse>
  <status>received</status>
  <replyWithin>[24 hours]</replyWithin>
</hireResponse>
status: received
replyWithin: "[24 hours]"

GET/v1/skills/cobol

Problem details

Errors use the same negotiated format and RFC 7807 fields.

REQUEST
curl -i "https://sdilipkumar.in/v1/skills/cobol"   -H "Accept: application/json"
fetch("/v1/skills/cobol", {
  headers: { Accept: "application/json" }
})
client.get().uri("/v1/skills/cobol")
  .accept(MediaType.parseMediaType("application/json"))
  .retrieve().body(String.class);
404 Not Found
Content-Type: application/json; charset=utf-8
Cache-Control: public, max-age=60
ETag: W/"resource-hash"
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
{
  "type": "about:blank",
  "title": "Not Found",
  "status": 404,
  "detail": "That skill category is not available."
}
<?xml version="1.0" encoding="UTF-8"?>
<problem>
  <title>Not Found</title>
  <status>404</status>
</problem>
type: "about:blank"
title: Not Found
status: 404
detail: That skill category is not available.

GUIDE

REST conventions

406

Content negotiation

Ask for JSON, XML or YAML with the Accept header.

/v1

Versioning

Stable paths make integrations predictable.

Link

Pagination

Move through collections with Link and X-Total-Count.

_links

HATEOAS

Each resource points to useful related resources.

304

Caching

Send an ETag back with If-None-Match.

429

Rate limiting

Limits keep the public API responsive.

Allow

Methods & OPTIONS

Discover supported methods before sending a request.

UUID

Idempotency

Safely retry hire requests with one key.

RFC 7807

Problem details

Errors stay structured in every format.

REFERENCE

Status codes

200OKThe resource is ready.
201CreatedYour request was received.
304Not ModifiedYour cached copy is still current.
400Bad RequestOne query value needs attention.
404Not FoundThat skill isn’t on the list yet. Ask — I learn fast.
406Not AcceptableChoose JSON, XML or YAML.
409ConflictThat retry key belongs to another body.
415Unsupported Media TypeSend JSON, XML or YAML.
422Unprocessable EntityThe fields need a quick correction.
429Too Many RequestsPause briefly, then try again.
© 2026 Dilip Kumar S · API v1 · Content-Type: application/json ↑ back to top