L402
How to use it as an API
Understanding L402: Pay-Per-Use APIs with Bitcoin 💡
L402 is a "Bitcoin Standard" for APIs. It lets different applications "talk" to each other securely. Instead of usernames, passwords, and credit card details, it uses a clever combination of:
- Macaroons: These are like special, tamper-proof digital "tickets" or "tokens" that grant access.
- Lightning Network: This allows for instant, low-fee Bitcoin payments.
Together, they create a secure and private way to access paid services. You only pay for what you use.Learn More
Choose a service to get started:
How to Use Our L402 Services: A Step-by-Step Guide ⚙️
Using an L402-protected service involves a simple two-step process: first, you request access and get a "bill" (invoice), and second, you pay the bill and present your "proof of payment" (preimage) to use the service.
Step 1: Request Access & Get Your "Ticket" and "Invoice"
- Make Your First Request: Send your initial API request to the desired service endpoint.
- Receive a
402 Payment RequiredResponse: This is normal! The response header will contain:- A Macaroon (your access "ticket").
- An Invoice (a Lightning Network payment request).
www-authenticate: L402 macaroon="<YOUR_UNIQUE_MACAROON>", invoice="<LIGHTNING_INVOICE_STRING>"
Step 2: Pay the Invoice & Use the Service
- Pay the Lightning Invoice: Use any Lightning-compatible wallet.
- Get the Preimage: After payment, your wallet provides a preimage (your "proof of payment").
- Make Your Second Request (with Payment Proof): Send the exact same request as in Step 1 tohttps://sats4ai.com/api/l402/video. This time, include the `Authorization` header:
Authorization: L402 <YOUR_UNIQUE_MACAROON>:<YOUR_PREIMAGE>
❗ Important Notes:
- Identical Requests: The body/data of your first and second requests must be exactly the same.
- Not a Stream (Currently): Our L402 services do not currently support streaming responses.
Using the L402 Video Generation API
Generate videos from text prompts by sending a POST request to the L402-protected video endpoint.
API Endpoint: https://sats4ai.com/api/l402/video
Step 1: Initial Request (to get Macaroon and Invoice)
Send your video generation parameters. You will receive a 402 Payment Required response with a macaroon and Lightning invoice.
curl -X POST https://sats4ai.com/api/l402/video \
-H "Content-Type: application/json" \
-d '{"prompt":"A cat walking on the surface of the moon","model":"Video Generation","duration":5,"camera_fixed":false}' \
-iExpected Response Headers:
www-authenticate: L402 macaroon="<YOUR_MACAROON_STRING_HERE>", invoice="<YOUR_LIGHTNING_INVOICE_HERE>"Step 2: Pay the Lightning Invoice
Pay the Lightning invoice using any Lightning-enabled wallet. Save the preimage (proof of payment).
Step 3: Final Request (to get the Video)
Send the exact same request with the Authorization header.
Important: The JSON payload must be identical to Step 1.
curl -X POST https://sats4ai.com/api/l402/video \
-H "Content-Type: application/json" \
-H "Authorization: L402 <YOUR_MACAROON_STRING_HERE>:<YOUR_PREIMAGE_HERE>" \
-d '{"prompt":"A cat walking on the surface of the moon","model":"Video Generation","duration":5,"camera_fixed":false}'Expected Successful Response:
{ "videoUrl": "https://..." }Request Body Parameters
prompt: string (required)
Text description of the video to generate.
model: string (required)
Accepted Values: "Video Generation"
duration: integer
Duration of the video in seconds. Accepted Values: 5 or 10. Default: 5
camera_fixed: boolean
Whether the camera should remain fixed. Default: false