Beacon Roofing Supply Template API

The Template API from Beacon Roofing Supply — 1 operation(s) for template.

Operations 1

GET /template Lists templates and template details for current user #

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/beacon-roofing-supply:beacon-roofing-supply-template-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

beacon-roofing-supply-template-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Beacon Rest Services Template API
  description: 'A combination of all methods in the beacon-api


    [ BASE URL: https://beaconproplus.com


    Beacon ProPlus


    Version 1: https://beaconproplus.com/v1/rest/com/becn


    Version 2: https://beaconproplus.com/v2/rest/com/becn


    Version 3: https://beaconproplus.com/v3/rest/com/becn


    Beacon Stack


    [ BASE URL: https://beacon-api-x7xzzdp35a-uk.a.run.app


    Version 1: https://beacon-api-x7xzzdp35a-uk.a.run.app/v1/rest/com/becn/


    Version 2: https://beacon-api-x7xzzdp35a-uk.a.run.app/v2/rest/com/becn/


    Version 3: https://beacon-api-x7xzzdp35a-uk.a.run.app/v3/rest/com/becn/


    API Site ID

    Show... Most of the APIs supports the apiSiteId parameter in the following locations, the parsing priority is higher to lower. For example, if this parameter appears both in request parameter and request body, will get the one in the request parameter, any other locations will be ignored. apiSiteId in Request Parameter/URL/Query String e.g. example.com/?apiSiteId=XYZ... example.com/?...&apiSiteId=XYZ... apiSiteId in Request Body/Payload e.g. { ... "apiSiteId": "XYZ", ... }


    Please be noted, only support when apiSiteId is the root element of request body. For example, the apiSiteId in the following request body is the second element, so this property will be ignored:


    { ... "foo": { "apiSiteId": "XYZ", } ... }


    apiSiteId related OAuth Token in Request Header e.g. Authorization Bearer atdy9au5qtg0ofkxdewwr3169... In this case, the apiSiteId will be parsed via the OAuth Token. For example, if one token is generated by the client id "nigu0zjtyih7lb36l2...", then this client related api site id(pre-defined and stored in the server database) will be the value of apiSiteId


    API Uniform Format

    Show... Response

    { "success":true, "messages":[ { "key":null, "code":null, "type":"success", "value":"" } ], "result": }

    Explanation


    If the response example value of one endpoint /foo is:

    { "name":"bar", "age":123 }

    Then the actual response value of this endpoint is: (replace the value of "result" element in API Uniform Format with example response)

    { "success":true, "messages":[ { "code":null, "type":"success", "value":"" } ], "result":{ "name":"bar", "age":123 } }


    API Response Message Code

    Show... Code Group


    Code


    Comments


    1XXX:

    common request param error 1001 Param is required. 1002 Repository item not found via request


    1003 Param max length is invalid. 1004 Param min length is invalid. 1005 Param regular expression is invalid. 1006 Request param requestBody is not a valid


    1007 Request param caused validation exception


    1008 Request param caused form error


    2XXX:

    current profile error 2001 Current profile in request is empty


    2002 Current profile type/instance in request is empty


    2003 Current profile in request do not have available accounts


    2004 Current profile is unauthorized


    2005 Current profile is already authorized


    2006 Current profile is permission denied


    3XXX:

    specified request param error 3001 Request param account id is not available/not belong to current profile


    3002 Request param product id is not available to current region of current profile


    3003 Request param profile id is not equal to current profile


    3004 Request param profile id is not found


    3005 Request param site id is not equal to current site


    3006 Request param sku id is not available to current region of current profile


    3007 Request param shipping is invalid to current region of current profile


    4XXX:

    system level common error 4001 System error


    4002 Mincron error


    4003 ATG Order version invalid error


    5XXX:

    specified response error 5001 Submit order failed response


    5002 Submit order failed with integration exception message returned


    5003 Query order detail not match with current


    5004 No result is returned to order history


    5005 Template name invalid


    5006 Need change account


    5007 Account no longer available for current user


    5008 Illegal data


    5009 Account token invalid


    5010 No current Order


    5011 Quote order account not match


    Glossary

    Show...'
  version: '1.0'
  contact: {}
servers: []
tags:
- name: Template
paths:
  /template:
    get:
      operationId: V2Controller_template
      summary: Lists templates and template details for current user
      description: Lists templates and the template details for the current user.
      parameters:
      - name: Account
        required: false
        in: path
        description: If not empty, will filter result by given account id
        schema:
          type: string
      - name: showItems
        required: false
        in: path
        description: Default is false. If "true", response will display template items
        schema:
          type: string
      - name: showItemVariations
        required: false
        in: path
        description: Default is false. If "true", response will display variations of each template item
        schema:
          type: string
      - name: showPricing
        required: false
        in: path
        description: Default is false. If "true", response will display pricing of each template item
        schema:
          type: string
      - name: showItemAvailable
        required: false
        in: path
        description: Default is true. If "false", response will not display item availability in region
        schema:
          type: string
      - name: pageSize
        required: false
        in: path
        description: Default is 10 and max is 100 for record count of each page
        schema:
          type: number
      - name: pageNo
        required: false
        in: path
        description: Default is 1, the first page. Specifies returned starting page number or page index.
        schema:
          type: number
      - name: invokeBy
        required: false
        in: path
        description: If value is "store", will do the store logic which is the legacy logic in place to enable search function or filtering.
        schema:
          type: string
      - name: filterBy
        required: false
        in: path
        description: If "invokeBy=store", the search key feature is enabled.<br><br>filterBy enumeration<ul><li>templateName</li><li>dataLastModified</li><li>account</li><li>createdBy</li></ul>
        schema:
          type: string
      - name: filter
        required: false
        in: path
        description: If "invokeBy=store", the search terms feature is enabled.
        schema:
          type: string
      - name: orderBy
        required: false
        in: path
        description: Default is "dataLastModified desc". This feature is enabled only when "invokeBy = store"<br><br>orderBy enumeration<ul><li>templateName asc/desc</li><li>dataLastModified asc/desc</li><li>account asc/desc</li><li>createdBy asc/desc</li></ul>
        schema:
          type: string
      responses:
        '200':
          description: successful operation<br><br>refer to the <i>API Uniform Format</i> dropdown above
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/templateResponse'
        '400':
          description: Bad Request, accountId is invalid.
        '401':
          description: Unauthorized, the authorization bearer token is invalid.
        '405':
          description: Method not allowed, the request method is not valid for this API or this API is not available.
        '500':
          description: Internal exception.
      tags:
      - Template
components:
  schemas:
    Option:
      type: object
      properties:
        optionId:
          type: string
        optionName:
          type: string
        opectionChecked:
          type: boolean
        skuId:
          type: string
      required:
      - optionId
      - optionName
      - opectionChecked
      - skuId
    ImageUrl:
      type: object
      properties:
        thumbnail:
          type: string
        large:
          type: string
      required:
      - thumbnail
      - large
    CurrentVariation:
      type: object
      properties:
        typeId:
          type: string
        typeName:
          type: string
        options:
          type: array
          items:
            $ref: '#/components/schemas/Option'
      required:
      - typeId
      - typeName
      - options
    Next:
      type: object
      properties:
        available:
          type: boolean
        label:
          type: string
        page:
          type: number
      required:
      - available
      - label
      - page
    TemplateItem:
      type: object
      properties:
        templateItemId:
          type: string
        productImageUrl:
          type: string
        productOnErrorImageUrl:
          type: string
        itemOrProductDescription:
          type: string
        itemNumber:
          type: string
        nickName:
          type: string
        productOrItemNumber:
          type: string
        internalProductName:
          type: string
        currentVariation:
          $ref: '#/components/schemas/CurrentVariation'
        variations:
          type: array
          items:
            $ref: '#/components/schemas/CurrentVariation'
        unitPrice:
          type: number
        unitOfMeasure:
          type: string
        quantity:
          type: number
        available:
          type: boolean
        imageUrl:
          $ref: '#/components/schemas/ImageUrl'
      required:
      - templateItemId
      - productImageUrl
      - productOnErrorImageUrl
      - itemOrProductDescription
      - itemNumber
      - nickName
      - productOrItemNumber
      - internalProductName
      - currentVariation
      - variations
      - unitPrice
      - unitOfMeasure
      - quantity
      - available
      - imageUrl
    LastModifiedUser:
      type: object
      properties:
        profileId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        emailAddress:
          type: string
      required:
      - profileId
      - firstName
      - lastName
      - emailAddress
    Result:
      type: object
      properties:
        pageRows:
          type: number
        pages:
          type: number
        page:
          type: number
        rows:
          type: number
        rowsPerPage:
          type: number
      required:
      - pageRows
      - pages
      - page
      - rows
      - rowsPerPage
    templateResponse:
      type: object
      properties:
        totalNumRecs:
          type: number
        pageNumRecs:
          type: number
        templates:
          type: array
          items:
            $ref: '#/components/schemas/Template'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
      - totalNumRecs
      - pageNumRecs
      - templates
      - pagination
    Template:
      type: object
      properties:
        templateId:
          type: string
        templateName:
          type: string
        lastModifiedDate:
          type: string
        lastModifiedUser:
          $ref: '#/components/schemas/LastModifiedUser'
        accountLegacyId:
          type: string
        isAccountClosed:
          type: boolean
        accountName:
          type: string
        createdByUser:
          $ref: '#/components/schemas/LastModifiedUser'
        templateItems:
          type: array
          items:
            $ref: '#/components/schemas/TemplateItem'
      required:
      - templateId
      - templateName
      - lastModifiedDate
      - lastModifiedUser
      - accountLegacyId
      - isAccountClosed
      - accountName
      - createdByUser
      - templateItems
    Pagination:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/Next'
        previous:
          $ref: '#/components/schemas/Next'
        pageSize:
          type: number
        currentPage:
          type: number
        totalCount:
          type: number
        results:
          type: array
          items:
            $ref: '#/components/schemas/Result'
      required:
      - next
      - previous
      - pageSize
      - currentPage
      - totalCount
      - results