Synup API

REST API v4 for managing business locations, syndicating listings to 80+ directories, aggregating and responding to reviews, running review campaigns, tracking local search rankings with grid-rank heatmaps, publishing local and social posts, and retrieving unified profile analytics. 210 operations across 208 paths with 222 component schemas, published one OpenAPI document per endpoint on developer.synup.com.

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/synup-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

synup-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Synup API
  version: '4'
  description: 'REST API v4 for the Synup local marketing platform: business locations, listing syndication
    to 80+ directories, review/interaction aggregation and response, review campaigns, local rank tracking
    and grid-rank heatmaps, local and social posts, AI post ideas, menus, connected accounts, users and
    profile analytics.


    ASSEMBLED BY API EVANGELIST from the per-endpoint OpenAPI documents Synup publishes on its own documentation
    host (developer.synup.com, Apidog project 797384). Every operation, parameter, response, example and
    schema below is verbatim provider content; only the merge into a single document is ours. Source index:
    https://developer.synup.com/llms.txt'
  contact:
    name: Synup Developer Documentation
    url: https://developer.synup.com/
  x-assembled-by: api-evangelist enrichment pipeline (local-v1)
  x-assembled-from: 506 per-endpoint OpenAPI fragments published at https://developer.synup.com/<slug>.md
  x-assembled-date: '2026-08-13'
servers:
- url: https://api.synup.com/api/v4
  description: Base ENV (as published in every Synup doc fragment). Tenant workspace domains (https://<workspace>.synup.com/api/v4)
    also serve the same API.
paths:
  /locations/activate:
    post:
      summary: Activate archived locations
      deprecated: false
      description: "<span style=\"font-size: 14px;\">\nUse this API to reactivate one or more previously\
        \ archived locations, allowing them to be updated and managed again.\n    \n\n:::info[]\nImportant\
        \ Notes:\n- <span style=\"font-size: 14px;\">Activating a location restores its functionality,\
        \ enabling updates and modifications.</span>\n- <span style=\"font-size: 14px;\">Only archived\
        \ locations can be activated; active locations do not require this action.</span>\n- <span style=\"\
        font-size: 14px;\">Reactivating a location may resume billing based on your subscription plan.</span>\n\
        :::\n</span>"
      operationId: activateLocations
      tags:
      - Locations
      - Locations
      parameters:
      - name: Authorization
        in: header
        description: API key for authentication
        required: true
        example: API T9V35W3xxxxxxxxxxx
        schema:
          type: string
      - name: Content-Type
        in: header
        description: ''
        required: true
        example: application/json
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type: object
                  required:
                  - locationIds
                  properties:
                    locationIds:
                      type: array
                      description: Array of location Node IDs to activate
                      items:
                        type: string
                  x-apidog-orders:
                  - locationIds
              x-apidog-orders:
              - input
            example:
              input:
                locationIds:
                - TG9jYXRpb246MTE3MTM4OQ==
      responses:
        '200':
          description: Locations activated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      activateLocations:
                        type: object
                        properties:
                          bulkEditTaskId:
                            type: string
                            description: ID of bulk edit task if multiple locations are being activated
                            nullable: true
                          clientMutationId:
                            type: string
                            nullable: true
                          errors:
                            type: array
                            items:
                              type: string
                            nullable: true
                          result:
                            type: array
                            items:
                              type: object
                              properties:
                                errors:
                                  type: array
                                  items:
                                    type: string
                                  nullable: true
                                locationId:
                                  type: string
                                  description: Node ID of the location
                                status:
                                  type: string
                                  enum:
                                  - ACTIVE
                                  description: Final status of the activation operation
                                success:
                                  type: boolean
                                  description: Whether the operation was successful
                              x-apidog-orders:
                              - errors
                              - locationId
                              - status
                              - success
                          success:
                            type: boolean
                            nullable: true
                        x-apidog-orders:
                        - bulkEditTaskId
                        - clientMutationId
                        - errors
                        - result
                        - success
                    x-apidog-orders:
                    - activateLocations
                x-apidog-orders:
                - data
              example:
                data:
                  activateLocations:
                    bulkEditTaskId: null
                    clientMutationId: null
                    errors: null
                    result:
                    - errors: null
                      locationId: TG9jYXRpb246MTE3MTM4OQ==
                      status: ACTIVE
                      success: true
                    success: null
          headers: {}
          x-apidog-name: OK
        '400':
          description: Bad request - invalid input
          content:
            application/json:
              schema:
                type: object
                properties: {}
                x-apidog-orders: []
          headers: {}
          x-apidog-name: Bad Request
        '401':
          description: Unauthorized - invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties: {}
                x-apidog-orders: []
          headers: {}
          x-apidog-name: Unauthorized
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: string
                      examples:
                      - Insufficient permissions to activate locations
                x-apidog-orders:
                - errors
          headers: {}
          x-apidog-name: Forbidden
      security: []
      x-apidog-folder: Locations
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/797384/apis/api-13659836-run
  /social-post-ideas/active-chat-session:
    get:
      summary: Active chat session
      deprecated: false
      description: '<span style="font-size: 14px;">

        Returns the currently active AI post-idea chat session for a brand (social profile), if one exists.
        Set `excludeSeries` to skip sessions that belong to a content series.

        </span>'
      operationId: activeChatSession
      tags:
      - Social Post Ideas
      - Social Post Ideas
      parameters:
      - name: socialProfileId
        in: query
        description: Social profile ID.
        required: true
        example: 6f1c2a90-...
        schema:
          type: string
      - name: excludeSeries
        in: query
        description: Exclude sessions that belong to a content series.
        required: false
        example: ''
        schema:
          type: boolean
      - name: Synup-Version
        in: header
        description: API version date (YYYY-MM-DD).
        required: true
        example: '2026-04-17'
        schema:
          type: string
      - name: Authorization
        in: header
        description: API key for authentication.
        required: true
        example: API T9V35W3xxxxxxxxxxx
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      activeChatSession:
                        $ref: '#/components/schemas/ChatSession'
                    x-apidog-orders:
                    - activeChatSession
                    x-apidog-ignore-properties: []
                x-apidog-orders:
                - data
                x-apidog-ignore-properties: []
          headers: {}
          x-apidog-name: ''
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties: {}
                x-apidog-orders: []
                x-apidog-ignore-properties: []
          headers: {}
          x-apidog-name: ''
      security: []
      x-apidog-folder: Social Post Ideas
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/797384/apis/api-40055529-run
  /menus/{menuId}/items:
    post:
      summary: Add an item to an existing section
      deprecated: false
      description: ''
      tags:
      - Menus
      parameters:
      - name: menuId
        in: path
        description: ''
        required: true
        example: ''
        schema:
          type: string
      - name: Content-Type
        in: header
        description: ''
        required: true
        example: application/json
        schema:
          type: string
      - name: Authorization
        in: header
        description: ''
        required: true
        example: API VGLYvxxxxxxxxxxxxxxxxxxxxx
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type: object
                  properties:
                    sectionId:
                      type: string
                    offeringsItem:
                      type: object
                      properties:
                        displayName:
                          type: string
                        description:
                          type: string
                        price:
                          type: string
                      required:
                      - displayName
                      - description
                      - price
                  required:
                  - sectionId
                  - offeringsItem
              required:
              - input
            example:
              input:
                sectionId: '{sectionId}'
                offeringsItem:
                  displayName: Caprese
                  description: Tomato, mozzarella, and basil
                  price: '12.00'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
          headers: {}
          x-apidog-name: Success
      security: []
      x-apidog-folder: Menus
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/797384/apis/api-33169805-run
  /locations/review-campaigns/customers:
    post:
      summary: Add customers to a review campaign
      deprecated: false
      description: '<span style="font-size: 14px;">

        This API adds new customers to an existing review campaign, allowing them to receive review requests.


        **Behavior:**

        - Supports batch addition of multiple customers in a single request.

        - Customers will receive review requests via the configured delivery method (email, SMS, or both).

        - Ensures duplicate entries are not added to the same campaign.

        </span>'
      operationId: addCustomersToReviewCampaign
      tags:
      - Review Campaigns
      parameters:
      - name: Authorization
        in: header
        description: API key for authentication
        required: true
        example: API T9V35W3xxxxxxxxxxx
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCustomersRequest'
            example: ''
      responses:
        '200':
          description: Successfully added customers
          content:
            application/json:
              schema:
                type: object
                properties: {}
                x-apidog-orders: []
                x-apidog-ignore-properties: []
          headers: {}
          x-apidog-name: OK
      security: []
      x-apidog-folder: Review Campaigns
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/797384/apis/api-14003757-run
  /locations/reviews/settings/edit:
    get:
      summary: Add / Edit interaction source
      deprecated: false
      description: '<span style="font-size: 14px;">

        Use this endpoint to add a new interaction source URL.

        The body of the request must contain the locationId and a siteUrls array.



        <TipInfo>Interaction sources for connected Google and Facebook accounts cannot be modified/added
        to. These interaction sources are automatically added when you connect your Google and Facebook
        accounts.</TipInfo>




        </span>'
      tags:
      - Reviews/Review Sources
      parameters:
      - name: Authorization
        in: header
        description: API key for authentication
        required: true
        example: API T9V35W3xxxxxxxxxxx
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                locationId:
                  type: string
                siteUrls:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      url:
                        type: string
                    x-apidog-orders:
                    - name
                    - url
              required:
              - locationId
              - siteUrls
              x-apidog-orders:
              - locationId
              - siteUrls
            example:
              locationId: TG9jYXRpb246MTY4MDU=
              siteUrls:
              - name: trulia.com
                url: test.com
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      editInteractionsSetting:
                        type: object
                        properties:
                          errors:
                            type: 'null'
                          interactionSetting:
                            type: object
                            properties:
                              positiveInteractionThreshold:
                                type: integer
                              siteSettings:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    url:
                                      type: string
                                      nullable: true
                                    connected:
                                      type: boolean
                                  required:
                                  - name
                                  - url
                                  - connected
                                  x-apidog-orders:
                                  - name
                                  - url
                                  - connected
                              id:
                                type: string
                            required:
                            - positiveInteractionThreshold
                            - siteSettings
                            - id
                            x-apidog-orders:
                            - positiveInteractionThreshold
                            - siteSettings
                            - id
                        required:
                        - errors
                        - interactionSetting
                        x-apidog-orders:
                        - errors
                        - interactionSetting
                      interactionSiteConfig:
                        type: array
                        items:
                          type: object
                          properties:
                            site:
                              type: string
                            siteUrl:
                              type: string
                          required:
                          - site
                          - siteUrl
                          x-apidog-orders:
                          - site
                          - siteUrl
                      interactionsSetting:
                        type: object
                        properties:
                          siteSettings:
                            type: array
                            items:
                              type: object
                              properties:
                                name:
                                  type: string
                                url:
                                  type: string
                                  nullable: true
                              required:
                              - name
                              - url
                              x-apidog-orders:
                              - name
                              - url
                        required:
                        - siteSettings
                        x-apidog-orders:
                        - siteSettings
                    required:
                    - editInteractionsSetting
                    - interactionSiteConfig
                    - interactionsSetting
                    x-apidog-orders:
                    - editInteractionsSetting
                    - interactionSiteConfig
                    - interactionsSetting
                required:
                - data
                x-apidog-orders:
                - data
              example:
                data:
                  editInteractionsSetting:
                    errors: null
                    interactionSetting:
                      positiveInteractionThreshold: 2
                      siteSettings:
                      - name: trulia.com
                        url: test.com
                        connected: false
                      - name: google.com
                        url: test.com
                        connected: false
                      - name: foursquare.com
                        url: test.com
                        connected: false
                      - name: yelp.com
                        url: https://www.yelp.com/biz/yelp-san-francisco?sort_by=date_desc
                        connected: false
                      - name: facebook.com
                        url: https://www.facebook.com/Om-book-shop-613976075648984/
                        connected: true
                      - name: maps.google.com
                        url: https://maps.google.com/maps?cid=11886702604501862703
                        connected: true
                      - name: zillow.com
                        url: null
                        connected: false
                      - name: realtor.com
                        url: null
                        connected: false
                      - name: reach150.com
                        url: null
                        connected: false
                      - name: yelloyello.com
                        url: https://www.yelloyello.com/places/tryvexan-review-new-york
                        connected: false
                      id: 743c8f7e-cc47-42ff-a640-3c4d072dcb86
          headers: {}
          x-apidog-name: Success
      security: []
      x-apidog-folder: Reviews/Review Sources
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/797384/apis/api-19357403-run
  /users/folders/add:
    post:
      summary: Add folders to user
      deprecated: false
      description: "<span style=\"font-size: 14px;\">\n    \n    This API associates one or more folders\
        \ with a specified user, granting them access to manage those folders.\n\n**Behavior:**\n- Supports\
        \ assigning multiple folders to a single user.\n- Updates the user's permissions based on assigned\
        \ folders.\n</span>"
      tags:
      - User Management
      - User Management
      parameters:
      - name: Authorization
        in: header
        description: API key for authentication
        required: false
        example: API T9V35W3xxxxxxxxxxx
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                input:
                  type: object
                  required:
                  - userId
                  - folderIds
                  - defaultFolderId
                  properties:
                    userId:
                      type: string
                      description: Base64 encoded user ID
                    folderIds:
                      type: array
                      items:
                        type: string
                        format: uuid
                      description: Array of folder UUIDs to associate with the user
                    defaultFolderId:
                      type: string
                  x-apidog-orders:
                  - userId
                  - folderIds
                  - defaultFolderId
              x-apidog-orders:
              - input
            example:
              input:
                userId: VXNlcjoxMDAyOA==
                folderIds:
                - c1d92c09-8ddd-469e-af96-0eb64a48d647
                - a5af4f5d-41b6-4a8a-b24f-98741b021b7b
                defaultFolderId: c1d92c09-8ddd-469e-af96-0eb64a48d647
      responses:
        '200':
          description: Successfully added folders to user
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      addFoldersForUser:
                        type: object
                        properties:
                          status:
                            type: array
                            items:
                              type: object
                              properties:
                                errors:
                                  type: array
                                  items:
                                    type: string
                                  nullable: true
                                folderId:
                                  type: string
                                  format: uuid
                                success:
                                  type: boolean
                              x-apidog-orders:
                              - errors
                              - folderId
                              - success
                        x-apidog-orders:
                        - status
                    x-apidog-orders:
                    - addFoldersForUser
                x-apidog-orders:
                - data
          headers: {}
          x-apidog-name: OK
      security: []
      x-apidog-folder: User Management
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/797384/apis/api-13994432-run
  /locations/keywords:
    post:
      summary: Add keywords
      deprecated: false
      description: '<span style="font-size: 14px;">

        This API allows you to add keywords that you want to track, for a specific location.



        </span>


        :::caution[]

        <span style="font-size: 14px;"> **Limitations:** The number of keywords that can be added for
        a location is subject to your subscription plan. Please consult the support team to determine
        the exact number applicable to your account.</span>

        :::'
      tags:
      - Rankings
      parameters:
      - name: Authorization
        in: header
        description: API key for authentication. Must be prefixed with 'API '
        required: true
        example: API T9V35W3xxxxxxxxxxx
        schema:
          type: string
      - name: Content-Type
        in: header
        description: ''
        required: true
        example: application/json
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                locationId:
                  type: string
                inputKeywords:
                  type: array
                  items:
                    type: string
              required:
              - locationId
              - inputKeywords
              x-apidog-orders:
              - locationId
              - inputKeywords
            example:
              locationId: TG9jYXRpb246MTM5OTg=
              inputKeywords:
              - road paving
              - road building
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      addKeywords:
                        type: object
                        properties:
                          keywords:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                primary:
                                  type: 'null'
                                archived:
                                  type: boolean
                                archiveReasonId:
                                  type: 'null'
                                databaseId:
                                  type: integer
                                name:
                                  type: string
                              required:
                              - id
                              - primary
                              - archived
                              - archiveReasonId
                              - databaseId
                              - name
                              x-apidog-orders:
                              - id
                              - primary
                              - archived
                              - archiveReasonId
                              - databaseId
                              - name
                          errors:
                            type: 'null'
                        required:
                        - keywords
                        - errors
                        x-apidog-orders:
                        - keywords
                        - errors
                    required:
                    - addKeywords
                    x-apidog-orders:
                    - addKeywords
                required:
                - data
                x-apidog-orders:
                - data
              examples:
                '1':
                  summary: Success
                  value:
                    data:
                      addKeywords:
                        keywords:
                        - id: S2V5d29yZDoxOTM2Nzk1
                          primary: null
                          archived: false
                          archiveReasonId: null
                          databaseId: 1936795
                          name: road paving
                        - id: S2V5d29yZDoxOTM2Nzk2
                          primary: null
                          archived: false
                          archiveReasonId: null
                          databaseId: 1936796
                          name: road building
                        errors: null
                '2':
                  summary: If keyword already exists
                  value:
                    data:
                      addKeywords:
                        keywords: null
                        errors:
                        - message: Keyword with name road paving already exists
                          contextInfo:
                          - key: keyword
                            value: road paving
                          code: SY20106
          headers: {}
          x-apidog-name: Success
      security: []
      x-apidog-folder: Rankings
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/797384/apis/api-13687734-run
  /locations/tags:
    post:
      summary: Add location to a tag
      deprecated: false
      description: '

        <span style="font-size: 14px;">

        This API associates a location with a specified tag. If the tag does not exist, it will be automatically
        created before the association.


        **Behavior:**

        - Can be used to create new tags and assign existing tags to locations.

        - Each location can have a maximum of 10 tags. Exceeding this limit will result in an error.


        </span>





        '
      operationId: addLocationToTag
      tags:
      - Organizing locations
      - Tags
      - Locations
      parameters:
      - name: Authorization
        in: header
        description: API key for authentication
        required: true
        example: API T9V35W3xxxxxxxxxxx
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - input
              properties:
                input:
                  type: object
                  required:
                  - locationId
                  - tag
                  properties:
                    locationId:
                      type: string
                      description: Unique identifier of the location
                      examples:
                      - TG9jYXRpb246MTY4NjA=
                    tag:
                      type: string
                      description: Name of the tag to add the location to
                      examples:
                      - New
                  x-apidog-orders:
                  - locationId
                  - tag
              x-apidog-orders:
              - input
            example: ''
      responses:
        '200':
          description: Operation result
          content:
            application/json:
              schema:
                type: object
                properties:
                  

# --- truncated at 32 KB (1212 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/synup/refs/heads/main/openapi/synup-api-openapi.yml