Insights
- Written for
- + Written for
- Deprecated
- + Deprecated
- Applies to
- + Applies to
https://shippified.net/api/profitabilityRevenue is each order's `salePriceCents` and cost is its `costCents`, for orders received in the period; subscription overhead, pro-rated to the period, is subtracted for net profit. Includes a daily series, breakdowns by store and by source, and totals for the previous period for comparison. Periods are calendar-aligned in UTC.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
range | query | string | no | Current month, quarter or year, or all time. Unknown values fall back to `month`. |
Responses
{
"range": "month",
"window": {
"range": "month",
"start": "2024-01-01T00:00:00Z",
"end": "2024-01-01T00:00:00Z",
"label": "Q3 2026"
},
"previousWindow": {},
"generatedAt": "2024-01-01T00:00:00Z",
"revenueCents": 0,
"cogsCents": 0,
"subsCostCents": 0,
"grossProfitCents": 0,
"netProfitCents": 0,
"orderCount": 0,
"ordersWithSalePrice": 0,
"coverage": 0,
"daily": [
{
"date": "string",
"revenueCents": 0,
"cogsCents": 0,
"profitCents": 0
}
],
"perStore": [
{
"name": "string",
"revenueCents": 0,
"cogsCents": 0,
"profitCents": 0,
"count": 0
}
],
"perSource": [
{
"name": "string",
"revenueCents": 0,
"cogsCents": 0,
"profitCents": 0,
"count": 0
}
],
"previous": {
"revenueCents": 0,
"netProfitCents": 0
}
}cURL
curl -X GET "https://shippified.net/api/profitability?range="TypeScript
const res = await fetch('https://shippified.net/api/profitability?range=', {
method: 'GET',
});
const data = await res.json();Python
import requests
res = requests.request(
"GET",
"https://shippified.net/api/profitability?range=",
)
data = res.json()Go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://shippified.net/api/profitability?range=", nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shippified.net/api/profitability?range=');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Ruby
require 'net/http'
require 'uri'
uri = URI('https://shippified.net/api/profitability?range=')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(req)
end
puts res.bodyJava
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://shippified.net/api/profitability?range="))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());https://shippified.net/api/calendarEach order contributes an `order_received` event and either a `delivered` event (actual delivery date) or an `estimated_delivery` event. Active subscriptions contribute a `subscription_renewal` event on each renewal date in the month. Dates are UTC days; events are sorted by date, then kind.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
month | query | string | no | Month as `YYYY-MM`. Defaults to the current UTC month. |
Responses
{
"month": "2026-09",
"generatedAt": "2024-01-01T00:00:00Z",
"events": [
{
"date": "string",
"kind": "order_received",
"label": "string",
"amount": "string",
"ref": {
"type": "order",
"id": "string"
},
"meta": {}
}
]
}{
"error": "string"
}cURL
curl -X GET "https://shippified.net/api/calendar?month="TypeScript
const res = await fetch('https://shippified.net/api/calendar?month=', {
method: 'GET',
});
const data = await res.json();Python
import requests
res = requests.request(
"GET",
"https://shippified.net/api/calendar?month=",
)
data = res.json()Go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://shippified.net/api/calendar?month=", nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shippified.net/api/calendar?month=');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Ruby
require 'net/http'
require 'uri'
uri = URI('https://shippified.net/api/calendar?month=')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(req)
end
puts res.bodyJava
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://shippified.net/api/calendar?month="))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());https://shippified.net/api/leaderboardOnly workspaces that opted in with `POST /api/account/public-stats` are ranked, plus you (flagged `isYou`) so you can always see where you'd place, without being shown to anyone else. `week` and `month` are rolling 7- and 30-day windows ranked by `windowed`; `all` ranks by lifetime count.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
timeframe | query | string | no | Unknown values fall back to `all`. |
Responses
{
"timeframe": "week",
"generatedAt": "2024-01-01T00:00:00Z",
"total": 0,
"rows": [
{
"rank": 0,
"userId": "string",
"username": "string",
"displayName": "string",
"publicProfile": true,
"lifetime": 0,
"windowed": 0,
"level": 0,
"isYou": true
}
]
}cURL
curl -X GET "https://shippified.net/api/leaderboard?timeframe="TypeScript
const res = await fetch('https://shippified.net/api/leaderboard?timeframe=', {
method: 'GET',
});
const data = await res.json();Python
import requests
res = requests.request(
"GET",
"https://shippified.net/api/leaderboard?timeframe=",
)
data = res.json()Go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://shippified.net/api/leaderboard?timeframe=", nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}PHP
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shippified.net/api/leaderboard?timeframe=');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;Ruby
require 'net/http'
require 'uri'
uri = URI('https://shippified.net/api/leaderboard?timeframe=')
req = Net::HTTP::Get.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(req)
end
puts res.bodyJava
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpRequest.BodyPublishers;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://shippified.net/api/leaderboard?timeframe="))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());