Browse API docs

Partner requests

Usetix recommends partners from its network to organizers, free of charge: security, venues, artists and DJs, sound and light, catering, photo and video, event staff. You describe what you need, Usetix proposes partners, and you choose whom to meet. Only then does the partner receive your request and contact details, and you receive theirs. See the terms.

All endpoints require Bearer authentication. Send Accept: application/json, and Content-Type: application/json for JSON request bodies. Reads accept a read or write token; everything else requires a write token. Partner requests belong to the account’s owners and managers; personal co-organizer tokens cannot use them. A request made with an account-wide token is made in the name of the account owner, who receives the emails about it.

Partner request representation

{
  "id": 57,
  "category": "security",
  "category_name": "Security",
  "status": "proposed",
  "event_slug": "october-party",
  "event_title": "October Party",
  "needed_on": null,
  "date": "2026-10-24",
  "city": null,
  "place": "Berlin",
  "guest_count": 800,
  "budget": { "amount": "2000.00", "currency": "EUR" },
  "contact_phone": "+49 170 1234567",
  "description": "Four people at the door and two inside, from 21:00 to 03:00.",
  "support_conversation_id": 312,
  "proposals": [
    {
      "id": 88,
      "status": "proposed",
      "note": "They run the door at big club nights and know the neighbourhood.",
      "partner": {
        "name": "Nightwatch Security",
        "categories": ["security", "staff"],
        "description": "Door and crowd security for clubs and festivals.",
        "service_area": "Berlin & Brandenburg",
        "website_url": "https://nightwatch.example",
        "contact": null
      },
      "introduced_at": null,
      "declined_at": null,
      "follow_up_on": null,
      "reported_booked": null,
      "reported_at": null,
      "created_at": "2026-10-15T09:12:00Z"
    }
  ],
  "closed_at": null,
  "created_at": "2026-10-15T08:40:00Z",
  "updated_at": "2026-10-15T09:12:00Z"
}

category is one of security, venue, artist, technology (sound and light), catering, photo_video, staff and other; category_name is its name in the account’s language. needed_on and city are what you entered; date and place are what applies, falling back to the event’s date and venue. budget is money in the account’s currency, or null. Dates are calendar dates (YYYY-MM-DD); timestamps are UTC.

status follows the proposals:

Status Meaning
searching Usetix is looking for partners
proposed Proposals are waiting for your answer
introduced You met a partner; the outcome is open
booked You booked a partner from this request
closed Usetix closed the request
withdrawn You withdrew the request

A proposal’s status is proposed, declined (not a fit), introduced, booked or unbooked. partner.contact (name, email_address, phone) is filled once you met the partner and stays null before. follow_up_on is the day after which Usetix asks whether you booked an introduced partner. support_conversation_id is the request’s conversation with Usetix support.

List and show

GET /admin/partners returns { "partner_requests": [...] }, newest first.

GET /admin/partners/:id returns one request. Unknown requests return 404.

Ask for a partner

POST /admin/partners accepts a partner_request object. category and description are required.

{
  "partner_request": {
    "category": "security",
    "event_slug": "october-party",
    "guest_count": 800,
    "budget": "2000",
    "contact_phone": "+49 170 1234567",
    "description": "Four people at the door and two inside, from 21:00 to 03:00."
  }
}

Fields: category, description (at most 2,000 characters), event_slug (an event of the account; an unknown slug returns 404), needed_on, city, guest_count, budget (a decimal in the account’s currency) and contact_phone, which goes to a partner you choose to meet. Leave out needed_on and city for an event: its date and venue apply.

Returns 201 Created, the request and a Location header. Validation failures return 422 with field errors, for example { "errors": { "category": ["is not included in the list"] } }. The request opens a conversation with Usetix support; Usetix answers questions there and by email.

Withdraw

POST /admin/partners/:id/withdrawal withdraws a request that is still running and returns it.

Answer a proposal

Each returns the proposal. A proposal that can no longer be answered returns 422 with { "errors": { "status": ["..."] } }.

  • POST /admin/partners/:id/proposals/:proposal_id/introduction meets the partner. Usetix emails the partner your request, your name and email address, the phone number you gave and the account’s name, and emails you the partner’s contact details.
  • POST /admin/partners/:id/proposals/:proposal_id/rejection passes on a partner.
  • POST /admin/partners/:id/proposals/:proposal_id/booking_report with { "booked": true } or { "booked": false } answers whether you booked a partner you met.

Recommendations are free for organizers; what you agree with a partner is between you and the partner.