본문으로 건너뛰기
javinfo

앱 어트리뷰션

헤더 하나만 보내면 앱이 javinfo 공개 랭킹에 오릅니다. 요청 수, 사용자 수, 제공자 분포까지. 무료, 선택, 1분.

API 호출에 referer 헤더를 붙이면 javinfo가 앱의 공개 페이지를 유지합니다. 누적 요청 수, 호출 계정 수, 제공자 분포. 앱은 javinfo.dev의 랭킹에 오릅니다.

무료. 요금은 같고 요청 한도에도 영향 없습니다. 보내지 않으면 페이지도, 순위도, 기록도 없습니다.

헤더

헤더필수역할
HTTP-Referer예앱의 URL. 앱의 신원 그 자체입니다. URL이 없으면 앱 페이지도 없습니다.
Referer–브라우저가 알아서 붙입니다. HTTP-Referer가 없을 때 대체값으로 씁니다.
x-javinfo-title아니오표시 이름. 기본값은 URL의 호스트명입니다.
x-javinfo-categories아니오쉼표로 구분한 태그, 최대 10개. 소문자로 변환됩니다.

HTTP-Referer는 OpenRouter의 관례입니다. 브라우저는 순수 Referer를 금지된 헤더로 막아 JavaScript에서 설정할 수 없기 때문입니다. 서버는 둘 다 가능하고, 브라우저는 Referer가 자동으로 붙습니다.

cURL
curl "https://api.javinfo.dev/movie?q=SSIS-001" \
  -H "x-javinfo-key: jvi_your_key_here" \
  -H "HTTP-Referer: https://myapp.example.com" \
  -H "x-javinfo-title: My App" \
  -H "x-javinfo-categories: search-ui, metadata"
JavaScript (fetch)
const res = await fetch('https://api.javinfo.dev/query?q=SSIS', {
  headers: {
    'x-javinfo-key': 'jvi_your_key_here',
    'HTTP-Referer': 'https://myapp.example.com',
    'x-javinfo-title': 'My App',
  },
});

기본 헤더에 한 번 넣고 잊으세요.

보낸 URL은 javinfo.dev의 공개 링크가 됩니다. 눌렀으면 하는 페이지를 보내세요. 내부 관리자 페이지나 스테이징 호스트 말고요.

집계되는 엔드포인트

/movie, /query, /random. 유효한 referer와 함께 성공하면 누적 요청이 하나 늘어납니다. /stats와 /health는 제외입니다.

기록은 응답이 나간 뒤 백그라운드 큐에서 처리합니다. 지연이 없고, Redis가 흔들려도 이미 성공한 요청은 실패하지 않습니다.

저장되는 값

URL은 오리진 + 경로로 정규화합니다. 쿼리 스트링과 프래그먼트는 버리고, 루트 경로는 오리진으로 줄입니다.

https://myapp.example.com/?ref=hn      →  https://myapp.example.com
https://myapp.example.com/search?q=x   →  https://myapp.example.com/search

경로가 다르면 다른 앱입니다. 정규 URL 하나를 계속 쓰세요. 그러지 않으면 랭킹에서 두 행으로 쪼개집니다.

제목과 카테고리는 보낼 때만 갱신되고, 빼면 지난 값이 남습니다.

무시되는 경우

아래 경우 어트리뷰션은 조용히 버려집니다. API 호출은 성공합니다.

  • HTTP-Referer도 Referer도 없음.
  • referer가 올바른 URL이 아님.
  • http나 https가 아닌 것. file://도, 커스텀 스킴도 안 됩니다.
  • localhost, 127.0.0.1, ::1. 로컬 개발이 랭킹을 더럽히는 일은 없습니다.
  • javinfo.dev와 app.javinfo.dev. 자기 자신은 랭킹에 올리지 않습니다.
  • 500자를 넘는 URL.
  • URL 없는 제목. x-javinfo-title 하나만으로는 아무것도 생기지 않습니다.

11번째부터의 카테고리는 잘립니다. 정해진 목록은 없으니 앱을 설명하는 말을 쓰세요. search-ui, discord-bot, cli, scraper, mobile-app 같은 식으로요.

앱 페이지

첫 어트리뷰션 요청이 항목을 만들고 바로 공개됩니다. 이후 랭킹은 누적 요청 순. javinfo.dev/apps/{id}에서 볼 수 있는 것:

  • 전체 기간 누적 요청 수.
  • URL을 통해 호출한 javinfo 계정 수(중복 제거). 계정 단위라 방문 수가 아닌 진짜 사용자 수입니다.
  • 제공자 분포: 조회를 FANZA, DMM, javdb, missav, javdatabase, javlibrary가 몇 건 처리했는지. 순서는 제공자를 참고하세요.

같은 데이터는 키 없이도 읽을 수 있습니다.

curl "https://api.javinfo.dev/v1/apps/rankings?limit=20"
curl "https://api.javinfo.dev/v1/apps/{id}"

랭킹은 쌓아서 얻는 것이지 사는 것이 아닙니다. 유료 노출 자리는 따로 표시되며, 이 표의 순위는 살 수 없습니다.

앱 삭제

헤더를 그만 보내면 항목은 더 이상 늘지 않습니다. 과거 수치는 남습니다. 페이지를 없애려면 URL과 같은 도메인의 주소에서 [email protected]로 메일을 보내 주세요. 삭제해 드립니다.

이 페이지의 내용