SponsorUnited Location API

Location management and smart search endpoints

Operations 5

GET /api/locations List locations #
POST /api/locations Create location #
GET /api/locations/{id} Get location #
PUT /api/locations/{id} Update a location #
DELETE /api/locations/{location_id} Delete a location #

Work with this as data

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-location-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 Specification

sponsorunited-location-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SponsorUnited Location API
  version: v1
  description: Location management and smart search endpoints
tags:
- name: Location
  description: Location management and smart search endpoints
paths:
  /api/locations:
    get:
      tags:
      - Location
      summary: List locations
      description: Returns locations filtered by entity type (agency, company, property) or city
      operationId: 24105decfb008b3fc7da567622381f14
      parameters:
      - name: entity_type
        in: query
        description: Entity type (agency, company, brand, team, property)
        schema:
          type: string
      - name: entity_id
        in: query
        description: Entity ID
        schema:
          type: integer
      - name: sub_brands
        in: query
        description: Include sub-brand locations (for company)
        schema:
          type: boolean
      - name: exclude_digital
        in: query
        description: Exclude digital locations
        schema:
          type: boolean
      - name: cityId
        in: query
        description: Filter by city ID
        schema:
          type: integer
      responses:
        '200':
          description: List of locations
        '401':
          description: Unauthenticated
      security:
      - bearerAuth: []
    post:
      tags:
      - Location
      summary: Create location
      description: Creates a new location and optionally attaches it to an entity
      operationId: 1bd3b438bb713a5033a6acb9228b1ed9
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocationStoreRequest'
      responses:
        '200':
          description: New Location.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocationResource'
      security:
      - bearerAuth: []
  /api/locations/{id}:
    get:
      tags:
      - Location
      summary: Get location
      description: Returns a single location by ID
      operationId: aac0f1ac8b745f670b6d74e1a681b4f0
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Location.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LocationResource'
        '401':
          description: Unauthenticated
        '404':
          description: Location not found
      security:
      - bearerAuth: []
    put:
      tags:
      - Location
      summary: Update a location
      description: Updates an existing location's details. Rejects `is_us_hq = true` when the location is currently linked to an individual property.
      operationId: 306b86ac43db6579c15a4537e8a76edd
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocationUpdateRequest'
      responses:
        '200':
          description: Updated location
        '401':
          description: Unauthenticated
        '404':
          description: Location not found
        '422':
          description: Validation error
      security:
      - bearerAuth: []
  /api/locations/{location_id}:
    delete:
      tags:
      - Location
      summary: Delete a location
      description: Deletes a location and detaches it from the associated entity
      operationId: aaa89dcda0660a30bbbbefec469d9e3b
      parameters:
      - name: location_id
        in: path
        required: true
        schema:
          type: integer
      - name: entity_type
        in: query
        required: true
        schema:
          type: string
          enum:
          - agency
          - company
          - property
      - name: entity_id
        in: query
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: Location deleted successfully
        '400':
          description: Failed to delete location
        '401':
          description: Unauthenticated
        '404':
          description: Location not found
      security:
      - bearerAuth: []
components:
  schemas:
    LocationLabelResource:
      properties:
        id:
          type: integer
        name:
          type: string
        slug:
          type: string
      type: object
    LocationResource:
      properties:
        id:
          type: integer
        is_us_hq:
          description: Omitted from the response when the owning property is an individual (athlete / influencer).
          type:
          - boolean
          - 'null'
        street:
          type: string
        city_id:
          type: integer
        zip:
          type: string
        phone:
          type: string
        label:
          oneOf:
          - $ref: '#/components/schemas/LocationLabelResource'
          description: Present only when this location is serialized in the context of an individual property; resolved from the `location_properties.label_id` pivot.
      type: object
    LocationUpdateRequest:
      properties:
        is_us_hq:
          description: Rejected when the location is currently linked to any individual property.
          type: boolean
        street:
          type: string
        city_id:
          type: integer
        zip:
          type: string
        phone:
          type: string
      type: object
    LocationStoreRequest:
      properties:
        is_us_hq:
          description: Rejected when the location is being attached to an individual property.
          type: boolean
        street:
          type: string
        city_id:
          type: integer
        zip:
          type: string
        phone:
          type: string
        entity_type:
          type: string
        entity_id:
          type: integer
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      name: JWT Authentication
      in: header
      bearerFormat: JWT
      scheme: bearer
    apiKeyAuth:
      type: apiKey
      description: 'Service API key for external services (ai-api, chat-api). Generate with: php artisan su:api-token:generate'
      name: X-API-Key
      in: header