Soft-delete a sponsor
US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com
Soft-delete a sponsor. Can be restored with the restore endpoint. Requires the write:sponsors scope.
This deletes the group, not just its sponsor role. The path names the role you are calling under, but the record that gets soft-deleted is the underlying group, so:
-
A group holding both roles loses its exhibitor role too. After this call it is absent from both searches and both
GETs answer404. -
A group linked to other events is removed from those events as well — it is no longer returned by any event's sponsor or exhibitor search across the organization.
This matches the admin UI, where the unit of deletion is the group, not one of its roles. There is no role-scoped or event-scoped delete on this API. If you only want to stop listing a partner for one season, do not call this endpoint.
POST /v1/event/{eventId}/sponsors/{sponsorId}/restore reverses it with the same reach — both roles and every event come back — so nothing is lost permanently.
Request example
curl --request DELETE \ --url 'https://public-api.sessionboard.com/v1/event/{eventId}/sponsors/{sponsorId}' \ --header 'x-access-token: <api-token>'const response = await fetch('https://public-api.sessionboard.com/v1/event/{eventId}/sponsors/{sponsorId}', { method: 'DELETE', headers: { "x-access-token": "<api-token>" },});
const data = await response.json();console.log(data);import requests
response = requests.request( "DELETE", "https://public-api.sessionboard.com/v1/event/{eventId}/sponsors/{sponsorId}", headers={ "x-access-token": "<api-token>" },)
print(response.json())<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://public-api.sessionboard.com/v1/event/{eventId}/sponsors/{sponsorId}", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "DELETE", CURLOPT_HTTPHEADER => [ "x-access-token: <api-token>", ],]);
$response = curl_exec($curl);curl_close($curl);
echo $response;package main
import ( "fmt" "io" "net/http")
func main() { req, _ := http.NewRequest("DELETE", "https://public-api.sessionboard.com/v1/event/{eventId}/sponsors/{sponsorId}", nil) req.Header.Add("x-access-token", "<api-token>")
res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://public-api.sessionboard.com/v1/event/{eventId}/sponsors/{sponsorId}")) .header("x-access-token", "<api-token>") .method("DELETE", HttpRequest.BodyPublishers.noBody()) .build();
HttpResponse<String> response = HttpClient.newHttpClient() .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Try it
Response headers
Authorizations
x-access-tokenstringheaderOrganization API token. Generate from Organization Settings → API Tokens.
AuthorizationBearer <token>headerorOAuth 2.1 access token. Obtained via the OAuth PKCE flow at
/oauth/token.
Send one of these. See Authentication.
Path parameters
eventIdintegerpathrequiredThe event ID.
sponsorIdstringpathrequiredThe sponsor ID.
Responses
204
Sponsor deleted. The response has no body — do not expect a 200 or a JSON payload.
401
Unauthorized
403
Missing write:sponsors scope
404
No sponsor with this id on this event. A record that exists but does not hold the sponsor role — a contact, or a group linked only as the other role — is also a 404 here; look it up on the endpoint for the role it holds. An already-deleted sponsor is also a 404, so a repeated delete is safe but is not reported as a success.
