OwnLocal Businesses API

Local business (advertiser) records — create, list, retrieve, and attach logo/imagery.

Operations 5

GET /api/v1/businesses Retrieve a list of businesses #
POST /api/v1/businesses Create a new business #
GET /api/v1/businesses/{businessUuid} Retrieves a business #
POST /api/v1/businesses/{businessUuid}/images Upload image for a business #

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/ownlocal-businesses-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

ownlocal-businesses-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OwnLocal Businesses API
  version: v1
tags:
- name: Businesses
paths:
  /api/v1/businesses:
    get:
      summary: Retrieve a list of businesses
      tags:
      - Businesses
      security:
      - apiKey: []
      parameters:
      - name: categories
        in: query
        example: foodAndBeverage
        schema:
          type: string
      - name: subCategories
        in: query
        example: mexicanFood,restaurants
        schema:
          type: string
      - name: dateModifiedMin
        in: query
        example: '2019-09-01T10:56:00'
        schema:
          type: string
          format: date
      - name: dateModifiedMax
        in: query
        example: '2019-09-07T10:56:00'
        schema:
          type: string
          format: date
      - name: dateCreatedMin
        in: query
        example: '2019-09-01T10:56:00'
        schema:
          type: string
          format: date
      - name: dateCreatedMax
        in: query
        example: '2019-09-07T12:34:00'
        schema:
          type: string
          format: date
      - name: publisherUuids
        in: query
        example:
        - 7f188b7b-7bc8-452e-9bb6-82bb3e13f4b1
        - d69b6855-7e24-47e1-96a0-11c55ca0e9a7
        schema:
          type: array
          items:
            type: string
      - name: sortedBy
        in: query
        example: createdAt,updatedAt,startDate,endDate
        schema:
          type: string
      - name: page
        in: query
        example: 2
        schema:
          type: integer
          format: int64
      - name: size
        in: query
        example: 20
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: businesses found
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/business'
      operationId: getApiV1Businesses
      x-operation-id-source: derived
    post:
      summary: Create a new business
      tags:
      - Businesses
      security:
      - apiKey: []
      responses:
        '201':
          description: Business was successfully created
          content:
            application/json:
              schema:
                type: object
                properties:
                  businessUuid:
                    type: string
                    example: 25c4ae81-095e-4229-a56b-cb2f3ae08f1f
                    format: uuid
                  status:
                    type: string
                    example: Created
                  message:
                    type: string
                    example: Your business {business name} was successfully created.
        '405':
          description: Invalid input
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/business'
        description: Business to be created
        required: true
      operationId: postApiV1Businesses
      x-operation-id-source: derived
  /api/v1/businesses/{businessUuid}:
    get:
      summary: Retrieves a business
      tags:
      - Businesses
      security:
      - apiKey: []
      parameters:
      - name: businessUuid
        in: path
        required: true
        description: UUID of the Business requested
        example: 725f5b11-f3f0-42e8-88b7-0d46daa1a72d
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: ad found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/business'
        '404':
          description: Business {business_uuid} not found
      operationId: getApiV1BusinessesByBusinessUuid
      x-operation-id-source: derived
  /api/v1/businesses/{businessUuid}/images:
    post:
      summary: Upload image for a business
      tags:
      - Businesses
      security:
      - apiKey: []
      parameters:
      - name: businessUuid
        in: path
        required: true
        description: UUID of business to upload image for
        example: 25c4ae81-095e-4229-a56b-cb2f3ae08f1f
        schema:
          type: string
          format: uuid
      responses:
        '202':
          description: Content was successfully received
        '400':
          description: Content could not be saved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unacceptableContent'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: Image to upload
                  format: binary
                fileName:
                  type: string
                  description: Name of the file
              required:
              - file
              - fileName
      operationId: postApiV1BusinessesByBusinessUuidImages
      x-operation-id-source: derived
  /api/v1/businesses/{businessUuid}/logo:
    post:
      summary: Upload logo for a business
      tags:
      - Businesses
      security:
      - apiKey: []
      parameters:
      - name: businessUuid
        in: path
        required: true
        description: UUID of business to upload logo for
        example: 25c4ae81-095e-4229-a56b-cb2f3ae08f1f
        schema:
          type: string
          format: uuid
      responses:
        '202':
          description: Content was successfully received
        '400':
          description: Content could not be saved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unacceptableContent'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: Logo file to upload
                  format: binary
                fileName:
                  type: string
                  description: Name of the file
              required:
              - file
              - fileName
      operationId: postApiV1BusinessesByBusinessUuidLogo
      x-operation-id-source: derived
components:
  schemas:
    unacceptableContent:
      type: object
      properties:
        message:
          type: string
          example: A message indicating why the content was unacceptable
    business:
      type: object
      properties:
        businessUuid:
          type: string
          example: 69271d95-e891-4bf7-a9ba-ce249e36e236
          format: uuid
        businessCustomId:
          type: string
          example: '23456'
        publisherUuids:
          type: array
          items:
            type: string
          example:
          - e94df8d7-cc45-4ec9-b9fa-e42f04f74c38
          - 9103093d-596a-4ed4-a0ea-d7a5bfc35912
        name:
          type: string
          example: Cielo Azul Mexican Grill
        logoUrl:
          type: string
          example: http://www.cielobluemexreservations.com/CieloBlueMexicanGrill_logo.jpg
        website:
          type: string
          example: http://www.cielobluecantina.com
        urls:
          type: array
          items:
            type: object
            properties:
              url:
                type: string
              label:
                type: string
            example:
              url: http://www.ciellobluemexreservations.com
              laber: Reservations
        description:
          type: string
          example: We provide our customers with a fun and happy environment along with our enthusiastic staff, always making sure our customers have the greatest time in our restaurants. We try to make everyone of our customers feel welcome, and to make them have a great experience with us.
        email:
          type: string
          example: generalmgr@cielobluecantina.com
        openingHours:
          type: string
          example: Mo,Tu,We,Th,Fr 09:00-12:00
        hoursGeneralDescription:
          type: string
          example: Open 6 days a week, Tuesday to Sunday
        conditionsOfAccess:
          type: string
          example: reservations accepted
        locations:
          type: array
          items:
            type: object
            properties:
              streetAddress:
                type: integer
                example: 197 Bloor St E
              addressLocality:
                type: string
                example: Oshawa
              addressRegion:
                type: string
                example: 'ON'
              postalCode:
                type: string
                example: L1H 3M3
              telephones:
                type: array
                items:
                  type: string
                example:
                - 905-720-2326
        categories:
          type: array
          items:
            type: string
            example: Food and Beverage
        subCategories:
          type: array
          items:
            type: string
            example: Mexican Food
        social:
          type: object
          properties:
            facebookUrl:
              type: instring
              example: https://www.facebook.com/CieloBlueBelmont/
            instagramUrl:
              type: string
              example: https://www.instagram.com/CieloBlueBelmont/
            twitterUrl:
              type: string
              example: https://www.twitter.com/CieloBlueBelmont/
            youtubeUrl:
              type: string
              example: https://www.youtube.com/CieloBlueBelmont/
            yelpUrl:
              type: string
              example: https://www.yelp.com/biz/Cielo-Blue-Belmont
        acceptedPaymentMethods:
          type: array
          items:
            type: string
          example:
          - MasterCard
          - Cash
        images:
          type: array
          items:
            type: string
          example:
          - https://assets.ownlocal.com/images/a78feabb-df16-4fde-87aa-fba233d71671.jpeg
          - https://assets.ownlocal.com/images/bbfe0e1f-0d8a-40df-86bd-c6a2250c09ec.jpeg
      required: []
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header