Developer API

Turn anything into puzzles

Quick Start

Integrate Puzzl35 into your app with a simple URL redirect. No API keys required, no rate limits, completely free.

// Basic usage - just add an image parameter
https://puzzl35.com/?image=YOUR_IMAGE_URL

// Full example with all parameters
https://puzzl35.com/?image=https://example.com/photo.jpg&name=My+Puzzle&pieces=64&tags=nature,landscape&source=YourApp&source_url=https://yourapp.com
Try Live Demo

Parameters

Parameter Type Description
image Required String Image URL or base64 data URL. Supports JPG, PNG, GIF, WebP.
name Optional String Puzzle name (URL encoded). Default: empty
pieces Optional Number Number of pieces. Valid: 4, 9, 16, 25, 36, 49, 64, 81, 100, 144, 196, 256, 324, 400, 625, 900, 1024, 2048
tags Optional String Comma-separated tags for searchability. Example: nature,landscape,ai
source Optional String Your app/company name for attribution badge
source_url Optional String Link back to your app (shown with source badge)

Integration Examples

HTML Link

<!-- Simple button to create a puzzle -->
<a href="https://puzzl35.com/?image=https://example.com/image.jpg&source=MyApp"
   target="_blank">
  🧩 Turn into Puzzle
</a>

JavaScript

function createPuzzle(imageUrl, name) {
  const params = new URLSearchParams({
    image: imageUrl,
    name: name || 'My Puzzle',
    pieces: '64',
    tags: 'ai,generated',
    source: 'YourApp',
    source_url: 'https://yourapp.com'
  });
  
  window.open('https://puzzl35.com/?' + params.toString(), '_blank');
}

// Usage
createPuzzle('https://example.com/ai-art.png', 'AI Generated Art');

React Component

function PuzzleButton({ imageUrl, name }) {
  const puzzleUrl = new URL('https://puzzl35.com/');
  puzzleUrl.searchParams.set('image', imageUrl);
  puzzleUrl.searchParams.set('name', name);
  puzzleUrl.searchParams.set('source', 'MyReactApp');
  
  return (
    <a href={puzzleUrl.toString()} target="_blank" rel="noopener">
      🧩 Create Puzzle
    </a>
  );
}

Base64 Image (AI Generators)

// For AI image generators that return base64
const base64Image = 'data:image/png;base64,iVBORw0KGgo...';

const params = new URLSearchParams({
  image: base64Image,  // Works with data URLs!
  name: 'AI Creation',
  tags: 'ai,midjourney,art'
});

window.open('https://puzzl35.com/?' + params);

How It Works

Redirect Flow

Users are redirected to Puzzl35.com (not an iframe) for full features and Nostr login support.

User Identity

Users can login with Nostr (NIP-07) or play anonymously. Their scores are saved to their profile.

Social Features

Puzzles can be shared to "The Wild", commented on, and zapped with Bitcoin Lightning.

Leaderboards

Every puzzle has a leaderboard. Compete for the fastest completion time!

Why redirect instead of iframe? NIP-07 browser extensions (Alby, nos2x) require direct page access to sign events. Iframes also have security restrictions that limit functionality.

Attribution Badge

When you include source and source_url parameters, a branded badge appears on the create screen showing where the image came from.

Badge Example

Image from MidJourney Visit ↗

Nostr Integration

Puzzl35 is built on Nostr, the decentralized social protocol. Puzzles are stored as Nostr events:

Kind Purpose
42069 Puzzle definition (image, name, grid size)
42070 Completion record (time, verification hash)
30078 User's puzzle library (cloud sync)
1 Comments and share notes
9735 Zap receipts (Lightning payments)

Tags use standard Nostr t tags for discoverability. Query relays for kind:42069 to find puzzles!

Use Cases

🎨 AI Art Generators

Add a "Make Puzzle" button to let users play with their AI creations.

📸 Photo Apps

Turn photos into shareable puzzles with friends and family.

🏪 E-commerce

Create branded puzzles from product images for engagement.

📰 News & Media

Make daily puzzles from featured photos.

🎮 Gaming

Embed puzzle minigames in your app.

🏫 Education

Create educational puzzles from diagrams and maps.

Support

Puzzl35 is open and free to use. For questions, feature requests, or partnerships, reach out on Nostr:

Puzzles
Puzzles
@puzzl35.com on Nostr →