The HAPI API

Extract video stream URLs from Hanime.tv and HentaiHaven.com in seconds. One endpoint, all qualities, zero hassle.

View Endpoints Swagger UI →

Quick Start (Hanime)

GET {{BASE_URL}}/api/v1/extract?url=https://hanime.tv/videos/hentai/mistreated-bride-1

Quick Start (HentaiHaven)

GET {{BASE_URL}}/api/v1/extract?url=https://hentaihaven.com/video/ookii-onnanoko-wa-suki-desu-ka/episode-2/

Endpoints

Everything you need — two simple GET requests.

GET /api/v1/health Check if API is alive

Returns a simple JSON confirming the service is up. Great for uptime monitors or health checks.

Parameters

None — just call it.

Example Request

curl -s {{BASE_URL}}/api/v1/health

Or paste in your browser

{{BASE_URL}}/api/v1/health

200 Response

{
  "status": "ok",
  "service": "hapi"
}

Try it live

GET /api/v1/extract Get video streams

Pass a Hanime.tv or HentaiHaven.com video URL and get back all available stream URLs sorted by quality. Returns the direct video file links you can use anywhere.

Parameters

Name Type Description
url required string Full Hanime.tv or HentaiHaven.com video URL
e.g. https://hanime.tv/videos/hentai/mistreated-bride-1
e.g. https://hentaihaven.com/video/ookii-onnanoko-wa-suki-desu-ka/episode-2/

Example Request — cURL

curl -s "{{BASE_URL}}/api/v1/extract?url=https://hanime.tv/videos/hentai/mistreated-bride-1"

Example Request — Browser

{{BASE_URL}}/api/v1/extract?url=https://hanime.tv/videos/hentai/mistreated-bride-1

Responses

{
  "success": true,
  "slug": "example-slug",
  "best_stream": "https://cdn.example.com/video_1080p.mp4",
  "streams": [
    {
      "url": "https://cdn.example.com/video_1080p.mp4",
      "filename": "video_1080p.mp4",
      "resolution": "1920x1080",
      "height": 1080
    },
    {
      "url": "https://cdn.example.com/video_720p.mp4",
      "filename": "video_720p.mp4",
      "resolution": "1280x720",
      "height": 720
    }
  ]
}

Try it live