{
  "service": "streamtime",
  "displayName": "Streamtime",
  "categories": [
    "Productivity",
    "Finance"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Bearer Token",
      "placeholder": "streamtime_bearer_token",
      "description": "Streamtime bearer token used with the Authorization header. Request it from the Streamtime App in Company Settings by following the official public API guide: https://help.streamtime.net/en/articles/12854233-using-the-streamtime-public-api."
    }
  ],
  "homepageUrl": "https://www.streamtime.net",
  "actions": [
    {
      "id": "streamtime.create_company",
      "service": "streamtime",
      "name": "create_company",
      "description": "Create a company in Streamtime for the authenticated organisation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The company name."
          },
          "taxNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The tax, GST, or VAT number for the company."
          },
          "phone1": {
            "type": "string",
            "minLength": 1,
            "description": "The primary phone number for the company."
          },
          "phone2": {
            "type": "string",
            "minLength": 1,
            "description": "The secondary phone number for the company."
          },
          "websiteAddress": {
            "type": "string",
            "minLength": 1,
            "description": "The public website URL for the company."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "The input payload for creating a Streamtime company."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime company object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime company response wrapper."
      }
    },
    {
      "id": "streamtime.create_company_contact",
      "service": "streamtime",
      "name": "create_company_contact",
      "description": "Create a contact under a Streamtime company.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime company ID."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "The contact first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "The contact last name."
          },
          "email": {
            "type": "string",
            "description": "The contact email address.",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The contact phone number."
          },
          "position": {
            "type": "string",
            "minLength": 1,
            "description": "The contact job title or position."
          }
        },
        "additionalProperties": false,
        "required": [
          "companyId",
          "firstName"
        ],
        "description": "The input payload for creating a contact under a Streamtime company."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime contact object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime contact response wrapper."
      }
    },
    {
      "id": "streamtime.create_job",
      "service": "streamtime",
      "name": "create_job",
      "description": "Create a Streamtime job linked to a company, rate card, and optional contact.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime company ID that owns the job."
          },
          "jobLeadUserId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime user ID to assign as the job lead."
          },
          "rateCardId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime rate card ID to apply to the job."
          },
          "branchId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime branch ID for the job."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The job name."
          },
          "number": {
            "type": "string",
            "minLength": 1,
            "description": "The job number."
          },
          "contactId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime contact ID the job is being done for."
          },
          "purchaseOrderNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The client purchase order number."
          }
        },
        "additionalProperties": false,
        "required": [
          "companyId",
          "rateCardId",
          "name"
        ],
        "description": "The input payload for creating a Streamtime job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime job object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime job response wrapper."
      }
    },
    {
      "id": "streamtime.get_company",
      "service": "streamtime",
      "name": "get_company",
      "description": "Get a Streamtime company by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime company ID."
          }
        },
        "additionalProperties": false,
        "description": "The company identifier used for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime company object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime company response wrapper."
      }
    },
    {
      "id": "streamtime.get_contact",
      "service": "streamtime",
      "name": "get_contact",
      "description": "Get a Streamtime contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime contact ID."
          }
        },
        "additionalProperties": false,
        "description": "The contact identifier used for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime contact object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime contact response wrapper."
      }
    },
    {
      "id": "streamtime.get_job",
      "service": "streamtime",
      "name": "get_job",
      "description": "Get a Streamtime job by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime job ID."
          }
        },
        "additionalProperties": false,
        "description": "The job identifier used for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime job object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime job response wrapper."
      }
    },
    {
      "id": "streamtime.get_organisation",
      "service": "streamtime",
      "name": "get_organisation",
      "description": "Get the authenticated Streamtime organisation details.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No additional input is required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organisation": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Streamtime organisation object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime organisation response wrapper."
      }
    },
    {
      "id": "streamtime.list_branches",
      "service": "streamtime",
      "name": "list_branches",
      "description": "List the Streamtime branches available to the authenticated organisation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No additional input is required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "branches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Streamtime branch object returned by the API."
            },
            "description": "The Streamtime branches returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime branch list response wrapper."
      }
    },
    {
      "id": "streamtime.list_company_contacts",
      "service": "streamtime",
      "name": "list_company_contacts",
      "description": "List the contacts that belong to a Streamtime company.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime company ID."
          }
        },
        "additionalProperties": false,
        "description": "The company identifier used for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Streamtime contact object returned by the API."
            },
            "description": "The Streamtime contacts returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime contact list response wrapper."
      }
    },
    {
      "id": "streamtime.list_rate_cards",
      "service": "streamtime",
      "name": "list_rate_cards",
      "description": "List the Streamtime rate cards available to the authenticated organisation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No additional input is required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rateCards": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Streamtime rate card object returned by the API."
            },
            "description": "The Streamtime rate cards returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime rate card list response wrapper."
      }
    },
    {
      "id": "streamtime.list_users",
      "service": "streamtime",
      "name": "list_users",
      "description": "List the Streamtime users available to the authenticated organisation.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No additional input is required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Streamtime user object returned by the API."
            },
            "description": "The Streamtime users returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime user list response wrapper."
      }
    },
    {
      "id": "streamtime.update_company",
      "service": "streamtime",
      "name": "update_company",
      "description": "Update a Streamtime company by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime company ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The company name."
          },
          "taxNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The tax, GST, or VAT number for the company."
          },
          "phone1": {
            "type": "string",
            "minLength": 1,
            "description": "The primary phone number for the company."
          },
          "phone2": {
            "type": "string",
            "minLength": 1,
            "description": "The secondary phone number for the company."
          },
          "websiteAddress": {
            "type": "string",
            "minLength": 1,
            "description": "The public website URL for the company."
          }
        },
        "additionalProperties": false,
        "required": [
          "companyId"
        ],
        "description": "The input payload for updating a Streamtime company."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime company object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime company response wrapper."
      }
    },
    {
      "id": "streamtime.update_contact",
      "service": "streamtime",
      "name": "update_contact",
      "description": "Update a Streamtime contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime contact ID."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "The contact first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "The contact last name."
          },
          "email": {
            "type": "string",
            "description": "The contact email address.",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The contact phone number."
          },
          "position": {
            "type": "string",
            "minLength": 1,
            "description": "The contact job title or position."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId"
        ],
        "description": "The input payload for updating a Streamtime contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime contact object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime contact response wrapper."
      }
    },
    {
      "id": "streamtime.update_job",
      "service": "streamtime",
      "name": "update_job",
      "description": "Update a Streamtime job by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime job ID."
          },
          "companyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime company ID that owns the job."
          },
          "jobLeadUserId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime user ID to assign as the job lead."
          },
          "rateCardId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime rate card ID to apply to the job."
          },
          "branchId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime branch ID for the job."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The job name."
          },
          "number": {
            "type": "string",
            "minLength": 1,
            "description": "The job number."
          },
          "contactId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Streamtime contact ID the job is being done for."
          },
          "purchaseOrderNumber": {
            "type": "string",
            "minLength": 1,
            "description": "The client purchase order number."
          }
        },
        "additionalProperties": false,
        "required": [
          "jobId"
        ],
        "description": "The input payload for updating a Streamtime job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "One Streamtime job object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The Streamtime job response wrapper."
      }
    }
  ]
}
