Properties
| Name | Type | Description |
|---|---|---|
| id | stringnull | The contract's SaaS Manager ID. Supply to update an existing contract. |
| externalId | stringnull | Your own external ID for the contract. Supply to match an existing contract on update. |
| ref | stringnull | A reference for the contract, e.g. a PO number |
| type | object | The contract type |
| vendorName | stringnull | The vendor name |
| startDate | stringnull | (ISO format) The contract's start date |
| agreementDate | stringnull | (ISO format) The agreement date. Defaults to now on creation. |
| renewalDate | stringnull | (ISO format) The renewal date |
| isRolling | booleannull | Whether the contract is a rolling contract |
| terminationNoticeDays | integernull | The number of days' notice required to terminate the contract |
| isAutomaticRenewal | booleannull | Whether the contract renews automatically |
| notes | stringnull | Notes about the contract |
| paymentMethod | object | The payment method |
| businessOwnerEmail | stringnull | The email address of the contract's business owner |
| lineItems | arraynull | The contract's line items |
| documents | arraynull | Documents linked to the contract |
| createdBy | object | The user that created the contract record |
| createdDtm | stringnull | The timestamp for when the contract record was created |
| lastModifiedBy | object | The user that last modified the contract record |
| lastModifiedDtm | stringnull | The timestamp for when the contract record was last modified |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/1password/json-schema/1password-contract-schema.json",
"title": "Contract",
"description": "A contract",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/1password-contracts-api-openapi.yml#/components/schemas/Contract",
"type": "object",
"properties": {
"id": {
"type": [
"string",
"null"
],
"description": "The contract's SaaS Manager ID. Supply to update an existing contract."
},
"externalId": {
"type": [
"string",
"null"
],
"description": "Your own external ID for the contract. Supply to match an existing contract on update."
},
"ref": {
"type": [
"string",
"null"
],
"description": "A reference for the contract, e.g. a PO number"
},
"type": {
"allOf": [
{
"$ref": "#/$defs/ContractType"
}
],
"description": "The contract type"
},
"vendorName": {
"type": [
"string",
"null"
],
"description": "The vendor name"
},
"startDate": {
"type": [
"string",
"null"
],
"description": "(ISO format) The contract's start date",
"format": "date-time"
},
"agreementDate": {
"type": [
"string",
"null"
],
"description": "(ISO format) The agreement date. Defaults to now on creation.",
"format": "date-time"
},
"renewalDate": {
"type": [
"string",
"null"
],
"description": "(ISO format) The renewal date",
"format": "date-time"
},
"isRolling": {
"type": [
"boolean",
"null"
],
"description": "Whether the contract is a rolling contract"
},
"terminationNoticeDays": {
"type": [
"integer",
"null"
],
"description": "The number of days' notice required to terminate the contract",
"format": "int32"
},
"isAutomaticRenewal": {
"type": [
"boolean",
"null"
],
"description": "Whether the contract renews automatically"
},
"notes": {
"type": [
"string",
"null"
],
"description": "Notes about the contract"
},
"paymentMethod": {
"allOf": [
{
"$ref": "#/$defs/AppLicensePaymentMethod"
}
],
"description": "The payment method"
},
"businessOwnerEmail": {
"type": [
"string",
"null"
],
"description": "The email address of the contract's business owner"
},
"lineItems": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ContractLineItem"
},
"description": "The contract's line items"
},
"documents": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ContractDocument"
},
"description": "Documents linked to the contract"
},
"createdBy": {
"allOf": [
{
"$ref": "#/$defs/UserInfo"
}
],
"description": "The user that created the contract record",
"readOnly": true
},
"createdDtm": {
"type": [
"string",
"null"
],
"description": "The timestamp for when the contract record was created",
"format": "date-time",
"readOnly": true
},
"lastModifiedBy": {
"allOf": [
{
"$ref": "#/$defs/UserInfo"
}
],
"description": "The user that last modified the contract record",
"readOnly": true
},
"lastModifiedDtm": {
"type": [
"string",
"null"
],
"description": "The timestamp for when the contract record was last modified",
"format": "date-time",
"readOnly": true
}
},
"additionalProperties": false,
"$defs": {
"AppLicensePaymentMethod": {
"enum": [
"CreditCard",
"Invoice"
],
"type": "string"
},
"ContractDocument": {
"type": "object",
"properties": {
"linkUrl": {
"type": [
"string",
"null"
],
"description": "A URL linking to the document"
},
"description": {
"type": [
"string",
"null"
],
"description": "A description of the document"
}
},
"additionalProperties": false,
"description": "A document linked to a contract"
},
"ContractLineItem": {
"type": "object",
"properties": {
"externalId": {
"type": [
"string",
"null"
],
"description": "Your own external ID for the line item. Either all line items have one, or none do."
},
"description": {
"type": [
"string",
"null"
],
"description": "A description of the line item"
},
"notes": {
"type": [
"string",
"null"
],
"description": "Notes about the line item"
},
"unitCount": {
"type": [
"integer",
"null"
],
"description": "The number of units",
"format": "int32"
},
"amount": {
"type": [
"number",
"null"
],
"description": "The amount, in the currency given by currency",
"format": "double"
},
"currency": {
"type": [
"string",
"null"
],
"description": "The ISO currency code for amount. Defaults to your base currency."
},
"baseAmount": {
"type": [
"number",
"null"
],
"description": "The amount converted to your base currency",
"format": "double",
"readOnly": true
},
"baseCurrency": {
"type": [
"string",
"null"
],
"description": "Your base ISO currency code",
"readOnly": true
},
"startDate": {
"type": [
"string",
"null"
],
"description": "(ISO format) The line item's start date",
"format": "date-time"
},
"endDate": {
"type": [
"string",
"null"
],
"description": "(ISO format) The line item's end date",
"format": "date-time"
}
},
"additionalProperties": false,
"description": "A line item on a contract"
},
"ContractType": {
"enum": [
"OrderForm",
"MSA",
"GenericContract",
"PurchaseOrder",
"Subscription"
],
"type": "string"
},
"UserInfo": {
"type": "object",
"properties": {
"userId": {
"type": [
"string",
"null"
]
},
"name": {
"type": [
"string",
"null"
]
},
"email": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
}
}
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/1password-contract"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.