ARCNM Subcontractors API

The subcontractors API from ARCNM — 3 operation(s) for subcontractors.

Operations 6

GET /api/v1/subcontractors List Subcontractors #
POST /api/v1/subcontractors Create Subcontractor #
POST /api/v1/subcontractors/presets/{preset_key}/suppression Suppress Subcontractor Preset #
DELETE /api/v1/subcontractors/presets/{preset_key}/suppression Unsuppress Subcontractor Preset #
PATCH /api/v1/subcontractors/{sub_id} Update Subcontractor #
DELETE /api/v1/subcontractors/{sub_id} Delete Subcontractor #

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/arcnm-io:arcnm-io-subcontractors-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

arcnm-io-subcontractors-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Arcnm Io Subcontractors API
  version: 0.1.0
  description: 'Operations tagged subcontractors across 2 of this provider''s published API definitions: openapi-public.json, arcnm-io-openapi.yml. Each path carries the servers of the definition it was published in.'
security:
- ApiKeyAuth: []
- OAuth2PasswordBearer: []
tags:
- name: subcontractors
paths:
  /api/v1/subcontractors:
    get:
      tags:
      - subcontractors
      summary: List Subcontractors
      description: 'Your organization''s subcontractors, name order — the platform

        presets (hardening, plating, galvanizing, anodizing, painting,

        marking; ``preset_key`` set) and your own.'
      operationId: subcontractors-list_subcontractors
      security:
      - ApiKeyAuth: []
      - OAuth2PasswordBearer: []
      parameters:
      - name: X-API-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: X-Org-Slug
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Org-Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SubcontractorPublic'
                title: Response Subcontractors-List Subcontractors
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - subcontractors
      summary: Create Subcontractor
      description: 'Add a subcontractor to your organization.


        ``lead_time_days`` is stored for planning surfaces; prices are

        unaffected. Capabilities say which external operations this shop

        offers — a costing environment that prices an operation none of its

        member subcontractors offer carries a ``subcontract_unsourced`` note

        on the result (never a veto).'
      operationId: subcontractors-create_subcontractor
      security:
      - ApiKeyAuth: []
      - OAuth2PasswordBearer: []
      parameters:
      - name: X-API-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: X-Org-Slug
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Org-Slug
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubcontractorCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubcontractorPublic'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/subcontractors/presets/{preset_key}/suppression:
    post:
      tags:
      - subcontractors
      summary: Suppress Subcontractor Preset
      description: 'Hide a platform subcontractor preset ("I don''t buy this in"): it

        leaves the default environment (SCD2) and stays out of it until shown

        again or the platform set is restored. Your own subcontractors are

        deleted, not hidden.'
      operationId: subcontractors-suppress_subcontractor_preset
      security:
      - ApiKeyAuth: []
      - OAuth2PasswordBearer: []
      parameters:
      - name: preset_key
        in: path
        required: true
        schema:
          type: string
          title: Preset Key
      - name: X-API-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: X-Org-Slug
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Org-Slug
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresetSuppressionRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__routes__subcontractors__MessageResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - subcontractors
      summary: Unsuppress Subcontractor Preset
      description: 'Show a hidden preset again — it rejoins the default environment

        (a new membership row; the closed one keeps its window).'
      operationId: subcontractors-unsuppress_subcontractor_preset
      security:
      - ApiKeyAuth: []
      - OAuth2PasswordBearer: []
      parameters:
      - name: preset_key
        in: path
        required: true
        schema:
          type: string
          title: Preset Key
      - name: X-API-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: X-Org-Slug
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Org-Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__routes__subcontractors__MessageResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/subcontractors/{sub_id}:
    patch:
      tags:
      - subcontractors
      summary: Update Subcontractor
      description: Edit a subcontractor's identity, lead time, or capabilities.
      operationId: subcontractors-update_subcontractor
      security:
      - ApiKeyAuth: []
      - OAuth2PasswordBearer: []
      parameters:
      - name: sub_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Sub Id
      - name: X-API-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: X-Org-Slug
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Org-Slug
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubcontractorUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubcontractorPublic'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - subcontractors
      summary: Delete Subcontractor
      description: 'Remove a subcontractor. Its environment memberships go with it;

        rate rows that named it keep their price and lose only the name

        (provenance FK is SET NULL — a price you entered stays a price).'
      operationId: subcontractors-delete_subcontractor
      security:
      - ApiKeyAuth: []
      - OAuth2PasswordBearer: []
      parameters:
      - name: sub_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Sub Id
      - name: X-API-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: X-Org-Slug
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Org-Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__routes__subcontractors__MessageResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    SubcontractorUpdate:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Name
        region:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Region
        lead_time_days:
          anyOf:
          - type: integer
            maximum: 365.0
            minimum: 0.0
          - type: 'null'
          title: Lead Time Days
        notes:
          anyOf:
          - type: string
            maxLength: 2000
          - type: 'null'
          title: Notes
        is_active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Active
        capabilities:
          anyOf:
          - items:
              $ref: '#/components/schemas/SubcontractorCapability'
            type: array
          - type: 'null'
          title: Capabilities
      additionalProperties: false
      type: object
      title: SubcontractorUpdate
    SubcontractorCapability:
      properties:
        operation_kind:
          type: string
          maxLength: 64
          title: Operation Kind
        pricing_unit:
          anyOf:
          - type: string
            maxLength: 16
          - type: 'null'
          title: Pricing Unit
        lot_minimum_eur:
          anyOf:
          - type: number
            maximum: 1000000.0
            minimum: 0.0
          - type: 'null'
          title: Lot Minimum Eur
          description: 'Minimum order value this shop states for the operation: an order is invoiced at the larger of its work and this.'
        order_fee_eur:
          anyOf:
          - type: number
            maximum: 1000000.0
            minimum: 0.0
          - type: 'null'
          title: Order Fee Eur
          description: Fee this shop charges on every order of the operation, on top of the work or the minimum.
      additionalProperties: false
      type: object
      required:
      - operation_kind
      title: SubcontractorCapability
    SubcontractorCreate:
      properties:
        name:
          type: string
          maxLength: 255
          title: Name
          description: The shop you order from.
        region:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Region
          description: Region / city, free text.
        lead_time_days:
          anyOf:
          - type: integer
            maximum: 365.0
            minimum: 0.0
          - type: 'null'
          title: Lead Time Days
          description: Typical door-to-door lead time. Stored for planning surfaces; prices are unaffected.
        notes:
          anyOf:
          - type: string
            maxLength: 2000
          - type: 'null'
          title: Notes
        is_active:
          type: boolean
          title: Is Active
          description: Inactive subcontractors keep their history but stop counting as a source.
          default: true
        capabilities:
          items:
            $ref: '#/components/schemas/SubcontractorCapability'
          type: array
          title: Capabilities
      additionalProperties: false
      type: object
      required:
      - name
      title: SubcontractorCreate
    SubcontractorPublic:
      properties:
        name:
          type: string
          maxLength: 255
          title: Name
          description: The shop you order from.
        region:
          anyOf:
          - type: string
            maxLength: 64
          - type: 'null'
          title: Region
          description: Region / city, free text.
        lead_time_days:
          anyOf:
          - type: integer
            maximum: 365.0
            minimum: 0.0
          - type: 'null'
          title: Lead Time Days
          description: Typical door-to-door lead time. Stored for planning surfaces; prices are unaffected.
        notes:
          anyOf:
          - type: string
            maxLength: 2000
          - type: 'null'
          title: Notes
        is_active:
          type: boolean
          title: Is Active
          description: Inactive subcontractors keep their history but stop counting as a source.
          default: true
        id:
          type: string
          format: uuid
          title: Id
        capabilities:
          items:
            $ref: '#/components/schemas/SubcontractorCapability'
          type: array
          title: Capabilities
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        preset_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Preset Key
        hidden:
          type: boolean
          title: Hidden
          default: false
      type: object
      required:
      - name
      - id
      - capabilities
      - created_at
      - updated_at
      title: SubcontractorPublic
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    app__routes__subcontractors__MessageResponse:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable result of the operation.
      type: object
      required:
      - message
      title: MessageResponse
      description: 'Typed body for the delete acknowledgement.


        Public-surface rule: every 2xx declares a model, so the spec never

        ships a bare `additionalProperties` map.'
    PresetSuppressionRequest:
      properties:
        reason:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Reason
      additionalProperties: false
      type: object
      title: PresetSuppressionRequest
  securitySchemes:
    OAuth2PasswordBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /api/v1/sessions/login
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'Server-to-server API key in the ``X-API-Key`` header, e.g. ``ak_live_…``. See the Authentication guide. Do not send it as ``Authorization: Bearer`` — that header is reserved for session / MCP JWTs.'
x-refined-from:
- openapi-public.json
- arcnm-io-openapi.yml