Choose Your Method
WURK offers two ways to create jobs:
Quick Endpoints (Recommended)
No API key required! Create preconfigured jobs with just 2 HTTP requests.
Perfect for getting started immediately.
Full API
Complete control with API key. Customize every aspect of your jobs.
Method 1: Quick Endpoints (No API Key)
The fastest way to get started - no registration required!
Make Discovery Request
curl -i \
"https://wurkapi.fun/api/x402/quick/base/xlikes-100?url=https%3A%2F%2Fx.com%2Fyourpost%2Fstatus%2F123" \
-H "Accept: application/json"
This returns a 402 status with payment requirements ($2.50 USDC).Send Payment
Use the x402 library to create and send payment:For Base (EVM):import { withPaymentInterceptor } from 'x402-axios';
import { privateKeyToAccount } from 'viem/accounts';
const account = privateKeyToAccount(YOUR_PRIVATE_KEY);
const api = withPaymentInterceptor(axios.create(), account);
const result = await api.get(
'https://wurkapi.fun/api/x402/quick/base/xlikes-100?url=...',
{ headers: { 'Accept': 'application/json' }}
);
For Solana:import { createSigner } from 'x402/types';
const signer = await createSigner('solana', YOUR_PRIVATE_KEY);
// ... handle x402 flow
Job Created!
{
"ok": true,
"paid": true,
"jobId": "abc123de"
}
Your job is now active with 100 completions configured!
Available Quick Jobs
X/Twitter Reposts
reposts-100 - 100 reposts for $2.50
X/Twitter Likes
xlikes-100 - 100 likes for $2.50
Instagram Likes
insta-likes-100 - 100 likes for $2.50
DexScreener Rockets
dex-rocket-100 - 100 rockets for $2.50
Quick Endpoints are perfect for common use cases. For full customization, use Method 2 below.
Learn More
Method 2: Full API (With API Key)
For complete control over job parameters.
Prerequisites
Payment Method
Either USDC (on Solana or Base) or platform balance (SOL)
Create Your First Job
Let’s create a simple social media repost job:
curl -X POST "https://wurkapi.fun/api/external/jobs/create" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "social",
"tweet_url": "https://x.com/yourhandle/status/1234567890",
"min_rank": 1,
"cooldown_minutes": 5,
"jobtype": "repost",
"max_completions": 100,
"total_usdc": 5.0
}'
Response
{
"jobId": "abc123def",
"status": "unpaid",
"type": "social",
"balancePayment": 0
}
Complete the Payment
Since we used USDC payment, we need to complete the x402 payment:
Get Payment Requirements
Request the payment details for your job:For Solana:curl -X GET "https://wurkapi.fun/api/x402/jobs/abc123def/pay" \
-H "Accept: application/json"
For Base:curl -X GET "https://wurkapi.fun/api/x402/base/jobs/abc123def/pay" \
-H "Accept: application/json"
This returns a 402 status with payment requirements. Send Payment
Use the x402 library to create and send the payment header:For Solana:import { createSigner } from 'x402/types';
import { selectPaymentRequirements, createPaymentHeader } from 'x402/client';
// Create signer with your Solana private key
const signer = await createSigner('solana', YOUR_PRIVATE_KEY);
// Select payment requirements
const selected = selectPaymentRequirements(accepts, ['solana'], 'exact');
// Create payment header
const xPayment = await createPaymentHeader(signer, x402Version, selected);
// Send payment
const payResponse = await fetch('https://wurkapi.fun/api/x402/jobs/abc123def/pay', {
headers: {
'Accept': 'application/json',
'X-PAYMENT': xPayment
}
});
For Base:import { privateKeyToAccount } from 'viem/accounts';
import { withPaymentInterceptor } from 'x402-axios';
import axios from 'axios';
// Create account with your EVM private key
const account = privateKeyToAccount(YOUR_PRIVATE_KEY);
// Create axios instance with payment interceptor
const api = withPaymentInterceptor(
axios.create({ baseURL: 'https://wurkapi.fun' }),
account
);
// The interceptor handles the 402 flow automatically
const payResponse = await api.get(`/api/x402/base/jobs/abc123def/pay`, {
headers: { 'Accept': 'application/json' }
});
Verify Success
A successful payment returns:{
"ok": true,
"paid": true,
"jobId": "abc123def"
}
Your job is now active!
If you have SOL balance on the platform, you can skip the x402 payment:
curl -X POST "https://wurkapi.fun/api/external/jobs/create" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "social",
"tweet_url": "https://x.com/yourhandle/status/1234567890",
"min_rank": 1,
"cooldown_minutes": 5,
"jobtype": "repost",
"max_completions": 100,
"balance_payment": 1,
"total_bounty_sol": 0.12
}'
Response for balance payment:
{
"jobId": "xyz789abc",
"status": "pending",
"type": "social",
"balancePayment": 1
}
Jobs paid with platform balance activate immediately - no additional payment step needed!
What’s Next?