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',
  },
});

HTTP 클라이언트의 기본 헤더에 한 번만 넣어두고 잊으면 됩니다.

보낸 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-RefererReferer도 없음.
  • referer가 올바른 URL이 아님.
  • httphttps가 아닌 것. file://도, 커스텀 스킴도 안 됩니다.
  • localhost, 127.0.0.1, ::1. 로컬 개발이 랭킹을 더럽히는 일은 없습니다.
  • javinfo.devapp.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}"

랭킹은 쌓아서 얻는 것이지 사는 것이 아닙니다. 유료 노출 자리는 javinfo.dev의 다른 곳에 따로 있고 그렇게 표시되며, 이 표의 순위는 돈으로 살 수 없습니다.

앱 삭제

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

On this page