Templafy Links API

The Links API from Templafy — 2 operation(s) for links.

Operations 5

GET /libraries/{spaceId}/links/folders/{folderId}/assets Lists all link assets in the folder.
POST /libraries/{spaceId}/links/folders/{folderId}/assets Creates the link asset.
GET /libraries/{spaceId}/links/assets/{assetId} Returns the link asset by the identifier.
PATCH /libraries/{spaceId}/links/assets/{assetId} Updates the link asset.
DELETE /libraries/{spaceId}/links/assets/{assetId} Deletes the link by the identifier.

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/templafy-links-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

templafy-links-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    url: https://support.templafy.com/hc/en-us/requests/new
    name: Submit support ticket
  description: Please refer to our [documentation](https://support.templafy.com/hc/en-us/articles/4411351240081-Public-API-Hive-) for guidelines and examples.
  title: Templafy Public DataSourceFields Links API
  version: v3
  termsOfService: https://www.templafy.com/templafy-saas-agreement/
servers:
- variables:
    tenantId:
      default: ''
      description: Your Templafy subdomain, i.e., https://{TenantId}.api.templafy.com
  url: https://{tenantId}.api.templafy.com/v3
tags:
- name: Links
paths:
  /libraries/{spaceId}/links/folders/{folderId}/assets:
    get:
      tags:
      - Links
      summary: Lists all link assets in the folder.
      description: The result does not include links from subfolders. When {searchQuery} is used the result includes links from subfolders. The search mode enables pagination with 1000 page size maximum.
      parameters:
      - name: spaceId
        in: path
        description: The identifier of the space
        required: true
        schema:
          type: integer
          format: int64
      - name: folderId
        in: path
        description: The identifier of the folder
        required: true
        schema:
          type: integer
          format: int64
      - name: searchQuery
        in: query
        description: Filter on link name, description and tags
        schema:
          type: string
      - name: pageNumber
        in: query
        description: Page number from the result set. Page number is set to 1 by default if {searchQuery} is passed. A value passed only for the page number and not for the page size is ignored.
        schema:
          maximum: 65535
          minimum: 1
          type: integer
          format: int32
      - name: pageSize
        in: query
        description: Size of the returned page. If {searchQuery} is not set, not passing page size or having it 0 returns all the assets from the folder. Acceptable values are 0 to 1000, inclusive.
        schema:
          maximum: 1000
          minimum: 0
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Link'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundProblemDetails'
      security:
      - bearerAuth:
        - library.read
        - library.readwrite
    post:
      tags:
      - Links
      summary: Creates the link asset.
      parameters:
      - name: spaceId
        in: path
        description: The identifier of the space
        required: true
        schema:
          type: integer
          format: int64
      - name: folderId
        in: path
        description: The identifier of the folder
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateLinkRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLinkRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateLinkRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateLinkRequest'
      responses:
        '201':
          description: The identifier of the created asset
          content:
            application/json:
              schema:
                type: integer
                format: int64
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundProblemDetails'
        '409':
          description: The creation cannot proceed due to a conflict with the current state of the target location. This may occur if a link with the same name already exists in this location, or if the folder intended for the creation is in the process of being deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictProblemDetails'
      security:
      - bearerAuth:
        - library.readwrite
  /libraries/{spaceId}/links/assets/{assetId}:
    get:
      tags:
      - Links
      summary: Returns the link asset by the identifier.
      parameters:
      - name: spaceId
        in: path
        description: The identifier of the space
        required: true
        schema:
          type: integer
          format: int64
      - name: assetId
        in: path
        description: The identifier of the link to retrieve
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkDetails'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundProblemDetails'
      security:
      - bearerAuth:
        - library.read
        - library.readwrite
    patch:
      tags:
      - Links
      summary: Updates the link asset.
      parameters:
      - name: spaceId
        in: path
        description: The identifier of the space
        required: true
        schema:
          type: integer
          format: int64
      - name: assetId
        in: path
        description: The identifier of the link asset
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateLinkRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateLinkRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateLinkRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateLinkRequest'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblemDetails'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundProblemDetails'
        '409':
          description: The update operation cannot be completed due to a conflict with the current state of the target location. This may occur if a link with the same name already exists in the destination, or if the destination folder is in the process of being deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictProblemDetails'
      security:
      - bearerAuth:
        - library.readwrite
    delete:
      tags:
      - Links
      summary: Deletes the link by the identifier.
      parameters:
      - name: spaceId
        in: path
        description: The identifier of the space
        required: true
        schema:
          type: integer
          format: int64
      - name: assetId
        in: path
        description: The identifier of the link to delete
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundProblemDetails'
      security:
      - bearerAuth:
        - library.readwrite
components:
  schemas:
    AssetStateWithoutFile:
      enum:
      - ready
      type: string
      description: The current state of the asset
    LinkDetails:
      required:
      - assetState
      - description
      - folderId
      - id
      - modifiedAt
      - name
      - navigationPath
      - tags
      - url
      type: object
      properties:
        id:
          type: integer
          description: Unique asset identifier
          format: int64
        folderId:
          type: integer
          description: Unique folder identifier
          format: int64
        name:
          maxLength: 100
          minLength: 1
          type: string
          description: Display name
        description:
          maxLength: 250
          type: string
        tags:
          type: array
          items:
            type: string
        url:
          maxLength: 2048
          minLength: 1
          type: string
        navigationPath:
          maxLength: 700
          minLength: 1
          type: string
          description: Hierarchical path in lowercase based on the location of a link. E.g. "folder-a/folder-b/_my-link" when the location is "Folder A > Folder B > My Link"
        externalData:
          maxLength: 100
          type:
          - string
          - 'null'
          description: External data which can be attached for future reference
        modifiedAt:
          minLength: 1
          type: string
          description: Date and time in ISO 8601 format of when the asset was last modified
        assetState:
          $ref: '#/components/schemas/AssetStateWithoutFile'
      additionalProperties: false
    NotFoundProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
        traceId:
          type:
          - string
          - 'null'
      additionalProperties: false
      example:
        title: NotFound
        detail: The server can not find the requested resource.
        status: 404
        traceId: d61f7ce-cccb-4e5b-8727-3b68a61a0559
    CreateLinkRequest:
      required:
      - name
      - url
      type: object
      properties:
        name:
          maxLength: 100
          type: string
          description: Display name
        description:
          maxLength: 250
          type:
          - string
          - 'null'
          description: Describing intended usage of the asset
        tags:
          type:
          - array
          - 'null'
          items:
            maxLength: 1024
            minLength: 2
            type: string
          description: Tags should describe the content of the asset making it easier for a user to locate it
        externalData:
          maxLength: 100
          type:
          - string
          - 'null'
          description: External data which can be attached for future reference
        url:
          maxLength: 2048
          type: string
          description: A reference to the web resource. HTTP and HTTPS are supported
      additionalProperties: false
      description: The request model to create a link asset
    ValidationProblemDetails:
      type: object
      properties:
        errors:
          type:
          - object
          - 'null'
          additionalProperties:
            type: array
            items:
              type: string
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
        traceId:
          type:
          - string
          - 'null'
      additionalProperties: false
      example:
        errors:
        - name: The name field is required
        - data: The input was invalid
        title: One or more validation errors occurred.
        status: 400
        traceId: d61f7ce-cccb-4e5b-8727-3b68a61a0559
    ConflictProblemDetails:
      type: object
      properties:
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
        traceId:
          type:
          - string
          - 'null'
      additionalProperties: false
      example:
        title: Conflict
        detail: The request could not be completed due to a conflict with the current state of the resource.
        status: 409
        traceId: d61f7ce-cccb-4e5b-8727-3b68a61a0559
    UpdateLinkRequest:
      type: object
      properties:
        folderId:
          type:
          - integer
          - 'null'
          description: The identifier of the destination folder
          format: int64
        name:
          maxLength: 100
          type:
          - string
          - 'null'
          description: A new display name of the asset
        description:
          maxLength: 250
          type:
          - string
          - 'null'
          description: Description is used to specify the intended usage of the asset
        tags:
          type:
          - array
          - 'null'
          items:
            maxLength: 1024
            minLength: 2
            type: string
          description: Tags should describe the content of the asset making it easier for a user to locate it
        url:
          maxLength: 2048
          type:
          - string
          - 'null'
          description: A reference to the web resource. HTTP and HTTPS are supported
        externalData:
          maxLength: 100
          type:
          - string
          - 'null'
          description: External data which can be attached for future reference
      additionalProperties: false
    Link:
      required:
      - assetState
      - description
      - folderId
      - id
      - modifiedAt
      - name
      - navigationPath
      - tags
      - url
      type: object
      properties:
        id:
          type: integer
          description: Unique asset identifier
          format: int64
        folderId:
          type: integer
          description: Unique folder identifier
          format: int64
        name:
          maxLength: 100
          minLength: 1
          type: string
          description: Display name
        description:
          maxLength: 250
          type: string
        tags:
          type: array
          items:
            type: string
        url:
          maxLength: 2048
          minLength: 1
          type: string
        navigationPath:
          maxLength: 700
          minLength: 1
          type: string
          description: Hierarchical path in lowercase based on the location of a link. E.g. "folder-a/folder-b/_my-link" when the location is "Folder A > Folder B > My Link"
        externalData:
          maxLength: 100
          type:
          - string
          - 'null'
          description: External data which can be attached for future reference
        modifiedAt:
          minLength: 1
          type: string
          description: Date and time in ISO 8601 format of when the asset was last modified
        assetState:
          $ref: '#/components/schemas/AssetStateWithoutFile'
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key