MLH Sponsorships
An MLH sponsorship represents a company sponsoring MLH at the organization level — for example, a partner whose logo and call to action appear across MLH-wide surfaces rather than being tied to a single hackathon.
This is different from an event sponsorship, which links a sponsor to one specific event and lives under Events. If you want a company's sponsorship of a particular hackathon, see Events. Use this resource for the org-level relationship that isn't scoped to any one event.
MLH sponsorships are also referenced by promo code pools, which can attribute a batch of promo codes back to the sponsoring company — see Promo Codes.
For conventions that apply to every endpoint (pagination, filtering, expanding related data, and errors), see Making requests.
Endpoints
| Method | Path | Does |
|---|---|---|
GET | /v4/mlh_sponsorships | List MLH sponsorships |
GET | /v4/mlh_sponsorships/{id} | Get one MLH sponsorship |
POST | /v4/mlh_sponsorships | Create an MLH sponsorship |
PATCH / PUT | /v4/mlh_sponsorships/{id} | Update an MLH sponsorship |
The {id} path parameter is the sponsorship's id (a UUID string) and is
required for the get and update endpoints.
Filtering the list
The list endpoint accepts the standard page and limit pagination parameters,
plus filters on these fields (using the operators described in
Making requests):
name—[contains],[excludes],[eq]slug—[contains],[excludes],[eq]default_title—[contains],[excludes],[eq]default_cta_text—[contains],[excludes],[eq]active—[eq]created_at/updated_at—[gt],[gte],[lt],[lte]
GET /v4/mlh_sponsorships?active[eq]=true&name[contains]=cloud&limit=50
Fields
These fields appear on every sponsorship in a response and are the ones you set when creating or updating one.
| Field | Type | Required | Notes |
|---|---|---|---|
id | string (UUID) | read-only | The sponsorship's unique identifier. Assigned by the API on create; use it in the path for get and update. Example: "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d". |
name | string | required | The sponsoring company's display name. Example: "Acme Cloud". |
slug | string | required | A short, URL-safe identifier for the sponsorship. Example: "acme-cloud". |
active | boolean | required | Whether the sponsorship is currently active. Set to false to keep the record without surfacing it. Example: true. |
logo_url | string | required | URL of the sponsor's logo. Example: "https://cdn.example.com/acme-cloud.png". |
default_title | string | required | The default heading shown for this sponsor. Example: "Powered by Acme Cloud". |
default_cta_text | string | required | The default call-to-action button text. Example: "Get $100 in credits". |
default_cta_url | string | required | The URL the call to action links to. Example: "https://acme.cloud/mlh". |
created_at | integer | read-only | When the sponsorship was created, as a Unix timestamp (seconds). Example: 1755561600. |
updated_at | integer | read-only | When the sponsorship was last updated, as a Unix timestamp (seconds). Example: 1755648000. |
Notes:
created_atandupdated_atare managed by the API and returned as Unix timestamps in responses. You don't need to send them.idis assigned by the API. You don't set it on create.- On update, send only the fields you want to change.
Scopes
Every request must be authenticated with either an OAuth 2.0 access token (client credentials flow) or a bearer JWT. Request only the scopes your integration needs, and use a token with MLH-level access to read and write these records. See Authentication for the full list of scopes and how to obtain a token.
Examples
Create a sponsorship:
POST /v4/mlh_sponsorships
Content-Type: application/json
{
"name": "Acme Cloud",
"slug": "acme-cloud",
"active": true,
"logo_url": "https://cdn.example.com/acme-cloud.png",
"default_title": "Powered by Acme Cloud",
"default_cta_text": "Get $100 in credits",
"default_cta_url": "https://acme.cloud/mlh"
}
Update a sponsorship (only the fields you want to change):
PATCH /v4/mlh_sponsorships/a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d
Content-Type: application/json
{
"active": false,
"default_cta_text": "Claim your credits"
}
Related
- V4 API overview
- Making requests — pagination, filtering, expanding, and errors.
- Authentication
- Events — including event-level sponsorships.
- Promo Codes