SpotDraft V2 Templates API

List templates, inspect template fields, and read template details across public API versions.

Business capability
Contract Management BC-150.10

Operations 4

GET /api/v2/public/templates/ Get Template List #
GET /api/v2/public/templates/{template_id}/ Get Template Details #
PATCH /api/v2/public/templates/{template_id}/ Update Template Data #
GET /api/v2/public/templates/{template_id}/metadata Get Template Metadata #

Documentation

Specifications

Schemas & Data

Other Resources

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/spotdraft-v2-templates-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

spotdraft-v2-templates-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SpotDraft V2 Templates API
  version: v1
  x-version: v1
  x-logo:
    url: https://cdn.spotdraft.com/assets/logo-black-new.png
    backgroundColor: transparent
    altText: SpotDraft Logo
    href: https://spotdraft.com
  x-favicon: https://cdn.spotdraft.com/assets/favicon.png
  x-footer: © SpotDraft Inc. All rights reserved.
  description: '# SpotDraft Public API


    Welcome to the **SpotDraft Public API**.'
servers:
- url: https://api.eu.spotdraft.com
  description: Europe
- url: https://api.in.spotdraft.com
  description: India
- url: https://api.us.spotdraft.com
  description: United States
- url: https://api.me.spotdraft.com
  description: Middle East
tags:
- name: V2 Templates
  description: List templates, inspect template fields, and read template details across public API versions.
paths:
  /api/v2/public/templates/:
    get:
      operationId: v2_public_templates_list
      description: 'Lists published templates available to the workspace tied to the API credentials.

        Use query parameters to filter by tags, counterparty type, archive state, and multipart support.'
      summary: Get Template List
      parameters:
      - in: query
        name: cp_types
        schema:
          type: string
        description: 'The type of Counterparty that can be added to contracts created from this template.

          Must be either `Organisation` or `Individual`.

          This value will be used to filter the list of templates returned by the API.

          The template will be having one or more CP that match cp_types.'
      - in: query
        name: cp_types_all
        schema:
          type: boolean
          default: false
        description: 'When a template has multiple counterparties, whether all counterparties should match the CP type given in cp_types.

          False by default'
      - in: query
        name: exclude_multi_party
        schema:
          type: boolean
          default: false
        description: Whether templates that support multiple counterparties should be excluded.
      - in: query
        name: include_archived
        schema:
          type: boolean
          default: false
        description: Whether archived templates should be included in the results.
      - in: query
        name: tags
        schema:
          type: array
          items:
            type: string
        description: 'The tags (if any) to filter the templates by.


          Multiple tags can be specified by specifying the query param multiple times. Only templates where the Template tags are a subset of the tags passed will be returned.'
      - in: query
        name: tags_all
        schema:
          type: array
          items:
            type: string
        description: 'The tags (if any) to filter the templates by.


          Multiple tags can be specified by specifying the query param multiple times. Only templates where the tags passed are a subset of the Template tags will be returned.'
      tags:
      - V2 Templates
      security:
      - ClientId: []
        ClientSecret: []
      - OAuthBearer: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateListResponse'
              examples:
                Example1:
                  value:
                    items:
                    - id: 1
                      name: Basic Non Disclosure Agreement
                      contract_type_id: 10
                  summary: Example 1
          description: Template List
      x-tagGroup: Workflow
  /api/v2/public/templates/{template_id}/:
    get:
      operationId: v2_public_templates_retrieve_by_id
      description: 'Returns the template details available to the current workspace, including workspace-specific access data.

        Use this before update calls when you need the current configuration state.'
      summary: Get Template Details
      parameters:
      - in: path
        name: template_id
        schema:
          type: integer
        description: The ID of the template.
        required: true
      tags:
      - V2 Templates
      security:
      - ClientId: []
        ClientSecret: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateResponseV2'
              examples:
                Example1:
                  value:
                    id: 1
                    name: Basic Non Disclosure Agreement
                    tags:
                    - Tag1
                    - Tag2
                    contract_type_id: 10
                  summary: Example 1
          description: Template Details
      x-tagGroup: Workflow
    patch:
      operationId: v2_public_templates_partial_update
      description: 'Updates the workspace-specific data stored against a template.

        Use this to change editable template attributes without modifying the underlying contract type.'
      summary: Update Template Data
      parameters:
      - in: path
        name: template_id
        schema:
          type: integer
        description: The ID of the template.
        required: true
      tags:
      - V2 Templates
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedTemplateUpdateRequest'
            examples:
              Example1:
                value:
                  tags:
                  - Tag1
                  - Tag2
                summary: Example 1
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedTemplateUpdateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedTemplateUpdateRequest'
      security:
      - ClientId: []
        ClientSecret: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateResponseV2'
              examples:
                Example1:
                  value:
                    id: 1
                    name: Basic Non Disclosure Agreement
                    tags:
                    - Tag1
                    - Tag2
                    contract_type_id: 10
                  summary: Example 1
          description: Updated Template
      x-tagGroup: Workflow
  /api/v2/public/templates/{template_id}/metadata:
    get:
      operationId: v2_public_templates_metadata_retrieve
      description: 'Gets the list of fields required to create a contract with a given template.


        The list of attributes returned define how a `contract_data` payload is to be

        constructed for the V2 Create Contract request.'
      summary: Get Template Metadata
      parameters:
      - in: path
        name: template_id
        schema:
          type: string
          pattern: ^[0-9]+$
        required: true
      tags:
      - V2 Templates
      security:
      - ClientId: []
        ClientSecret: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateMetaDataResponseV2'
              examples:
                Example1:
                  value: {}
                  summary: Example 1
          description: Template Metadata
      x-tagGroup: Workflow
components:
  schemas:
    PatchedTemplateUpdateRequest:
      title: TemplateUpdateRequest
      type: object
      properties:
        tags:
          title: Tags
          description: The complete set of tags to store on the requested template. Send an empty list to clear existing tags.
          type: array
          items:
            type: string
      examples:
      - tags:
        - Tag1
        - Tag2
    CounterPartyKindEnum:
      enum:
      - Individual
      - Organisation
      - Both
      type: string
    TemplateResponseV2:
      title: TemplateResponseV2
      description: A template along with the updated data as updated by the public API.
      type: object
      properties:
        id:
          title: Id
          description: The ID of the template
          type: integer
        name:
          title: Name
          description: The name of the template
          type: string
        contract_type_id:
          title: Contract Type Id
          description: The id of the contract type
          type: integer
        tags:
          title: Tags
          description: The tags to be updated for the requested template id.
          type: array
          items:
            type: string
      required:
      - id
      - name
      - contract_type_id
      examples:
      - id: 1
        name: Basic Non Disclosure Agreement
        tags:
        - Tag1
        - Tag2
        contract_type_id: 10
    TemplateMetaDataResponseV2:
      title: TemplateMetaDataResponseV2
      type: object
      properties:
        attributes:
          title: Attributes
          description: The list of attributes for this contract template.
          type: array
          items:
            title: CfPublicDescriptor
            description: 'A descriptor to describe the CommonForm blank.

              Used for the public API.'
            type: object
            properties:
              display_label:
                title: Display Label
                description: The label to be displayed to users
                type: string
              variable:
                title: Variable
                description: The name of the variable. In case this is a nested variable, The name will include a `.`
                type: string
              type:
                title: CfPublicDescriptorType
                description: The type of field. The type changes the values to be sent. See <a href='#operation/v2_public_contracts_create'>V2 Create Contract</a>
                enum:
                - string
                - boolean
                - int
                - float
                - array of strings
                - array of options
                - enum
                - date
                - repeating
                - array of files
                type: string
              help_text:
                title: Help Text
                description: Help text which can be shown to the user if needed.
                type: string
              parent_variable:
                title: Parent Variable
                description: For nested variables, this is the name of the variable which should be an object with the values set in it
                type: string
              options:
                title: Options
                description: For `enum` and `arrary of options` types, this is the list of options to be shown to the user.
                type: array
                items:
                  title: CfOption
                  type: object
                  properties:
                    label:
                      title: Label
                      description: The label of this Option as shown to the user.
                      type: string
                    value:
                      title: Value
                      description: The value of this Option as sent to the API.
                  required:
                  - label
              required:
                title: Required
                description: Describes if this variable is required. In case its nested (if `parent_variable` is set) the entire object can be unset if `parent_required` is unset or false
                default: true
                type: boolean
              parent_required:
                title: Parent Required
                description: Only set if `parent_variable` is set. If set to true then the parent variable is required. Thus the nested object for the parent should be set. The required-ness of the nested variables is based on the `required` field
                type: boolean
              default_value:
                title: Default Value
                description: The default value for this field, if any
              parent_type:
                title: Parent Type
                description: The SpotDraft type of the parent variable this field is a child for, if any.
                type: string
              child_variable:
                title: Child Variable
                description: The name of the child field. This is only set if this variable is a child field.
                type: string
              question:
                title: Question
                description: Question for this attribute.
                type: string
              attributes:
                title: Attributes
                description: Describes the shape of the object for repeating types. Only set when `type` is `repeating`.
                type: array
                items:
                  title: CfPublicDescriptorBase
                  type: object
                  properties:
                    display_label:
                      title: Display Label
                      description: The label to be displayed to users
                      type: string
                    variable:
                      title: Variable
                      description: The name of the variable. In case this is a nested variable, The name will include a `.`
                      type: string
                    type:
                      title: CfPublicDescriptorType
                      description: The type of field. The type changes the values to be sent. See <a href='#operation/v2_public_contracts_create'>V2 Create Contract</a>
                      enum:
                      - string
                      - boolean
                      - int
                      - float
                      - array of strings
                      - array of options
                      - enum
                      - date
                      - repeating
                      - array of files
                      type: string
                    help_text:
                      title: Help Text
                      description: Help text which can be shown to the user if needed.
                      type: string
                    parent_variable:
                      title: Parent Variable
                      description: For nested variables, this is the name of the variable which should be an object with the values set in it
                      type: string
                    options:
                      title: Options
                      description: For `enum` and `arrary of options` types, this is the list of options to be shown to the user.
                      type: array
                      items:
                        title: CfOption
                        type: object
                        properties:
                          label:
                            title: Label
                            description: The label of this Option as shown to the user.
                            type: string
                          value:
                            title: Value
                            description: The value of this Option as sent to the API.
                        required:
                        - label
                    required:
                      title: Required
                      description: Describes if this variable is required. In case its nested (if `parent_variable` is set) the entire object can be unset if `parent_required` is unset or false
                      default: true
                      type: boolean
                    parent_required:
                      title: Parent Required
                      description: Only set if `parent_variable` is set. If set to true then the parent variable is required. Thus the nested object for the parent should be set. The required-ness of the nested variables is based on the `required` field
                      type: boolean
                    default_value:
                      title: Default Value
                      description: The default value for this field, if any
                    parent_type:
                      title: Parent Type
                      description: The SpotDraft type of the parent variable this field is a child for, if any.
                      type: string
                    child_variable:
                      title: Child Variable
                      description: The name of the child field. This is only set if this variable is a child field.
                      type: string
                    question:
                      title: Question
                      description: Question for this attribute.
                      type: string
                  required:
                  - display_label
                  - variable
                  - type
            required:
            - display_label
            - variable
            - type
        counter_party_kind:
          allOf:
          - $ref: '#/components/schemas/CounterPartyKindEnum'
          title: PartyOrganizationKind
          description: The kind of Counter Party for this contract template. Signfies if the Counter Party is an individual or an organization. Data sent to create an instance of this template changes based on the kind returned here.
      required:
      - attributes
      - counter_party_kind
      examples:
      - {}
    TemplateListResponse:
      title: TemplateListResponse
      description: A list of template as returned by the public API
      type: object
      properties:
        items:
          title: Items
          description: The list of templates supported for this Client.
          type: array
          items:
            title: TemplateResponse
            description: A template as returned by the public API
            type: object
            properties:
              id:
                title: Id
                description: The ID of the template
                type: integer
              name:
                title: Name
                description: The name of the template
                type: string
              contract_type_id:
                title: Contract Type Id
                description: The id of the contract type that the template is mapped to
                type: integer
            required:
            - id
            - name
            - contract_type_id
            examples:
            - id: 1
              name: Basic Non Disclosure Agreement
              contract_type_id: 10
      required:
      - items
      examples:
      - items:
        - id: 1
          name: Basic Non Disclosure Agreement
          contract_type_id: 10
  securitySchemes:
    ClickwrapId:
      type: apiKey
      in: header
      name: clickwrap-id
      description: Public clickwrap identifier header.
    ClientId:
      type: apiKey
      name: client-id
      in: header
    ClientSecret:
      type: apiKey
      name: client-secret
      in: header
    NativeIntegrationBasic:
      type: http
      scheme: basic
      description: HTTP Basic auth for supported native integrations. Send base64(client_id:client_secret) in the Authorization header.
    OAuthBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 bearer token for workspace user access.
    Origin:
      type: apiKey
      in: header
      name: Origin
      description: Browser origin header used for clickwrap domain validation.
x-logo:
  url: https://cdn.spotdraft.com/assets/logo-black-new.png
  backgroundColor: transparent
  altText: SpotDraft Logo
  href: https://spotdraft.com
x-tagGroups:
- name: Contracts
  tags:
  - V2.1 Contract APIs
  - V2 Contract APIs
  - V1 Contract APIs
  - V2.1 Contract Approvals
  - V2 Contract Approvals
  - V2.1 Contract Activity
  - V2 Contract Activity
  - V2.1 Contract Invitations
  - V2 Contract Invitations
  - V2.1 Contract Metadata Values
  - V2 Contract Metadata Values
  - V2.1 Contract External Metadata
  - V2.1 Contract Notes
  - V2 Contract Notes
  - V2.1 Contract Obligations
  - V2.1 Contract Facets
  - V2.1 Contract Versions
  - V2 Contract Versions
  - V2.1 Recipients
  - V2 Recipients
- name: Clickwrap
  tags:
  - V2.1 Clickwrap
- name: Legal Intake
  tags:
  - V1 Legal Intake
- name: Workflow
  tags:
  - V2.1 Contract Metadata Definitions
  - V2 Contract Metadata Definitions
  - V2.1 Contract Types
  - V2 Contract Types
  - V2.1 Templates
  - V2 Templates
  - V1 Templates
- name: Platform
  tags:
  - V2.1 Users
  - V2 Users
  - V1 Users
  - V2.1 Counterparties
  - V2 Counterparties
  - V2.1 Organizations
  - V2 Organizations
  - V1 Obligation Types
  - V1 Native Integrations
  - V2.1 Workspace Files
  - V2.1 Tasks and Reminders
  - V2 Tasks and Reminders
  - V2.1 Webhooks
  - V1 Webhooks
  - V1 Emails
  - V2.1 Analytics Query
  - V2.1 Workspaces
  - V2.1 Workspace Tags
- name: Sidebar
  tags:
  - V2.1 Sidebar