Launch options
curl --request GET \
--url https://purps.lol/api/v1/launch-optionsimport requests
url = "https://purps.lol/api/v1/launch-options"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://purps.lol/api/v1/launch-options', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://purps.lol/api/v1/launch-options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://purps.lol/api/v1/launch-options"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://purps.lol/api/v1/launch-options")
.asString();require 'uri'
require 'net/http'
url = URI("https://purps.lol/api/v1/launch-options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"holderPayoutsEnabled": true,
"venues": {
"purps": {
"chain": "solana",
"access": {},
"pairs": {},
"feePresets": [
"<string>"
],
"fees": {},
"payoutAssets": [
{
"mint": "<string>",
"address": "<string>",
"symbol": "<string>",
"kind": "<string>",
"market": "<string>",
"decimals": 123,
"iconUrl": "<string>"
}
],
"payoutNote": "<string>"
},
"pumpfun": {
"chain": "solana",
"access": {},
"pairs": {},
"feePresets": [
"<string>"
],
"fees": {},
"payoutAssets": [
{
"mint": "<string>",
"address": "<string>",
"symbol": "<string>",
"kind": "<string>",
"market": "<string>",
"decimals": 123,
"iconUrl": "<string>"
}
],
"payoutNote": "<string>"
},
"robinhood": {
"chain": "solana",
"access": {},
"pairs": {},
"feePresets": [
"<string>"
],
"fees": {},
"payoutAssets": [
{
"mint": "<string>",
"address": "<string>",
"symbol": "<string>",
"kind": "<string>",
"market": "<string>",
"decimals": 123,
"iconUrl": "<string>"
}
],
"payoutNote": "<string>"
}
},
"presets": [
{
"key": "<string>",
"name": "<string>",
"sells": "<string>",
"buys": "<string>",
"config": {}
}
],
"airdropOnly": {}
}
}{
"ok": true,
"error": "<string>"
}Launch on purps.lol
Launch options
Everything the create page knows before a launch is built, venue by venue: who may launch there right now, where its pairs are listed, which fee presets it takes, its fee terms, and what holders can be paid in. Plus the three strategy presets exactly as the site turns them into a config, and the airdrop-only config. Read this once, then pick a pair from /pairs and markets from /markets.
GET
/
launch-options
Launch options
curl --request GET \
--url https://purps.lol/api/v1/launch-optionsimport requests
url = "https://purps.lol/api/v1/launch-options"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://purps.lol/api/v1/launch-options', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://purps.lol/api/v1/launch-options",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://purps.lol/api/v1/launch-options"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://purps.lol/api/v1/launch-options")
.asString();require 'uri'
require 'net/http'
url = URI("https://purps.lol/api/v1/launch-options")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"holderPayoutsEnabled": true,
"venues": {
"purps": {
"chain": "solana",
"access": {},
"pairs": {},
"feePresets": [
"<string>"
],
"fees": {},
"payoutAssets": [
{
"mint": "<string>",
"address": "<string>",
"symbol": "<string>",
"kind": "<string>",
"market": "<string>",
"decimals": 123,
"iconUrl": "<string>"
}
],
"payoutNote": "<string>"
},
"pumpfun": {
"chain": "solana",
"access": {},
"pairs": {},
"feePresets": [
"<string>"
],
"fees": {},
"payoutAssets": [
{
"mint": "<string>",
"address": "<string>",
"symbol": "<string>",
"kind": "<string>",
"market": "<string>",
"decimals": 123,
"iconUrl": "<string>"
}
],
"payoutNote": "<string>"
},
"robinhood": {
"chain": "solana",
"access": {},
"pairs": {},
"feePresets": [
"<string>"
],
"fees": {},
"payoutAssets": [
{
"mint": "<string>",
"address": "<string>",
"symbol": "<string>",
"kind": "<string>",
"market": "<string>",
"decimals": 123,
"iconUrl": "<string>"
}
],
"payoutNote": "<string>"
}
},
"presets": [
{
"key": "<string>",
"name": "<string>",
"sells": "<string>",
"buys": "<string>",
"config": {}
}
],
"airdropOnly": {}
}
}{
"ok": true,
"error": "<string>"
}