Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/sponsorunited-property-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: SponsorUnited Property API
version: v1
description: Property
tags:
- name: Property
description: Property
paths:
/api/property/{id}/social:
get:
tags:
- Property
operationId: 8636b25bd2e3e0d823d1574071b2941a
parameters:
- name: id
in: path
description: The id of the Property to fetch social handles for.
required: true
schema:
type: string
responses:
'200':
description: Social handles for the property with the given id.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyShowSocialResource'
security:
- bearerAuth: []
summary: 8636b25bd2e3e0d823d1574071b2941a
x-summary-source: derived
put:
tags:
- Property
operationId: c6ddc1a1090419ee64cef5ec440988c1
parameters:
- name: id
in: path
description: The id of the Property to update socials for.
required: true
schema:
type: string
responses:
'200':
description: A property with the given id.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyResource'
security:
- bearerAuth: []
summary: C6ddc1a1090419ee64cef5ec440988c1
x-summary-source: derived
/api/property/{id}/social-extra-handles:
put:
tags:
- Property
operationId: 9ed544373cd3b61746fb1aa400a3bb53
parameters:
- name: id
in: path
description: The id of the Property to add social extra handles to.
required: true
schema:
type: string
responses:
'200':
description: A property with the given id.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyResource'
security:
- bearerAuth: []
summary: 9ed544373cd3b61746fb1aa400a3bb53
x-summary-source: derived
/api/team:
get:
tags:
- Property
summary: List properties
description: Returns a paginated list of non-deleted properties. Supports filtering by name, league, genre, subgenre, division and market, plus ordering. When download=true, streams the list as a CSV file instead of JSON
operationId: 8552dd0225e6b98cfd20200cff987939
parameters:
- name: name
in: query
description: Filter by property name (partial match).
schema:
type: string
- name: order_by
in: query
description: Column to order by.
schema:
type: string
enum:
- name
- parent
- league
- genre
- subgenre
- division
- market
- created_at
- name: order
in: query
description: Order direction.
schema:
type: string
enum:
- asc
- desc
- name: market_id
in: query
description: JSON-encoded array of market ids to filter by (primary markets).
schema:
type: string
example: '[1,2,3]'
- name: league_id
in: query
description: JSON-encoded array of league ids to filter by.
schema:
type: string
example: '[1,2,3]'
- name: division_id
in: query
description: JSON-encoded array of division ids to filter by.
schema:
type: string
example: '[1,2,3]'
- name: genre_id
in: query
description: JSON-encoded array of genre ids to filter by.
schema:
type: string
example: '[1,2,3]'
- name: subgenre_id
in: query
description: JSON-encoded array of subgenre ids to filter by.
schema:
type: string
example: '[1,2,3]'
- name: page
in: query
description: Page number.
schema:
type: integer
- name: per_page
in: query
description: Results per page (default 25).
schema:
type: integer
default: 25
- name: download
in: query
description: When true, streams the full list as a CSV file instead of returning JSON.
schema:
type: boolean
- name: with_has_spend_tracker_data
in: query
description: Include a has_spend_tracker_data flag on each property.
schema:
type: boolean
- name: season_id
in: query
description: Season id used when evaluating spend-tracker data.
schema:
type: integer
responses:
'200':
description: Paginated list of properties as JSON, or a CSV file stream when download=true.
content:
application/json:
schema:
properties:
data:
type: array
items:
$ref: '#/components/schemas/Property'
current_page:
type: integer
per_page:
type: integer
total:
type: integer
last_page:
type: integer
promotion_relegation_enabled:
type: boolean
type: object
text/csv:
schema:
type: string
format: binary
security:
- bearerAuth: []
post:
tags:
- Property
summary: Create a property
description: Creates a new property (team/venue), uploads logo/cover images, creates property-seasons, syncs markets, organizations, agencies, locations, hashtags and rejected brands, sets social handles, and dispatches a LinkedIn scrape job. Requires create administration property permission
operationId: 6b4e1174a273f5efad722dcf5f1b87a0
requestBody:
required: true
content:
application/json:
schema:
required:
- name
- sport_id
- league_id
properties:
name:
description: Unique property name.
type: string
sport_id:
type: integer
league_id:
type: integer
type_id:
description: Property type. capacity is required when this is a venue.
type: integer
parent_id:
type:
- integer
- 'null'
division_id:
type: integer
capacity:
description: Required when type_id is a venue.
type:
- integer
- 'null'
alias:
type:
- string
- 'null'
logo:
description: S3 key of the logo image.
type:
- string
- 'null'
cover:
description: S3 key of the cover image.
type:
- string
- 'null'
synopsis:
type: string
email:
type:
- string
- 'null'
format: email
inactive:
type: boolean
exclude_from_social_scan:
type: boolean
website_url:
type:
- string
- 'null'
markets:
type:
- array
- 'null'
items:
properties:
id:
type: integer
pivot:
properties:
class:
type: string
type: object
type: object
organizations:
type: array
items:
type: integer
agencies:
type: array
items:
type: object
hashtags:
type: array
items:
type: object
rejected_brands:
type: array
items:
type: object
locations:
type: array
items:
properties:
location_id:
type: integer
label_id:
type: integer
type: object
twitter_handle:
type:
- string
- 'null'
facebook_handle:
type:
- string
- 'null'
instagram_handle:
type:
- string
- 'null'
tiktok_handle:
type:
- string
- 'null'
youtube_handle:
type:
- string
- 'null'
twitch_handle:
type:
- string
- 'null'
type: object
responses:
'200':
description: The created property.
content:
application/json:
schema:
$ref: '#/components/schemas/Property'
'400':
description: Failed to store the property.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
security:
- bearerAuth: []
/api/download:
get:
tags:
- Property
summary: Download properties list
description: Exports all properties as a CSV file including name, genre, sub-genre, association, division, primary market, inactive status, location status, creation date, and latest audit date
operationId: download
responses:
'200':
description: Successful operation
content:
text/csv:
schema:
type: string
format: binary
'400':
description: Bad Request
'500':
description: Internal Server Error
/api/team/{id}:
get:
tags:
- Property
summary: Get property details
description: Retrieves detailed information about a specific property including league, markets, organizations, social handles, agencies, and attendance data. Use the slim parameter for reduced data
operationId: 71327544c30baa9706be0707cfeb2459
parameters:
- name: id
in: path
description: The id of the Property to fetch.
required: true
schema:
type: string
- name: slim
in: query
description: Fetch slimmed down Property data.
schema:
type: boolean
- name: with_revenues_count
in: query
description: Include counts of revenue deals and predicted deal revenues.
schema:
type: boolean
- name: with_has_spend_tracker_data
in: query
description: Include a has_spend_tracker_data flag on the property.
schema:
type: boolean
- name: season_id
in: query
description: Season id used when evaluating promotion/relegation and spend-tracker data.
schema:
type: integer
- name: is_spend_tracker_admin
in: query
description: Flag indicating the requester is a spend-tracker admin.
schema:
type: boolean
responses:
'200':
description: A property with the given id.
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/PropertyLightResource'
- $ref: '#/components/schemas/PropertyResource'
security:
- bearerAuth: []
put:
tags:
- Property
summary: Update a property
description: Updates a property, validating that primary markets share the same category, syncing markets, organizations, agencies, locations, hashtags, children and primary/secondary profiles, and handling league changes (including spend-moved messaging). Requires update administration property permission
operationId: 34f1b0b7bcf7e6fa7bb79ef52c432cef
parameters:
- name: id
in: path
description: The id of the property to update.
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
required:
- name
properties:
name:
description: Unique property name (ignoring the current property).
type: string
parent_id:
type:
- integer
- 'null'
children:
type: array
items:
type: integer
type_id:
type: integer
sport_id:
type: integer
genre_id:
type: integer
subgenre_id:
type: integer
league_id:
type: integer
league_seasons_scope:
description: LeagueSeasonsScope enum value.
type: string
division_id:
type:
- integer
- 'null'
capacity:
description: Required when type_id is a venue.
type:
- integer
- 'null'
alias:
type:
- string
- 'null'
logo:
description: S3 key of the logo image.
type:
- string
- 'null'
cover:
description: S3 key of the cover image.
type:
- string
- 'null'
synopsis:
type: string
email:
type:
- string
- 'null'
format: email
inactive:
type: boolean
markets:
type:
- array
- 'null'
items:
properties:
id:
type: integer
pivot:
properties:
class:
type: string
type: object
type: object
organizations:
type: array
items:
type: integer
agencies:
type: array
items:
type: object
property_attendances:
type: array
items:
type: object
locations:
type: array
items:
properties:
location_id:
type: integer
label_id:
type: integer
type: object
primary_profile:
description: Mutually exclusive with secondary_profiles.
properties:
id:
type: integer
type:
type: string
type:
- object
- 'null'
secondary_profiles:
description: Mutually exclusive with primary_profile.
type:
- array
- 'null'
items:
properties:
id:
type: integer
type:
type: string
type: object
type: object
responses:
'200':
description: The updated property. Includes a message field when spend data was moved.
content:
application/json:
schema:
$ref: '#/components/schemas/PropertyResource'
'422':
description: Primary markets are not in the same category.
content:
application/json:
schema:
properties:
error:
type: string
example: Primary markets should be in the same category.
type: object
security:
- bearerAuth: []
delete:
tags:
- Property
summary: Delete a property
description: Soft deletes a property and cleans up associated data including contacts, social handles, profile links, and revenues. Prevents deletion of properties with existing audits. Requires delete administration properties permission
operationId: f43d1ce16fdadfe79ca89a68976ff1ab
parameters:
- name: id
in: path
description: Property ID
required: true
schema:
type: integer
responses:
'204':
description: Empty on success.
'200':
description: Cannot remove Property
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
security:
- bearerAuth: []
/api/team/{id}/social-scans:
get:
tags:
- Property
summary: Get property social scans
description: Returns social scraping session data for the property's social handles across Twitter, Facebook, Instagram and TikTok. Use the slim parameter for reduced data
operationId: 6c74458730512e181795e5a0857db108
parameters:
- name: id
in: path
description: The id of the property.
required: true
schema:
type: integer
- name: slim
in: query
description: Return reduced social scan data.
schema:
type: boolean
responses:
'200':
description: Social scraping session data for the property's handles.
content:
application/json:
schema:
type: object
security:
- bearerAuth: []
/api/team/{id}/related-counts:
get:
tags:
- Property
summary: Get property related counts
description: 'Returns the property id together with counts of its related records: contacts, curated news, hashtags, locations, home/away/user events and audits'
operationId: 7db00c8f95501f664a15c7ff14600bbd
parameters:
- name: id
in: path
description: The id of the property.
required: true
schema:
type: integer
responses:
'200':
description: The property with its related record counts.
content:
application/json:
schema:
properties:
id:
type: integer
contacts_count:
type: integer
curated_news_count:
type: integer
hashtags_count:
type: integer
locations_count:
type: integer
hometeam_events_count:
type: integer
awayteam_events_count:
type: integer
user_events_count:
type: integer
audits_count:
type: integer
type: object
security:
- bearerAuth: []
/api/team/{id}/social-feed/{source}:
get:
tags:
- Property
summary: Get property social feed
description: Fetches the filtered social feed for the given platform and handle within a published date range. Facebook requests are rate-limit checked. Returns an error object when the platform request fails
operationId: 50e7f8791f701651a3ab4aa1ddde4a90
parameters:
- name: id
in: path
description: The id of the property.
required: true
schema:
type: integer
- name: source
in: path
description: Social platform source (e.g. twitter, facebook, instagram, tiktok).
required: true
schema:
type: string
- name: handle
in: query
description: Social handle to fetch the feed for.
required: true
schema:
type: string
- name: published_after
in: query
description: Only include posts published on or after this date. Must be before or equal to published_before.
required: true
schema:
type: string
format: date
- name: published_before
in: query
description: Only include posts published on or before this date. Must be after or equal to published_after.
required: true
schema:
type: string
format: date
responses:
'200':
description: The filtered social feed data, or an error object when the platform request fails.
content:
application/json:
schema:
type: object
security:
- bearerAuth: []
/api/team/{team_id}/scrape-social-feed/{source}:
get:
tags:
- Property
summary: Scrape property social feed
description: Triggers a social feed scrape for the property on the given platform and handle. Returns the scraper service result.
operationId: 4c31ff339a9cb71b0d7a4a00d6e45b65
parameters:
- name: team_id
in: path
description: The id of the property.
required: true
schema:
type: integer
- name: source
in: path
description: Social platform source (e.g. twitter, facebook, instagram, tiktok).
required: true
schema:
type: string
- name: handle
in: query
description: Social handle to scrape.
required: true
schema:
type: string
- name: socialScrapingSessionId
in: query
description: Existing social scraping session id to attach the scrape to.
schema:
type: number
- name: published_after
in: query
description: Only include posts published on or after this date.
schema:
type: string
- name: published_before
in: query
description: Only include posts published on or before this date.
schema:
type: string
responses:
'200':
description: The scraper service result.
content:
application/json:
schema:
type: object
security:
- bearerAuth: []
/api/team-exists:
get:
tags:
- Property
summary: Check whether a property name exists
description: Returns the number of non-deleted properties whose name matches the given name (case-insensitive). A value greater than 0 means the name already exists
operationId: e509c08783ce47ff06f3e4dff279eaa8
parameters:
- name: name
in: query
description: Property name to check.
required: true
schema:
type: string
responses:
'200':
description: Count of properties with the given name.
content:
application/json:
schema:
type: integer
example: 0
security:
- bearerAuth: []
/api/team/types:
get:
tags:
- Property
summary: List property types
description: Returns all available property (team) types
operationId: 05b12663fc8cb255160d1b18b180a367
responses:
'200':
description: List of property types.
content:
application/json:
schema:
type: array
items:
properties:
id:
type: integer
name:
type: string
type: object
security:
- bearerAuth: []
/api/team/{old_id}/reassign/{new_id}:
put:
tags:
- Property
summary: Reassign a property's related records
description: Moves audits, contacts, curated news, locations, hashtags, events and agency links from the old property to the new property within a single transaction
operationId: fb14bb76b43f3368f34d1a6e6c9f537d
parameters:
- name: old_id
in: path
description: The id of the source property to reassign from.
required: true
schema:
type: integer
- name: new_id
in: path
description: The id of the destination property to reassign to.
required: true
schema:
type: integer
responses:
'200':
description: Reassignment completed.
content:
application/json:
schema:
properties:
message:
type: string
example: reassign completed
type: object
'404':
description: One of the properties was not found.
'500':
description: Reassignment failed and the transaction was rolled back.
security:
- bearerAuth: []
components:
schemas:
Note:
properties:
id:
type: integer
notable_id:
type: integer
notable_type:
type: string
user_id:
type: integer
content:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
type: object
PropertyShowSocialResource:
properties:
website_url:
type: string
exclude_from_social_scan:
type: boolean
inactive:
type: boolean
rejected_brands:
type: array
items:
$ref: '#/components/schemas/Company'
hashtags:
type: array
items:
$ref: '#/components/schemas/TeamHashtag'
linkedin_url:
type: string
youtube_url:
type: string
facebook_url:
type: string
twitter_url:
type: string
instagram_url:
type: string
twitch_url:
type: string
tiktok_url:
type: string
twitter_handle:
$ref: '#/components/schemas/TeamTwitterHandle'
twitter_handles:
type: array
items:
allOf:
- $ref: '#/components/schemas/TeamTwitterHandle'
- properties:
followers_count:
type: integer
type: object
twitter_extra_handles:
type: array
items:
$ref: '#/components/schemas/TeamTwitterHandle'
facebook_handle:
$ref: '#/components/schemas/TeamFacebookHandle'
facebook_handles:
type: array
items:
allOf:
- $ref: '#/components/schemas/TeamFacebookHandle'
- properties:
followers_count:
type: integer
type: object
facebook_extra_handles:
type: array
items:
$ref: '#/components/schemas/TeamFacebookHandle'
instagram_handle:
$ref: '#/components/schemas/TeamInstagramHandle'
instagram_handles:
type: array
items:
allOf:
- $ref: '#/components/schemas/TeamInstagramHandle'
- properties:
followers_count:
type: integer
type: object
instagram_extra_handles:
type: array
items:
$ref: '#/components/schemas/TeamInstagramHandle'
tiktok_handle:
$ref: '#/components/schemas/TeamTiktokHandle'
tiktok_handles:
type: array
items:
allOf:
- $ref: '#/components/schemas/TeamTiktokHandle'
- properties:
followers_count:
type: integer
type: object
tiktok_extra_handles:
type: array
items:
$ref: '#/components/schemas/TeamTiktokHandle'
twitch_handle:
$ref: '#/components/schemas/TeamTwitchHandle'
twitch_handles:
type: array
items:
allOf:
- $ref: '#/components/schemas/TeamTwitchHandle'
- properties:
followers_count:
type: integer
type: object
twitch_extra_handles:
type: array
items:
$ref: '#/components/schemas/TeamTwitchHandle'
youtube_handle:
$ref: '#/components/schemas/TeamYoutubeHandle'
youtube_handles:
type: array
items:
allOf:
- $ref: '#/components/schemas/TeamYoutubeHandle'
- properties:
followers_count:
type: integer
type: object
youtube_extra_handles:
type: array
items:
$ref: '#/components/schemas/TeamYoutubeHandle'
type: object
Market:
properties:
id:
type: integer
country_id:
type: integer
region_id:
type: integer
subregion_id:
type: integer
name:
type: string
market_category_id:
type: integer
market_grouping_id:
type: integer
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
type: object
Company:
properties:
id:
type: integer
parent_company_id:
type: integer
subcategory_id:
type: integer
categories_id:
type: integer
name:
type: string
synopsis:
type: string
corporate_phone:
type: string
website:
type: string
linkedin:
type: string
linkedin_id_url:
type: string
linkedin_employees:
type: string
facebook:
type: string
twitter:
type: string
instagram:
type: string
twitch:
type: string
tiktok:
type: string
youtube:
type: string
exclude_from_social_scan:
type: boolean
exclude_from_transcribe:
type: boolean
feed_url:
type: string
statistics:
type: string
no_of_employees:
type: string
priority_markets:
type: string
parent_company:
type: string
ad_agency:
type: string
existing:
type: string
owned_by:
type: string
approved:
type: boolean
approved_by:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
deleted_at:
type: string
format: date-time
type: object
Subgenere:
properties:
id:
type: integer
genre_id:
type: integer
name:
type: string
z
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sponsorunited/refs/heads/main/openapi/sponsorunited-property-api-openapi.yml