Discord

AdminUpdated Sep 24, 2026
GEThttps://shippified.net/api/discord/install
Invite link for the Shippified Discord bot.

Add the bot to your server before setting a digest channel.

Responses
200 OK
{
  "url": "string"
}
401 Not authenticated.
503 The Discord integration isn't configured on this deployment.
Code samples
cURL
curl -X GET "https://shippified.net/api/discord/install"
TypeScript
const res = await fetch('https://shippified.net/api/discord/install', {
  method: 'GET',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "GET",
    "https://shippified.net/api/discord/install",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://shippified.net/api/discord/install", 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/discord/install');
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/discord/install')
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.body
Java
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/discord/install"))
    .GET()
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
PATCHhttps://shippified.net/api/discord/settings
Configure the daily checkout-recap digest.

Partial update — fields that are omitted or invalid keep their current values. The bot posts the digest to `channelId` at `hour` in your account timezone (`POST /api/account/timezone`).

Request body application/json
{
  "enabled": true,
  "channelId": "string",
  "hour": 0,
  "groupBy": "bots"
}
Responses
200 Updated.
{
  "digest": {
    "enabled": true,
    "channelId": "string",
    "hour": 0,
    "groupBy": "bots",
    "lastSentDate": "string"
  }
}
401 Not authenticated.
Code samples
cURL
curl -X PATCH "https://shippified.net/api/discord/settings" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"channelId":"string","hour":0,"groupBy":"bots"}'
TypeScript
const res = await fetch('https://shippified.net/api/discord/settings', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"enabled":true,"channelId":"string","hour":0,"groupBy":"bots"}),
});
const data = await res.json();
Python
import requests

res = requests.request(
    "PATCH",
    "https://shippified.net/api/discord/settings",
    headers={
    "Content-Type": "application/json",
    },
    json={"enabled": True, "channelId": "string", "hour": 0, "groupBy": "bots"},
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	req, _ := http.NewRequest("PATCH", "https://shippified.net/api/discord/settings", strings.NewReader(`{"enabled":true,"channelId":"string","hour":0,"groupBy":"bots"}`))
	req.Header.Set("Content-Type", "application/json")
	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/discord/settings');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"enabled":true,"channelId":"string","hour":0,"groupBy":"bots"}');
$response = curl_exec($ch);
curl_close($ch);
echo $response;
Ruby
require 'net/http'
require 'uri'

uri = URI('https://shippified.net/api/discord/settings')
req = Net::HTTP::Patch.new(uri)
req['Content-Type'] = 'application/json'
req.body = '{"enabled":true,"channelId":"string","hour":0,"groupBy":"bots"}'
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
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/discord/settings"))
    .header("Content-Type", "application/json")
    .method("PATCH", BodyPublishers.ofString("{\"enabled\":true,\"channelId\":\"string\",\"hour\":0,\"groupBy\":\"bots\"}"))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
POSThttps://shippified.net/api/discord/digest
Post the checkout-recap digest to your channel now.

Uses the channel and grouping from `PATCH /api/discord/settings` (it doesn't need the scheduled digest to be enabled). Doesn't affect the scheduled post.

Parameters
NameInTypeRequiredDescription
datequerystringnoDay to summarise (`YYYY-MM-DD`). Defaults to today in your account timezone.
Responses
200 Posted.
{
  "ok": true,
  "messageId": "string",
  "channelId": "string"
}
400 No digest channel configured.
{
  "error": "string"
}
401 Not authenticated.
502 Discord rejected the post (e.g. the bot can't see the channel).
{
  "error": "string"
}
503 The Discord integration isn't configured on this deployment.
Code samples
cURL
curl -X POST "https://shippified.net/api/discord/digest?date="
TypeScript
const res = await fetch('https://shippified.net/api/discord/digest?date=', {
  method: 'POST',
});
const data = await res.json();
Python
import requests

res = requests.request(
    "POST",
    "https://shippified.net/api/discord/digest?date=",
)
data = res.json()
Go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://shippified.net/api/discord/digest?date=", 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/discord/digest?date=');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
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/discord/digest?date=')
req = Net::HTTP::Post.new(uri)
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(req)
end
puts res.body
Java
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/discord/digest?date="))
    .method("POST", BodyPublishers.noBody())
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
Was this page helpful?