SkySlope Libraries API

The Libraries API from SkySlope — 3 operation(s) for libraries.

Operations 3

GET /tags Get Form Tags
GET /libraries Get Libraries
GET /libraries/{libraryId}/form-versions Get Library Form Versions

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/skyslope-libraries-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

skyslope-libraries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: https://s3.amazonaws.com/cdn.skyslope.com/forms/forms-logo-w-top-padding.png
    href: https://skyslope.com/
    altText: SkySlope
  title: SkySlope Partnership API Reference Libraries API
  version: 1.0.0
  description: "# Introduction\n  The SkySlope Forms API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer).\n  Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses,\n  and uses standard HTTP response codes, authentication, and verbs.<br/><br/>\n  NOTE: Endpoints marked with an asterisk (*) will be available to our partners in the near future.\n  # Authentication\n  This API uses [OAuth 2.0 authorization code flow](https://www.oauth.com/oauth2-servers/server-side-apps/authorization-code/)\n  to obtain an access token that can be used to authenticate subsequent API requests.\n  ## Access Tokens\n  ### Request\n  To obtain an access token, first redirect the user to the authorization endpoint:\n  ```\n  https://accounts.skyslope.com/oauth2/authorize?\n    response_type=code\n    &client_id={YOUR_CLIENT_ID}\n    &redirect_uri={YOUR_REDIRECT_URI}\n    &scope=forms.files\n    &state={RANDOM_STATE_VALUE}\n    &code_challenge={CODE_CHALLENGE}\n    &code_challenge_method=S256\n  ```\n  After the user authorizes your application, they'll be redirected back to your redirect URI with an authorization code.\n  Exchange this code for an access token by making a POST request to the token endpoint:\n  ```\n  POST /oauth2/token HTTP/1.1\n  Host: accounts.skyslope.com\n  Content-Type: application/x-www-form-urlencoded\n  \n  grant_type=authorization_code\n  &client_id={YOUR_CLIENT_ID}\n  &client_secret={YOUR_CLIENT_SECRET}\n  &code={AUTHORIZATION_CODE}\n  &redirect_uri={YOUR_REDIRECT_URI}\n  &code_verifier={CODE_VERIFIER}\n  ```\n  ### Usage\n  Authentication to the API is performed by including your access token in the **Authorization** header of your\n  API requests with the Bearer authentication scheme:\n  ```\n  GET /partner/api/files HTTP/1.1\n  Host: forms.skyslope.com\n  Authorization: Bearer {YOUR_ACCESS_TOKEN}\n  ```\n  All API requests must be made over [HTTPS](https://en.wikipedia.org/wiki/HTTPS). Calls made over plain HTTP will fail.\n  API requests without authentication will also fail.\n  ## Refresh Tokens\n  Refresh tokens allow you to obtain new access tokens without requiring the user to re-authenticate. When you first\n  complete the OAuth flow, you'll receive both an access token and a refresh token.\n  ### Request\n  To receive a refresh token, include the `offline_access` scope in your initial authorization request:\n  ```\n  https://accounts.skyslope.com/oauth2/authorize?\n    response_type=code\n    &client_id={YOUR_CLIENT_ID}\n    &scope=forms.files offline_access\n    &redirect_uri={YOUR_REDIRECT_URI}\n  ```\n  ### Usage\n  When your access token expires, make a POST request to the token endpoint:\n  ```\n  POST /oauth2/token HTTP/1.1\n  Host: accounts.skyslope.com\n  Content-Type: application/x-www-form-urlencoded\n  \n  grant_type=refresh_token\n  &client_id={YOUR_CLIENT_ID}\n  &client_secret={YOUR_CLIENT_SECRET}\n  &refresh_token={YOUR_REFRESH_TOKEN}\n  ```\n  This will return a new access token and refresh token pair.\n  ### Security Best Practices\n  - Store refresh tokens securely on your backend server, never on client side\n  - Encrypt refresh tokens at rest using strong encryption\n  - Rotate refresh token on each use\n  - Set up monitoring for unusual refresh token usage patterns\n  - If a refresh token is compromised, revoke it immediately using the token revocation endpoint\n  - Implement automatic cleanup of unused refresh tokens"
  termsOfService: https://skyslope.com/terms-conditions/
  contact:
    name: Support
    url: https://support.skyslope.com/hc/en-us
    email: support@skyslope.com
servers:
- url: https://forms.skyslope.com/partner/api
  description: Production server
- url: https://staging-forms.skyslope.com/partner/api
  description: Staging server
- url: https://integ-forms.skyslope.com/partner/api
  description: Integration server
tags:
- name: Libraries
paths:
  /tags:
    get:
      summary: Get Form Tags
      tags:
      - Libraries
      description: 'Retrieve the tags that are associated with the forms.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.forms.read</div></div>'
      parameters:
      - schema:
          type: string
        in: query
        name: ids
        required: false
        description: The form version ids to retrieve tags for.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                description: A response containing the tags.
                properties:
                  totalRecords:
                    type: number
                    description: The total number of records.
                  records:
                    type: array
                    description: An array of the tags.
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                          description: The id of the tag.
                        tags:
                          type: object
                          description: The tags object.
                          additionalProperties: true
              example:
                totalRecords: 2
                records:
                - id: 28576
                  tags:
                    form-type: residential-purchase-contract
                - id: 29533
                  tags:
                    gives-ds3-access: 'true'
        default:
          description: An object containing the error that occurred.
          content:
            application/json:
              schema:
                type: object
                description: An object containing the error that occurred.
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    description: An array of the errors that occurred.
                    items:
                      type: string
                  traceId:
                    type: string
                    description: A request correlation ID.
  /libraries:
    get:
      summary: Get Libraries
      tags:
      - Libraries
      description: 'Retrieve the libraries that the user is authorized to access.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.libraries.read</div></div>'
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - totalRecords
                - libraries
                properties:
                  totalRecords:
                    type: number
                    description: The total number of authorized libraries.
                  libraries:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - name
                      - regionCodes
                      properties:
                        id:
                          type: integer
                          description: Library id
                        name:
                          type: string
                          description: Name of library
                        regionCodes:
                          type: array
                          items:
                            type: string
                          description: Serving Regions
                    description: An array of libraries the user is authorized to access.
                description: A response containing the authorized libraries for the user.
              example:
                totalRecords: 1
                libraries:
                - id: 1551
                  name: Arizona Association of Realtors
                  regionCodes:
                  - US-AZ
                  - US-CA
        default:
          description: An object containing the error that occurred.
          content:
            application/json:
              schema:
                type: object
                description: An object containing the error that occurred.
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    description: An array of the errors that occurred.
                    items:
                      type: string
                  traceId:
                    type: string
                    description: A request correlation ID.
  /libraries/{libraryId}/form-versions:
    get:
      summary: Get Library Form Versions
      tags:
      - Libraries
      description: 'Retrieve the form versions for a specific library.<div style="color: rgba(38, 50, 56, 0.5); border-bottom: 1px solid rgba(38, 50, 56, 0.3); padding-bottom: 1px;">REQUIRED SCOPES:</div><div style="display: inline-flex; gap: 5px; padding: 5px;"><div style="border-radius: 2px; border: 1px solid rgba(128,128,255,0.5); background-color: rgba(64,64,255,0.25); padding: 0px 5px;">forms.libraries.read</div></div>'
      parameters:
      - schema:
          type: integer
          minimum: 1
        in: path
        name: libraryId
        required: true
        description: The id of the library to retrieve form versions for.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - totalRecords
                - formVersions
                properties:
                  totalRecords:
                    type: number
                    description: The total number of form versions.
                  formVersions:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - formId
                      - name
                      - attributes
                      - publishedVersionId
                      - thumbnailUrl
                      properties:
                        id:
                          type: integer
                          description: Form version id
                        formId:
                          type: integer
                          description: A form has multiple versions, this is the id of the form that this version belongs to.
                        name:
                          type: string
                          description: Form name
                        attributes:
                          type: object
                          description: Dynamic attributes object containing form metadata. All attributes are optional and if present will be strings.
                          additionalProperties:
                            type: string
                        publishedVersionId:
                          type: integer
                          description: In the case that a newer version is published, this will be the id of the newer version.
                        thumbnailUrl:
                          type: string
                          description: URL to form thumbnail image
                    description: An array of form versions from the specified library.
                description: A response containing the form versions for a specific library.
              example:
                totalRecords: 5
                formVersions:
                - id: 36094
                  formId: 35345
                  name: Addendum Copy Test
                  attributes:
                    quickAction: delete
                  publishedVersionId: 36094
                  thumbnailUrl: url-here
                - id: 36095
                  formId: 35931
                  name: BIC CAR TEST - FOO
                  attributes:
                    formType: BRBC
                  publishedVersionId: 36095
                  thumbnailUrl: url-here
                - id: 41054
                  formId: 40355
                  name: BRBC - CRMLS testing
                  attributes:
                    formType: BRBC
                    isCarBRBC: 'true'
                    quickAction: BuyerAgreement
                    hasStartDate: 'true'
                    isCRMLSTracked: 'true'
                  publishedVersionId: 41054
                  thumbnailUrl: url-here
                - id: 41063
                  formId: 40362
                  name: BRBC - CRMLS testing - no dates
                  attributes:
                    formType: BRBC
                    isCarBRBC: 'true'
                    quickAction: BuyerAgreement
                    hasStartDate: 'true'
                    isCRMLSTracked: 'true'
                    downloadWithoutAddress: 'true'
                  publishedVersionId: 41063
                  thumbnailUrl: url-here
                - id: 41046
                  formId: 39761
                  name: BRBC Buyer Representation And Broker Compensation Agreement - CAR
                  attributes:
                    formType: BRBC
                    isCarBRBC: 'true'
                    quickAction: BuyerAgreement
                    QuickActions: BuyerAgreement
                    hasStartDate: 'true'
                    isCRMLSTracked: 'true'
                  publishedVersionId: 41046
                  thumbnailUrl: url-here
        default:
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                required:
                - code
                - message
                - errors
                - traceId
                properties:
                  code:
                    type: string
                    description: A code that represents the error that occurred.
                  message:
                    type: string
                    description: A description of the error that occurred.
                  errors:
                    type: array
                    items:
                      type: string
                    description: An array of the errors that occurred.
                  traceId:
                    type: string
                    description: A request correlation ID.