openapi: 3.2.0 info: description: "Outreach Public API is documented here, at the Development Portal, expand the link [Outreach REST API Reference](https://developers.outreach.io/api/reference/overview/) in the left navigation bar to see human-readable description of endpoints and data types.\n\nHowever, if you would like to get machine-readable schema definition there are two other options available:\n\n* [https://api.outreach.io/api/v2/schema.json](https://api.outreach.io/api/v2/schema.json) contains the API definition in the [json-schema format](https://json-schema.org/) and if you provide `Authorization` header with valid token (same as actual API call) all the custom objects defined for the organization will be included as well.\n\n* [https://api.outreach.io/api/v2/schema/openapi.json](https://api.outreach.io/api/v2/schema/openapi.json) contains the API definition in the [OpenAPI / Swagger format](https://swagger.io/specification/). Unfortunately custom objects are not included in this file.\n\nAdditionally to these standard definitions Outreach provides detailed list of validations applied to custom fields. Custom objects will be included later, the work is in progress.\n\n* [https://api.outreach.io/api/v2/types](https://api.outreach.io/api/v2/types) endpoint returns a list of all `customXXX` fields on standard objects with their type, label, options or other constraints defined by the administrator. This endpoint requires valid token in the `Authorization` header. The format of the definitions is described below.\n\n### Custom field types\n\n```json\n{\n \"data\": [\n {\n \"type\": \"\",\n \"meta\": {\n \"validations\": {\n \"\": {\n \"type\": \"\",\n \"required\": true / false,\n \"label\": \"...\",\n \"definition\": null / [\"...\", ...] / \"...\"\n },\n ...\n }\n }\n }\n },\n ...\n ]\n}\n```\n\n#### Objects with custom fields\n\n* Account\n* Opportunity\n* OpportunityLineItem\n* OpportunityProspectRole\n* Product\n* Prospect\n* Purchase\n\n#### Validation types\n\n* `boolean` - true or false\n* `currency` - monetary value, `definition` contains an abbreviation of the currency like `\"USD\"` or `\"EUR\"`\n* `date` - a date stored in ISO8601 format: YYYY-MM-DD.\n* `date_time` a date and time stored as YYYY-MM-DDThh:mm:ss.\n* `inclusion` - a pick list with predefined set of options available in `definition` attribute as a list of strings\n* multi_inclusion - a pick list with several options selectable at once with predefined set of options available in `definition` attribute as a list of strings\n* `numerical`\n* `percentage`\n* `phone_number`\n* `string`\n* `url`\n" title: Outreach REST API Reference Product API version: '' servers: - url: https://api.outreach.io/api/v2 security: - bearerAuth: [] tags: - description: ' ## Product Relationships ## Product Resource Metadata | **METADATA NAME**| **DESCRIPTION** | **QUERY PARAM** | | --- | --- | --- | | canWrite | A boolean value indicating whether the current API user has write access to this resource. | provideAuthorizationMeta | | canDelete | A boolean value indicating whether the current API user has delete access to this resource. | provideAuthorizationMeta | | dataConnections | The set of connections a given Product has to external sources. | provideDataConnections | ## ⌵ Product Actions ' name: Product x-internal: false paths: /products: get: responses: '200': content: application/vnd.api+json: schema: properties: data: items: $ref: '#/components/schemas/productResponse' type: array description: OK '422': content: application/vnd.api+json: schema: properties: errors: items: properties: detail: type: string id: type: string title: type: string type: object type: array description: JSON error message summary: Get a Collection of Products tags: - Product x-internal: false post: requestBody: content: application/vnd.api+json: schema: properties: data: properties: attributes: $ref: '#/components/schemas/product' relationships: $ref: '#/components/schemas/productRelationships' type: type: string type: object required: true responses: '201': content: application/vnd.api+json: schema: properties: data: $ref: '#/components/schemas/productResponse' description: Created '422': content: application/vnd.api+json: schema: properties: errors: items: properties: detail: type: string id: type: string title: type: string type: object type: array description: JSON error message summary: Create a New Product tags: - Product x-internal: false /products/{id}: delete: parameters: - in: path name: id required: true schema: type: integer responses: '204': content: application/vnd.api+json: {} description: Deleted '422': content: application/vnd.api+json: schema: properties: errors: items: properties: detail: type: string id: type: string title: type: string type: object type: array description: JSON error message summary: Delete an Existing Product by ID tags: - Product x-internal: false get: parameters: - in: path name: id required: true schema: type: integer responses: '200': content: application/vnd.api+json: schema: properties: data: $ref: '#/components/schemas/productResponse' description: OK '404': content: application/vnd.api+json: schema: properties: errors: items: properties: detail: type: string id: type: string title: type: string type: object type: array description: Not Found summary: Get a Product by ID tags: - Product x-internal: false patch: parameters: - in: path name: id required: true schema: type: integer requestBody: content: application/vnd.api+json: schema: properties: data: properties: attributes: $ref: '#/components/schemas/product' id: type: integer relationships: $ref: '#/components/schemas/productRelationships' type: type: string required: - type - id type: object required: true responses: '200': content: application/vnd.api+json: schema: properties: data: properties: attributes: $ref: '#/components/schemas/product' id: type: integer relationships: $ref: '#/components/schemas/productRelationships' type: type: string required: - type - id type: object description: OK '422': content: application/vnd.api+json: schema: properties: errors: items: properties: detail: type: string id: type: string title: type: string type: object type: array description: JSON error message summary: Update a Product tags: - Product x-internal: false components: schemas: product: description: 'Contains all the list of products and maintained by the admin. ' properties: classification: description: ' The Type of Product. Options Include: Own, Competitor, Complimentary.' maxLength: 255 type: - string - 'null' x-internal: false code: description: ' Unique code of a product.' maxLength: 255 type: - string - 'null' x-internal: false createdAt: description: ' The date and time the task was created.' format: date-time type: - string - 'null' x-internal: false custom1: description: ' The value of the product''s first custom field.' type: - string - 'null' x-internal: false custom2: description: ' The value of the product''s second custom field.' type: - string - 'null' x-internal: false custom3: description: ' The value of the product''s third custom field.' type: - string - 'null' x-internal: false custom4: description: ' The value of the product''s fourth custom field.' type: - string - 'null' x-internal: false custom5: description: ' The value of the product''s fifth custom field.' type: - string - 'null' x-internal: false custom6: description: ' The value of the product''s sixth custom field.' type: - string - 'null' x-internal: false custom7: description: ' The value of the product''s seventh custom field.' type: - string - 'null' x-internal: false custom8: description: ' The value of the product''s eight custom field.' type: - string - 'null' x-internal: false custom9: description: ' The value of the product''s ninth custom field.' type: - string - 'null' x-internal: false custom10: description: ' The value of the product''s 10th custom field.' type: - string - 'null' x-internal: false custom11: description: ' The value of the product''s 11th custom field.' type: - string - 'null' x-internal: false custom12: description: ' The value of the product''s 12th custom field.' type: - string - 'null' x-internal: false custom13: description: ' The value of the product''s 13th custom field.' type: - string - 'null' x-internal: false custom14: description: ' The value of the product''s 14th custom field.' type: - string - 'null' x-internal: false custom15: description: ' The value of the product''s 15th custom field.' type: - string - 'null' x-internal: false custom16: description: ' The value of the product''s 16th custom field.' type: - string - 'null' x-internal: false custom17: description: ' The value of the product''s 17th custom field.' type: - string - 'null' x-internal: false custom18: description: ' The value of the product''s 18th custom field.' type: - string - 'null' x-internal: false custom19: description: ' The value of the product''s 19th custom field.' type: - string - 'null' x-internal: false custom20: description: ' The value of the product''s 20th custom field.' type: - string - 'null' x-internal: false custom21: description: ' The value of the product''s 21st custom field.' type: - string - 'null' x-internal: false custom22: description: ' The value of the product''s 22nd custom field.' type: - string - 'null' x-internal: false custom23: description: ' The value of the product''s 23rd custom field.' type: - string - 'null' x-internal: false custom24: description: ' The value of the product''s 24th custom field.' type: - string - 'null' x-internal: false custom25: description: ' The value of the product''s 25th custom field.' type: - string - 'null' x-internal: false custom26: description: ' The value of the product''s 26th custom field.' type: - string - 'null' x-internal: false custom27: description: ' The value of the product''s 27th custom field.' type: - string - 'null' x-internal: false custom28: description: ' The value of the product''s 28th custom field.' type: - string - 'null' x-internal: false custom29: description: ' The value of the product''s 29th custom field.' type: - string - 'null' x-internal: false custom30: description: ' The value of the product''s 30th custom field.' type: - string - 'null' x-internal: false custom31: description: ' The value of the product''s 31st custom field.' type: - string - 'null' x-internal: false custom32: description: ' The value of the product''s 32nd custom field.' type: - string - 'null' x-internal: false custom33: description: ' The value of the product''s 33rd custom field.' type: - string - 'null' x-internal: false custom34: description: ' The value of the product''s 34th custom field.' type: - string - 'null' x-internal: false custom35: description: ' The value of the product''s 35th custom field.' type: - string - 'null' x-internal: false custom36: description: ' The value of the product''s 36th custom field.' type: - string - 'null' x-internal: false custom37: description: ' The value of the product''s 37th custom field.' type: - string - 'null' x-internal: false custom38: description: ' The value of the product''s 38th custom field.' type: - string - 'null' x-internal: false custom39: description: ' The value of the product''s 39th custom field.' type: - string - 'null' x-internal: false custom40: description: ' The value of the product''s 40th custom field.' type: - string - 'null' x-internal: false custom41: description: ' The value of the product''s 41st custom field.' type: - string - 'null' x-internal: false custom42: description: ' The value of the product''s 42nd custom field.' type: - string - 'null' x-internal: false custom43: description: ' The value of the product''s 43rd custom field.' type: - string - 'null' x-internal: false custom44: description: ' The value of the product''s 44th custom field.' type: - string - 'null' x-internal: false custom45: description: ' The value of the product''s 45th custom field.' type: - string - 'null' x-internal: false custom46: description: ' The value of the product''s 46th custom field.' type: - string - 'null' x-internal: false custom47: description: ' The value of the product''s 47th custom field.' type: - string - 'null' x-internal: false custom48: description: ' The value of the product''s 48th custom field.' type: - string - 'null' x-internal: false custom49: description: ' The value of the product''s 49th custom field.' type: - string - 'null' x-internal: false custom50: description: ' The value of the product''s 50th custom field.' type: - string - 'null' x-internal: false custom51: description: ' The value of the product''s 51st custom field.' type: - string - 'null' x-internal: false custom52: description: ' The value of the product''s 52nd custom field.' type: - string - 'null' x-internal: false custom53: description: ' The value of the product''s 53rd custom field.' type: - string - 'null' x-internal: false custom54: description: ' The value of the product''s 54th custom field.' type: - string - 'null' x-internal: false custom55: description: ' The value of the product''s 55th custom field.' type: - string - 'null' x-internal: false custom56: description: ' The value of the product''s 56th custom field.' type: - string - 'null' x-internal: false custom57: description: ' The value of the product''s 57th custom field.' type: - string - 'null' x-internal: false custom58: description: ' The value of the product''s 58th custom field.' type: - string - 'null' x-internal: false custom59: description: ' The value of the product''s 59th custom field.' type: - string - 'null' x-internal: false custom60: description: ' The value of the product''s 60th custom field.' type: - string - 'null' x-internal: false custom61: description: ' The value of the product''s 61st custom field.' type: - string - 'null' x-internal: false custom62: description: ' The value of the product''s 62nd custom field.' type: - string - 'null' x-internal: false custom63: description: ' The value of the product''s 63rd custom field.' type: - string - 'null' x-internal: false custom64: description: ' The value of the product''s 64th custom field.' type: - string - 'null' x-internal: false custom65: description: ' The value of the product''s 65th custom field.' type: - string - 'null' x-internal: false custom66: description: ' The value of the product''s 66th custom field.' type: - string - 'null' x-internal: false custom67: description: ' The value of the product''s 67th custom field.' type: - string - 'null' x-internal: false custom68: description: ' The value of the product''s 68th custom field.' type: - string - 'null' x-internal: false custom69: description: ' The value of the product''s 69th custom field.' type: - string - 'null' x-internal: false custom70: description: ' The value of the product''s 70th custom field.' type: - string - 'null' x-internal: false custom71: description: ' The value of the product''s 71st custom field.' type: - string - 'null' x-internal: false custom72: description: ' The value of the product''s 72nd custom field.' type: - string - 'null' x-internal: false custom73: description: ' The value of the product''s 73rd custom field.' type: - string - 'null' x-internal: false custom74: description: ' The value of the product''s 74th custom field.' type: - string - 'null' x-internal: false custom75: description: ' The value of the product''s 75th custom field.' type: - string - 'null' x-internal: false custom76: description: ' The value of the product''s 76th custom field.' type: - string - 'null' x-internal: false custom77: description: ' The value of the product''s 77th custom field.' type: - string - 'null' x-internal: false custom78: description: ' The value of the product''s 78th custom field.' type: - string - 'null' x-internal: false custom79: description: ' The value of the product''s 79th custom field.' type: - string - 'null' x-internal: false custom80: description: ' The value of the product''s 80th custom field.' type: - string - 'null' x-internal: false custom81: description: ' The value of the product''s 81st custom field.' type: - string - 'null' x-internal: false custom82: description: ' The value of the product''s 82nd custom field.' type: - string - 'null' x-internal: false custom83: description: ' The value of the product''s 83rd custom field.' type: - string - 'null' x-internal: false custom84: description: ' The value of the product''s 84th custom field.' type: - string - 'null' x-internal: false custom85: description: ' The value of the product''s 85th custom field.' type: - string - 'null' x-internal: false custom86: description: ' The value of the product''s 86th custom field.' type: - string - 'null' x-internal: false custom87: description: ' The value of the product''s 87th custom field.' type: - string - 'null' x-internal: false custom88: description: ' The value of the product''s 88th custom field.' type: - string - 'null' x-internal: false custom89: description: ' The value of the product''s 89th custom field.' type: - string - 'null' x-internal: false custom90: description: ' The value of the product''s 90th custom field.' type: - string - 'null' x-internal: false custom91: description: ' The value of the product''s 91st custom field.' type: - string - 'null' x-internal: false custom92: description: ' The value of the product''s 92nd custom field.' type: - string - 'null' x-internal: false custom93: description: ' The value of the product''s 93rd custom field.' type: - string - 'null' x-internal: false custom94: description: ' The value of the product''s 94th custom field.' type: - string - 'null' x-internal: false custom95: description: ' The value of the product''s 95th custom field.' type: - string - 'null' x-internal: false custom96: description: ' The value of the product''s 96th custom field.' type: - string - 'null' x-internal: false custom97: description: ' The value of the product''s 97th custom field.' type: - string - 'null' x-internal: false custom98: description: ' The value of the product''s 98th custom field.' type: - string - 'null' x-internal: false custom99: description: ' The value of the product''s 99th custom field.' type: - string - 'null' x-internal: false custom100: description: ' The value of the product''s 100th custom field.' type: - string - 'null' x-internal: false custom101: description: ' The value of the product''s 101st custom field.' type: - string - 'null' x-internal: false custom102: description: ' The value of the product''s 102nd custom field.' type: - string - 'null' x-internal: false custom103: description: ' The value of the product''s 103rd custom field.' type: - string - 'null' x-internal: false custom104: description: ' The value of the product''s 104th custom field.' type: - string - 'null' x-internal: false custom105: description: ' The value of the product''s 105th custom field.' type: - string - 'null' x-internal: false custom106: description: ' The value of the product''s 106th custom field.' type: - string - 'null' x-internal: false custom107: description: ' The value of the product''s 107th custom field.' type: - string - 'null' x-internal: false custom108: description: ' The value of the product''s 108th custom field.' type: - string - 'null' x-internal: false custom109: description: ' The value of the product''s 109th custom field.' type: - string - 'null' x-internal: false custom110: description: ' The value of the product''s 110th custom field.' type: - string - 'null' x-internal: false custom111: description: ' The value of the product''s 111th custom field.' type: - string - 'null' x-internal: false custom112: description: ' The value of the product''s 112th custom field.' type: - string - 'null' x-internal: false custom113: description: ' The value of the product''s 113th custom field.' type: - string - 'null' x-internal: false custom114: description: ' The value of the product''s 114th custom field.' type: - string - 'null' x-internal: false custom115: description: ' The value of the product''s 115th custom field.' type: - string - 'null' x-internal: false custom116: description: ' The value of the product''s 116th custom field.' type: - string - 'null' x-internal: false custom117: description: ' The value of the product''s 117th custom field.' type: - string - 'null' x-internal: false custom118: description: ' The value of the product''s 118th custom field.' type: - string - 'null' x-internal: false custom119: description: ' The value of the product''s 119th custom field.' type: - string - 'null' x-internal: false custom120: description: ' The value of the product''s 120th custom field.' type: - string - 'null' x-internal: false custom121: description: ' The value of the product''s 121st custom field.' type: - string - 'null' x-internal: false custom122: description: ' The value of the product''s 122nd custom field.' type: - string - 'null' x-internal: false custom123: description: ' The value of the product''s 123rd custom field.' type: - string - 'null' x-internal: false custom124: description: ' The value of the product''s 124th custom field.' type: - string - 'null' x-internal: false custom125: description: ' The value of the product''s 125th custom field.' type: - string - 'null' x-internal: false custom126: description: ' The value of the product''s 126th custom field.' type: - string - 'null' x-internal: false custom127: description: ' The value of the product''s 127th custom field.' type: - string - 'null' x-internal: false custom128: description: ' The value of the product''s 128th custom field.' type: - string - 'null' x-internal: false custom129: description: ' The value of the product''s 129th custom field.' type: - string - 'null' x-internal: false custom130: description: ' The value of the product''s 130th custom field.' type: - string - 'null' x-internal: false custom131: description: ' The value of the product''s 131st custom field.' type: - string - 'null' x-internal: false custom132: description: ' The value of the product''s 132nd custom field.' type: - string - 'null' x-internal: false custom133: description: ' The value of the product''s 133rd custom field.' type: - string - 'null' x-internal: false custom134: description: ' The value of the product''s 134th custom field.' type: - string - 'null' x-internal: false custom135: description: ' The value of the product''s 135th custom field.' type: - string - 'null' x-internal: false custom136: description: ' The value of the product''s 136th custom field.' type: - string - 'null' x-internal: false custom137: description: ' The value of the product''s 137th custom field.' type: - string - 'null' x-internal: false custom138: description: ' The value of the product''s 138th custom field.' type: - string - 'null' x-internal: false custom139: description: ' The value of the product''s 139th custom field.' type: - string - 'null' x-internal: false custom140: description: ' The value of the product''s 140th custom field.' type: - string - 'null' x-internal: false custom141: description: ' The value of the product''s 141st custom field.' type: - string - 'null' x-internal: false custom142: description: ' The value of the product''s 142nd custom field.' type: - string - 'null' x-internal: false custom143: description: ' The value of the product''s 143rd custom field.' type: - string - 'null' x-internal: false custom144: description: ' The value of the product''s 144th custom field.' type: - string - 'null' x-internal: false custom145: description: ' The value of the product''s 145th custom field.' type: - string - 'null' x-internal: false custom146: description: ' The value of the product''s 146th custom field.' type: - string - 'null' x-internal: false custom147: description: ' The value of the product''s 147th custom field.' type: - string - 'null' x-internal: false custom148: description: ' The value of the product''s 148th custom field.' type: - string - 'null' x-internal: false custom149: description: ' The value of the product''s 149th custom field.' type: - string - 'null' x-internal: false custom150: description: ' The value of the product''s 150th custom field.' type: - string - 'null' x-internal: false deleted: description: ' A boolean value whether the product has deleted or not.' type: - boolean - 'null' x-internal: false description: description: ' A custom description of the product.' maxLength: 16777215 type: - string - 'null' x-internal: false name: description: ' Name of a product.' maxLength: 255 type: - string - 'null' x-internal: false productFamily: description: ' Name of Product Family associated with the Product.' maxLength: 255 type: - string - 'null' x-internal: false status: description: ' A boolean value whether the product is active or not.' type: - boolean - 'null' x-internal: false unitOfMeasure: description: ' Unit of the product; for example, kilograms, liters, or cases.' maxLength: 255 type: - string - 'null' x-internal: false updatedAt: description: ' The date and time the task was last updated.' format: date-time type: - string - 'null' x-internal: false website: description: ' Website URL of this product.' maxLength: 255 type: - string - 'null' x-internal: false type: object x-internal: false productRelationships: properties: creator: description: ' The creator of this task.' properties: data: properties: id: type: integer type: enum: - user type: string type: - object - 'null' links: properties: related: format: uri type: string type: object owner: description: The owner of this task. properties: data: properties: id: type: integer type: enum: - user type: string type: - object - 'null' links: properties: related: format: uri type: string type: object purchases: description: ' ' properties: links: properties: related: format: uri type: string type: object updater: description: ' ' properties: data: properties: id: type: integer type: enum: - user type: string type: - object - 'null' links: properties: related: format: uri type: string type: object type: object productResponse: properties: attributes: $ref: '#/components/schemas/product' id: type: integer relationships: $ref: '#/components/schemas/productRelationships' type: type: string type: object x-internal: false securitySchemes: bearerAuth: bearerFormat: JWT scheme: bearer type: http s2sAuthToken: bearerFormat: JWT scheme: bearer type: http