"openapi: 3.0.0\ninfo:\n title: Clari API Reference\n version: 5.0.0\n description: |\n # Clari API Reference\n Clari is the heartbeat of your revenue organization and holds your most important revenue data. Clari APIs enable customers to retrieve revenue data out of the Clari platform and push missing revenue-critical data into the platform.\n\n ## Authentication\n\n Clari APIs use tokens to authenticate requests. You can create and manage your tokens in Account Settings under \"API Token\". Please reach out to your CSM if you don't see a token generation tool as you may not have been given access.\n ### Creating an authentication token\n Follow the steps below to generate a token:\n - Go to user avatar\n - Navigate to Settings\n - Navigate to the API Token tab and click \"Generate New API Token\"\n - Enter a Token Name and click \"Generate New Token\". Few things to note about tokens:\n - After generating a token, make sure to keep it in a secure location as you won't be able to access it again. This is your key to accessing Clari data for your organization.\n - If you revoke a token, any active integration that is using that token will break.\n - When deactivating a user, any tokens created by the user will be revoked (and thus break any active integration).\n\n ## Bulk data exports\n\n Clari supports bulk data exports. Bulk exports run asynchronously in a\n three step process. First, the bulk export is requested using a `POST` API call.\n Multiple products support bulk exports. In the documentation below, the `POST` API\n is described in respective product sections. The `POST` API call queues the bulk export job to run it asynchronously, and returns\n a job ID. To monitor the export's status and be notified of its completion, you\n should poll status via the API periodically. When the export completes, the status\n will be set to `DONE` and you can then retrieve the output of the export.\n\n ## Bulk data imports\n\n Clari also supports bulk data imports. Customers or partners can import their Account\n or Opportunity fields in bulk to create a complete picture of revenue in Clari. Bulk imports also run\n asynchronously in a three step process. In the documentation below, the `/bulk` API is described\n in respective product sections. The `/bulk` API call queues the bulk import job to run it asynchronously, and returns\n a job ID. To monitor the import's status and be notified of its completion, you\n should poll status via the API periodically. When the import completes, the status\n will be set to `DONE`. If records fail validation, the entire batch is rejected and has to be retried\n after fixing the errors. The errors can be retrieved from the results API.\n\n\n ## Forecasting APIs\n\n Revenue teams use Clari Forecasting to track their attainment to date\n against goals and forecast their revenue numbers for the month, quarter and\n year. This data is captured by revenue leaders, managers, and sales reps --\n it provides a clear view of the entire team's forecast and their submission\n status.\n\n Clari's Forecasting APIs enable you to pull your forecasting data out of Clari, merge\n it with data sitting in your own data warehouse, and build custom reports. Forecasting\n supports both a REST API as well as a bulk export API.\n\n ### Creating and accessing Forecast exports\n\n\n You can export any Forecast Tab with our Forecasting APIs. To do so, retrieve the `forecastId` from the URL when viewing a Forecast Tab and provide the ID when using the Export API. If you don't already have a Forecast Tab configured for the data you're trying to export, please work with your CSM to get that configured first.\n\n <img src=\"https://developer.clari.com/assets/images/forecastid.png\" alt=\"forecast id\" width=\"400\"/>\n\n\n For details on Forecast Tabs and what data is available with Forecast Exports see guides below:\n\n - [Forecasting Building Blocks](https://clari.my.site.com/customer/s/article/Forecast-Building-Blocks)\n - [How to Read the Forecast Export](https://clari.my.site.com/customer/s/article/How-to-Read-the-Forecast-Export)\n - [How to Read the Export API Output](https://clari.my.site.com/customer/s/article/How-to-Read-Claris-Export-API-Output)\n\n\n ## Audit APIs\n\n The Audit API allows its users to audit events happening in their Clari instances. Call the Audit API to understand who is making changes in your Clari instance and when these changes happened.\n\n ## Data Ingestion API\n\n This API is for Clari's integration partners - such as technology platforms or revenue tools, looking to build a direct data integration with Clari. It enables partners to send data that can be surfaced in Clari's Accounts and Opportunities views for mutual customers who have turned on the integration.\n\n ## Activity API\n\n Activity Export API allows its users to pull sales activity data like emails, meetings and files.\n With this powerful sales activity data available on demand through an API call, customers can create powerful custom reports in the reporting tool of their choice and analyze Accounts and Opportunity engagement across different activity types.\n\n ## Questions?\n contact:\n name: us here! We're always happy to help with any questions.\n email:
[email protected]\nservers:\n - url: 'https://api.clari.com/{basePath}'\n description: Clari gateway\n variables:\n basePath:\n default: v4\n description: version identifier\ntags:\n - name: Bulk Export Framework\n - name: Bulk Ingest Job Status API\n - name: Forecast API\n - name: Audit API\n - name: Administrative API\npaths:\n '/export/forecast/{forecastId}':\n post:\n summary: Create a new forecast export\n description: |-\n Configure and start processing an export job by providing the ID of the Forecast Tab you would like to export data from. You will be able to retrieve the `forecastId` from the URL when viewing a Forecast Tab from your Clari account. If you don't already have a Forecast Tab configured for the data you're trying to export, please work with your CSM to get that configured first.\n\n To create your request, you will need to pass your `apikey` in as a header, the `forecastId` in the request path, and all other optional parameters as a JSON in the body.\n operationId: externalFcwExport\n tags:\n - Forecast API\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n - name: forecastId\n in: path\n description: Forecast tab on which to run the export on.\n required: true\n schema:\n type: string\n - name: timePeriod\n in: query\n description: |-\n Fiscal Quarter for when you'd like to run your export. Must be passed in as a string (e.g. \"YYYY_QQ\")\n\n <img src=\"https://developer.clari.com/assets/images/fiscal_quarter.png\" alt=\"fiscal quarter\" width=\"300\"/>\n schema:\n type: string\n example: 2020_Q3\n default: current quarter\n - name: scopeId\n in: query\n description: Specifies the scopeId to use as the root for the hierarchy that the export will run against. We recommend to add the integration user at the top of the hierarchy and opting the integration user into forecasting.\n schema:\n type: string\n example: '1905::MGR'\n default: null\n - name: typesToExport\n in: query\n description: |-\n Forecast data types you'd like to export. Must be passed in as a list.\n - **forecast** indicates the actual amount entered by the individual contributor, and is associated with the forecast call fields (i.e. Commit or Most Likely, Best Case or Upside, etc.).\n - **quota** indicates the value from the Quota field in Forecasting, and this data type is associated with Quota fields (i.e. Quota, Plan, Budget, etc.).\n - **forecast_updated** indicates whether or not the individual contributor actually went into Forecasting and updated their call(s) or number(s), and this data type is associated with forecast call fields.\n - **adjustment** indicates the adjusted call/number that a forecasting manager entered when they made a manager override to their report's call/number, and this data type is associated with forecast call fields.\n - **crm_total** indicates the crm aggregation value for an associated field and owner is desired for the fields returned in the payload.\n - **crm_closed** indicates the opportunities closed amount.\n schema:\n type: array\n items:\n enum:\n - forecast\n - quota\n - forecast_updated\n - adjustment\n - crm_total\n - crm_closed\n type: string\n example: forecast\n default: forecast *AND* forecast_updated\n - name: currency\n in: query\n description: Specifies the currency that currency fields should return in.\n schema:\n type: string\n example: USD\n default: null\n - name: exportFormat\n in: query\n description: Format of the exported file. Some export formats can be unavailable depending the export data size and type.\n schema:\n type: string\n enum:\n - CSV\n - JSON\n example: CSV\n default: JSON\n - name: includeHistorical\n in: query\n description: 'If set to true, you will receive week over week forecasts and CRM aggregations from the start of the quarter requested in timePeriod till the current week. If false, only the current week’s forecast and CRM aggregations will be returned…'\n schema:\n type: boolean\n example: true\n requestBody:\n description: Optional request parameters for the forecast export.\n required: false\n content:\n application/json:\n schema:\n type: object\n properties:\n timePeriod:\n type: string\n description: Fiscal quarter for when you'd like to run your export. Must be passed in as a string (e.g. \"YYYY_QQ\")\n example: 2020_Q3\n default: current quarter\n typesToExport:\n description: |-\n Forecast data types you'd like to export. Must be passed in as a list of strings.\n \n - `forecast` indicates the actual amount entered by the individual contributor, and is associated with the forecast call fields (i.e. Commit or Most Likely, Best Case or Upside, etc.).\n - `quota` indicates the value from the Quota field in Forecasting, and this data type is associated with Quota fields (i.e. Quota, Plan, Budget, etc.).\n - `forecast_updated` indicates whether or not the individual contributor actually went into Forecasting and updated their call(s) or number(s), and this data type is associated with forecast call fields. \n - `adjustment` indicates the adjusted call/number that a forecasting manager entered when they made a manager override to their report's call/number, and this data type is associated with forecast call fields.\n - `crm_total` indicates the Opportunities Total, and this data type is associated with read only fields.\n - `crm_closed` indicates the opportunities closed amount.\n type: array\n items:\n enum:\n - forecast\n - quota\n - forecast_updated\n - adjustment\n - crm_total\n - crm_closed\n type: string\n example:\n - forecast\n - forecast_updated\n default:\n - forecast\n - forecast_updated\n scopeId:\n type: string\n description: Specifies the scopeId to use as the root for the hierarchy that the export will run against.\n example: '1905::MGR'\n default: null\n currency:\n type: string\n description: Specifies the currency that currency fields should return in.\n example: USD\n default: null\n schedule:\n description: |\n Use this parameter to schedule retries of your export if the first attempt fails.\n - `NONE` means no retries\n - `ONCE` means retry once after 30 minutes if the first attempt failed\n - `MAX` means retry 3 times with 30 minute sleep between failed runs\n type: string\n enum:\n - NONE\n - ONCE\n - MAX\n default: NONE\n includeHistorical:\n type: boolean\n description: 'If set to true, you will receive week over week forecasts from the start of the quarter requested in `timePeriod` till the current week. If false, only the current week’s forecast will be returned. Note: these weeks will not be ordered by default in the JSON response. You can sort on the `timeFrameId` to sequence the weeks as needed.'\n default: false\n exportFormat:\n type: string\n enum:\n - JSON\n - CSV\n description: Format of the exported file\n example: CSV\n default: JSON\n responses:\n '200':\n description: 'Your export job was successfully queued. Use the `jobId`, provided in your response, to check it''s status and retrieve the requested data.'\n content:\n application/json:\n schema:\n type: object\n properties:\n jobId:\n type: string\n description: Unique identifier for your forecast export request. Use this `jobId` to check the status and retrieve data for your export.\n example:\n jobId: 6073683781a6da229df71e00\n '400':\n description: 'Your job could not be queued. You may have reached your monthly quota or concurrent job limit. Use the `/admin/limits` endpoint to find out which limit you have hit. If you find yourself hitting the concurrent limit often, try adjusting your request parameters. Specifically, set `SCHEDULE` to `ONCE` or `MAX`. This parameter will initiate retries without extra effort on your end.'\n content:\n application/json:\n schema:\n oneOf:\n - $ref: '#/paths/~1export~1activity/post/responses/400/content/application~1json/schema/oneOf/1'\n - description: An exception thrown when a forecast is requested that does not exist.\n type: object\n properties:\n code:\n type: string\n example: no_such_forecast_config\n namespace:\n type: string\n example: fcw\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: Forecast deal_owner does not exist in the ForecastTemplate.\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n - description: An exception thrown when a the forecast path parameter is not present.\n type: object\n properties:\n code:\n type: string\n example: missing_forecast_id\n namespace:\n type: string\n example: fcw\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: The forecastId query parameter is required.\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n - description: An exception thrown when a forecast export request is made with an unsupported typeToExport.\n type: object\n properties:\n code:\n type: string\n example: type_not_supported\n namespace:\n type: string\n example: fcw\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: CRM Totals and CRM Closed are not supported typeToExport values for Export API. Please see Forecast API documentation if you’d like to retrieve CRM Totals or CRM Closed values.\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n - description: An exception thrown when the request body is malformed.\n type: object\n properties:\n code:\n type: string\n example: bad_request\n namespace:\n type: string\n example: fcw\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: 'The request body was malformed: {REQUEST_BODY}'\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n - description: An exception thrown when the currency query parameter is not valid.\n type: object\n properties:\n code:\n type: string\n example: bad_request\n namespace:\n type: string\n example: fcw\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: The currency parameter is invalid.\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n - description: An exception thrown when a typesToExport query parameter is not valid.\n type: object\n properties:\n code:\n type: string\n example: bad_request\n namespace:\n type: string\n example: fcw\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: 'The following typesToExport values are invalid: [\"forecast_value\", \"quota_value\"]'\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n '401':\n description: The user associated with the api token does not have permission to view the requested forecast's data.\n content:\n application/json:\n schema:\n description: An exception thrown when access to a given forecast is not allowed for the user.\n type: object\n properties:\n code:\n type: string\n example: no_optin\n namespace:\n type: string\n example: fcw\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: 'No optins for scope 1::MGR for forecast ''deal_owner''.'\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n '500':\n description: There was an unexpected error.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema'\n '/export/jobs/{jobId}':\n get:\n summary: View the status of a given export using its jobId\n description: |\n Once your export job has been successfully created, it will be initialized with `\"status\": \"STARTED\"`. You'll need to poll the status of your request until it is complete. The possible states of your export request are: \n - `SCHEDULED` - job successfully created and queued up\n - `STARTED` - job in-progress\n - `DONE` - job complete and ready to output data\n - `FAILED` - job could not complete \n - `CANCELLED` - job was scheduled but then got cancelled \n - `ABORTED` - job started running but then got cancelled \n operationId: jobStatus\n tags:\n - Bulk Export Framework\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n - name: jobId\n description: The job id for the job to fetch the details for.\n in: path\n required: true\n schema:\n type: string\n responses:\n '200':\n description: Success! See job details for the requested job ID.\n content:\n application/json:\n schema:\n description: The UI formatted export item.\n type: object\n properties:\n jobId:\n type: string\n description: Unique identifier for your forecast export request.\n example: 6073683781a6da229df71e00\n userId:\n type: integer\n description: Clari user ID of the user that initiated the job.\n example: 1\n orgId:\n type: integer\n description: Clari org ID of the user that requested the job.\n example: 101\n title:\n type: string\n description: Title of the Forecast Tab requested for the export.\n example: Forecast Export\n module:\n type: string\n description: Module from which the export is requested from.\n example: FORECAST\n startTime:\n type: integer\n description: Start time of export job.\n example: 1618451575216\n endTime:\n type: integer\n description: End time of export job.\n example: 1618451581663\n expiredTime:\n type: integer\n description: Expiry time of export job.\n example: 1621043581663\n version:\n type: integer\n description: API version from when export job was initiated.\n example: 1\n fileName:\n type: string\n description: File name of export job.\n example: clari_export_forecast_total_new_2021_Q12915_20210415_015255.json\n fileType:\n type: string\n example: JSON\n status:\n description: The status of the export job.\n type: string\n enum:\n - SCHEDULED\n - STARTED\n - DONE\n - FAILED\n - CANCELLED\n - ABORTED\n viewed:\n type: boolean\n example: false\n cellsTruncated:\n type: boolean\n example: false\n rowsTruncated:\n type: boolean\n example: false\n downloads:\n type: integer\n description: Number of times the export request was downloaded.\n example: 1\n currency:\n type: string\n description: Currency used when initiating export job.\n example: USD\n example:\n jobId: 606e23c981a6da229d75b515\n userId: 1\n orgId: 101\n title: Forecast Export\n module: FORECAST\n startTime: 1617830857175\n endTime: 1617830861959\n expiredTime: 1620422861959\n version: 1\n fileName: clari_export_forecast_new_summary_2021_Q12915_20210407_212737.json\n fileType: JSON\n status: STARTED\n viewed: false\n cellsTruncated: false\n rowsTruncated: false\n downloads: 0\n deliveryStatusMap: {}\n currency: USD\n '400':\n description: The job status could not be retrieved.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1jobs/get/responses/400/content/application~1json/schema'\n '403':\n description: Invalid permissions to view this job.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1jobs/get/responses/400/content/application~1json/schema'\n '500':\n description: There was an unexpected error.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema'\n patch:\n summary: Stop or cancel an in-progress job\n description: Use this endpoint to stop or “cancel” an in-progress export job. The job will stop executing and free up space on your monthly quota. The job will still be accessible if you call the `GET /export/jobs` endpoint.\n operationId: updateJob\n tags:\n - Bulk Export Framework\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n - name: jobId\n description: The job id for the job to fetch the details for.\n $ref: '#/paths/~1export~1jobs~1%7BjobId%7D/get/parameters/1'\n requestBody:\n description: The request parameters for the update options available to update the job with.\n required: true\n content:\n application/json:\n schema:\n type: object\n properties:\n type:\n description: The type of patch task to perform on the job. Currently only `CANCEL` is supported.\n type: string\n example: CANCEL\n enum:\n - CANCEL\n responses:\n '200':\n description: Your job was successfully cancelled.\n content:\n application/json:\n schema:\n type: object\n properties:\n status:\n $ref: '#/paths/~1export~1jobs~1%7BjobId%7D/get/responses/200/content/application~1json/schema/properties/status'\n successful:\n type: boolean\n example:\n status: CANCELLED\n successful: true\n '400':\n description: Unable to complete request. Please check your parameters and/or the status of your job. If the job has already completed where `STATUS` is `DONE` you will not be able to cancel it.\n content:\n application/json:\n schema:\n description: Cannot cancel job as it has already finished executing.\n type: object\n properties:\n code:\n type: string\n example: export_failed_to_cancel\n namespace:\n type: string\n example: exports\n errorId:\n type: string\n example: 54c5a2b5-9b1c-11eb-a343-87ffa5f01191\n message:\n type: string\n example: Cannot cancel the job because it already finished executing.\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n '500':\n description: There was an unexpected error.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema'\n '/export/jobs/{jobId}/results':\n get:\n summary: Retrieve and save forecast export content\n description: |\n Once your export finishes processing and its status returns `DONE`, you will be able to retrieve your file contents using this endpoint.\n operationId: externalExportDownload\n tags:\n - Bulk Export Framework\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n - name: jobId\n description: The job ID for the export job to fetch JSON output for.\n $ref: '#/paths/~1export~1jobs~1%7BjobId%7D/get/parameters/1'\n responses:\n '200':\n description: Retrieve the content of the output file of the desired export job.\n content:\n application/json:\n example:\n - User\n - Email\n - CRM User ID\n - Role\n - Parent Role\n - Timeframe\n - Field\n - Week\n - Start Day\n - End Day\n - Data Type\n - Data Value\n - Jain\n -
[email protected]\n - 005110000069tRpAAI\n - Sales Rep - East\n - CEO\n - July FY 2023\n - Monthly Commit\n - '0'\n - 06/30/2023\n - 06/30/2023\n - Forecast Value\n - Jain\n -
[email protected]\n - 005110000069tRpAAI\n - Sales Rep - East\n - CEO\n - July FY 2023\n - Monthly Commit\n - '0'\n - 06/30/2023\n - 06/30/2023\n - Forecast Updated\n - 'No'\n - Clari QA10\n -
[email protected]\n - 005d0000001rfYSAAY\n - CEO\n - ''\n - July FY 2023\n - Monthly Commit\n - '0'\n - 06/30/2023\n - 06/30/2023\n - Forecast Value\n - '$3,000,190.00'\n - Clari QA10\n -
[email protected]\n - 005d0000001rfYSAAY\n - CEO\n - ''\n - July FY 2023\n - Monthly Commit\n - '0'\n - 06/30/2023\n - 06/30/2023\n - Forecast Updated\n - 'No'\n '400':\n description: 'Unable to retrieve data. Please ensure you have passed in a valid `jobId`. Note that you will only be able to retrieve output for successfully completed jobs. Specifically, the job''s status must be `DONE` in order to retrieve its output.'\n content:\n application/json:\n schema:\n description: Cannot retrieve data for the requested jobId. Check your parameters and try again.\n type: object\n properties:\n code:\n type: string\n example: invalid_jobId\n namespace:\n type: string\n example: exports\n errorId:\n type: string\n example: 54c5a2b5-9b1c-11eb-a343-87ffa5f01191\n message:\n type: string\n example: Cannot retrieve data for job because it has not finished executing.\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n '500':\n description: There was an unexpected error.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema'\n /export/jobs:\n get:\n summary: View all jobs initiated from a particular user\n description: 'View a list of all jobs initiated by a particular user. The response will include all complete, cancelled, and in-progress jobs.'\n operationId: externalFcwExport\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n tags:\n - Bulk Export Framework\n responses:\n '200':\n description: Success! See job details for all export jobs initiated by the authentication token passed in your parameter.\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/paths/~1export~1jobs~1%7BjobId%7D/get/responses/200/content/application~1json/schema'\n example:\n - jobId: '6073683781a6da229df71e00,'\n userId: '1,'\n orgId: '1,'\n title: 'Forecast Export,'\n module: 'FORECAST,'\n startTime: '123456789,'\n endTime: '123456799,'\n expiredTime: '133333333,'\n version: '1,'\n fileName: 'clari_export_default-view_20180118_004234.json,'\n fileType: 'JSON,'\n status: 'STARTED,'\n viewed: 'true,'\n cellsTruncated: 'false,'\n rowsTruncated: 'false,'\n downloads: '0,'\n currency: USD\n - jobId: '6073680cac043e61f93bac07,'\n userId: '1,'\n orgId: '1,'\n title: 'Forecast Export,'\n module: 'FORECAST,'\n startTime: '133456789,'\n endTime: '133456799,'\n expiredTime: '143333333,'\n version: '1,'\n fileName: 'clari_export_default-view_20180118_004234.json,'\n fileType: 'JSON,'\n status: 'STARTED,'\n viewed: 'true,'\n cellsTruncated: 'false,'\n rowsTruncated: 'false,'\n downloads: '2,'\n currency: USD\n '400':\n description: The job status could not be retrieved.\n content:\n application/json:\n schema:\n description: The generic exception response from the application.\n type: object\n properties:\n code:\n type: string\n example: SWW\n namespace:\n type: string\n example: exports\n errorId:\n type: string\n example: c16ae643-481a-11eb-a48d-a7e5677deee5\n message:\n type: string\n example: Something went wrong\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n '403':\n description: Invalid permissions to view this job.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1jobs/get/responses/400/content/application~1json/schema'\n '500':\n description: There was an unexpected error.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema'\n /admin/limits:\n get:\n summary: View limit information for your organization\n description: List information about API limits and aggregate consumption for your organization. The response will include your monthly quota and all active and completed jobs that contribute to that quota.\n operationId: limits\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n tags:\n - Administrative API\n responses:\n '200':\n description: Success! View the limits and export jobs contributing to those limits for your organization.\n content:\n application/json:\n schema:\n type: object\n properties:\n jobs:\n description: The limits for an org at the time of the call.\n type: object\n properties:\n concurrentLimit:\n type: integer\n description: The maximum number of concurrent exports that can be queued or run at the same time.\n example: 3\n monthlyQuota:\n type: integer\n description: 'The maximum number of exports that can be run in a rolling 30 day period. The monthly quota is at the organization level and can be adjusted as needed. Please work with your CSM if you''d like to adjust your quota. '\n example: 1000\n runningJobIds:\n type: array\n description: 'List of jobs that are in the `RUNNING` state. If all jobs are complete or there is no in-progress job, you will not receive a list of `runningJobIds` in the response. '\n items:\n type: string\n example:\n - 6073680cac043e61f93bac07\n - 607367f6304d430d58ab34ae\n submittedJobIds:\n type: array\n description: List of jobs contributing to your monthlyQuota.\n items:\n type: string\n example:\n - 606e6f6f304d430d583fdd4c\n - 606e2406304d430d5835db02\n - 606e23c981a6da229d75b515\n availableConcurrentLimit:\n type: integer\n description: The unused concurrent limit at the time. Concurrent limit - (running jobs + queued jobs)\n example: 1\n availableMonthlyQuota:\n type: integer\n description: 'The unused monthly quota at the time. Monthly quota - submitted jobs. Before creating an export job request, make sure you have available quota. If you have completed your monthly quota, your requests to Clari API will fail. '\n example: 995\n '500':\n description: There was an unexpected error.\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema'\n /export/audit/events:\n post:\n summary: Queue a job to export audit events as a json file\n description: |-\n This is a bulk export API.\n\n Queue an export job to export audit events for your org filtered by parameters specified in the request body. The exported json file will contain an array of audit events (`items` field) and an array of actors (`actors` field). The exported file can be downloaded using the `jobId` returned, once the job completes. The job status can also be queried using the `jobId`.\n\n To create your request, you will need to pass your `apikey` in as a header, all other optional parameters as a JSON in the body.\n operationId: exportAuditEvents\n tags:\n - Audit API\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n requestBody:\n description: Optional request parameters for the audit event export.\n required: false\n content:\n application/json:\n schema:\n type: object\n properties:\n actorId:\n description: The Actor ID to filter the result set\n type: integer\n format: int64\n default: null\n example: 1\n impersonatingActorId:\n type: integer\n format: int64\n description: The Impersonating Actor ID to filter the result set\n default: null\n example: 1\n sessionId:\n description: The Session UUID to filter the result set.\n type: string\n format: uuid\n maxLength: 36\n default: null\n example: fe795746-54b0-11ed-bdc3-0242ac120002\n sessionType:\n description: Filters the result based on the session type. If not presents all session types are returned.\n type: string\n default: WEB\n enum:\n - WEB\n - IOS\n - ANDROID\n dateFrom:\n description: |-\n Date from which events need to be pulled. The Internet Date/Time Format profile of ISO 8601 (opens new window) for example date-time: `2017-05-03T16:22:18Z` for example date-only: `2017-05-03`\n Defaults to 30 days ago\n type: string\n format: date-time\n default: null\n example: '2022-08-03T16:22:18Z'\n dateTo:\n description: |-\n Date until which events need to be pulled. The Internet Date/Time Format profile of ISO 8601 (opens new window) for example date-time: `2017-05-03T16:22:18Z` for example date-only: `2017-05-03`\n Defaults to the current date and time\n type: string\n format: date-time\n default: null\n example: '20122-08-05T16:22:18Z'\n event:\n description: Different categories/subcategories of events that we track.\n type: string\n default: null\n example: api.accessed\n responses:\n '202':\n description: 'Your export job was successfully queued. Use the `jobId`, provided in your response, to check its status and retrieve the requested data.'\n content:\n application/json:\n schema:\n title: Response Object With JobId\n description: jobId is the identifier of the queued job.\n type: object\n required:\n - jobId\n properties:\n jobId:\n description: The Job ID of the successfully queued export job.\n type: string\n example: 6073683781a6da229df71e00\n '400':\n description: Client Error. Your job could not be queued.\n content:\n application/json:\n schema:\n oneOf:\n - title: Errors Response Object\n description: A Clari API-compliant error response. This object is inherited by the specific response type.\n type: object\n required:\n - errors\n properties:\n errors:\n description: An array of Error objects\n type: array\n minItems: 1\n items:\n title: Error Object\n type: object\n description: A Clari API-compliant error object. An array of details about specific errors that led to this reported error.\n required:\n - status\n - message\n properties:\n code:\n description: an application-specific error code\n type: string\n message:\n description: 'a short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization'\n type: string\n target:\n description: The target of the error.\n type: string\n status:\n description: the HTTP status code applicable to this problem\n type: string\n minLength: 3\n maxLength: 3\n details:\n description: A String containing more specific information than the current object about the error.\n type: string\n - $ref: '#/paths/~1export~1activity/post/responses/400/content/application~1json/schema/oneOf/1'\n '500':\n description: Server Error\n content:\n application/json:\n schema:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema'\n x-export-results:\n description: 'JSON response from the `/export/jobs/{jobId}/results` endpoint returns an array of Audit Events items. It returns an empty `items` array if no records are found.'\n content:\n application/json:\n schema:\n $ref: '#/paths/~1audit~1events/get/responses/200/content/application~1json/schema'\n /audit/events:\n get:\n summary: View audit events with pagination\n description: 'View audit events filtered by query string parameters. This API returns a list of audit events, and a list of actors for all the events. If no items are found an empty array will returned. Additionally the response provides a `nextLink` for the next page available. Pages can be managed by the `limit` query string parameter. Use the `nextLink` to navigate to the next page if present.'\n operationId: listAuditEvents\n tags:\n - Audit API\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n - name: limit\n in: query\n description: Sets the number of results that are returned in the response The limit field can trigger for multiple pages to be generated. If more than the `limit` of records is in the results a `nextLink` is provided to facilitate the navigation. Integer between 1 and 1000. Defaults to 100\n required: false\n schema:\n type: integer\n format: int64\n minimum: 1\n maximum: 1000\n default: 100\n - name: actorId\n in: query\n description: The Actor ID to filter the result set\n required: false\n schema:\n type: integer\n format: int64\n - name: impersonatingActorId\n in: query\n description: The Impersonating Actor ID to filter the result set\n required: false\n schema:\n type: integer\n format: int64\n - name: sessionId\n in: query\n description: The Session UUID to filter the result set.\n required: false\n schema:\n type: string\n format: uuid\n maxLength: 36\n - name: sessionType\n in: query\n description: Filters the result based on the session type. If not presents all session types are returned.\n required: false\n schema:\n type: string\n enum:\n - WEB\n - IOS\n - ANDROID\n - name: dateFrom\n in: query\n description: 'Date from which events need to be pulled. The Internet Date/Time Format profile of ISO 8601 (opens new window) for example date-time: `2017-05-03T16:22:18Z` for example date-only: `2017-05-03` Defaults to 30 days ago'\n required: false\n schema:\n type: string\n format: date-time\n - name: dateTo\n in: query\n description: 'Date until which events need to be pulled. The Internet Date/Time Format profile of ISO 8601 (opens new window) for example date-time: `2017-05-03T16:22:18Z` for example date-only: `2017-05-03` Defaults to the current date and time'\n required: false\n schema:\n type: string\n format: date-time\n - name: event\n in: query\n description: Different categories/subcategories of events that we track.\n required: false\n schema:\n type: string\n responses:\n '200':\n description: Returns a paged array of Audit Events items. Returns an empty `items` array if no records are found.\n content:\n application/json:\n schema:\n title: Audit Logs Get Response Object\n type: object\n properties:\n nextLink:\n type: string\n format: url\n items:\n type: array\n items:\n title: Audit Event Response Object\n description: Represents an Audit Logger Log entry.\n type: object\n required:\n - actorId\n - sessionId\n - sessionType\n - event\n - ipAddress\n - actorType\n properties:\n correlationID:\n description: An additional field for the system to provide an ID to correlate the Audit Logger events with other log entries.\n type: string\n actorId:\n description: The person who is responsible for the changes\n type: string\n impersonatingActorId:\n description: The person on whose behalf the actor is logging in. Null if the actor is the same as impersonating_actor (allows for easy filtering).\n type: string\n actorType:\n description: |-\n The subject type who requested the action.\n `USER` - Clari user interactions `SYSTEM` - Can be from a specific line in service. `JOB` - Scheduled jobs only\n type: string\n enum:\n - USER\n - SYSTEM\n - JOB\n sessionId:\n description: Session ID of the current user performing the action\n type: string\n format: uuid\n ipAddress:\n description: IP Address where the event is originated from.\n type: string\n format: ipv4\n sessionType:\n description: |-\n Device source from where the action is performed.\n Eg. If the change is originating from the Web application then the sessionType should be of Web\n type: string\n enum:\n - WEB\n - IOS\n - ANDROID\n event:\n description: The different categories and subcategories of events that can be logged into the service.\n type: string\n eventParameters:\n title: Event Parameters Object\n description: 'Allow passing additional parameters for a particular event as specified in [Audit Log Priorities C Column](https://docs.google.com/spreadsheets/d/1Kx5YUrpn13sSyh3pvYP68lxiU1mzzZNhr-cOPzBD_aE/edit?usp=sharing)'\n type: object\n maximum: 10\n eventTimestamp:\n description: 'The date and time the event occurred. For example: 2017-05-03T16:22:18Z'\n type: string\n format: date-time\n maxItems: 1000\n actors:\n type: array\n items:\n title: Actor Object\n type: object\n description: 'An Actor object including actorType, actorId, name and email return as get request response object.'\n required:\n - actorType\n - actorId\n - name\n - email\n properties:\n actorType:\n description: UserType is 'USER'\n type: string\n actorId:\n description: Clari User's userId\n type: string\n name:\n description: Clari User's full name\n type: string\n email:\n description: Clari User's email\n type: string\n uniqueItems: true\n 4XX:\n description: Client Error\n content:\n application/json:\n schema:\n title: Errors Response Object\n description: A Clari API-compliant error response. This object is inherited by the specific response type.\n type: object\n required:\n - errors\n properties:\n errors:\n description: An array of Error objects\n type: array\n minItems: 1\n items:\n title: Error Object\n type: object\n description: A Clari API-compliant error object. An array of details about specific errors that led to this reported error.\n required:\n - status\n - message\n properties:\n code:\n description: an application-specific error code\n type: string\n message:\n description: 'a short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization'\n type: string\n target:\n description: The target of the error.\n type: string\n status:\n description: the HTTP status code applicable to this problem\n type: string\n minLength: 3\n maxLength: 3\n details:\n description: A String containing more specific information than the current object about the error.\n type: string\n 5XX:\n description: Server Error\n content:\n application/json:\n schema:\n $ref: '#/paths/~1audit~1events/get/responses/4XX/content/application~1json/schema'\n /opportunity:\n get:\n summary: Retrieve opportunity data\n description: |-\n You can retrieve opportunity related data from Clari. To create your request, you will need to pass your `apikey` in as a header, the one or more `oppId` in the request path, and optional `mode` query parameter.\n\n EXAMPLE: `/opportunity?oppId=005Z00000038x09IAA&oppId=006Z000000EPuiyIAD&mode=OPPORTUNITY_MODE_ID`\n operationId: externalOpportunityResource\n tags:\n - Opportunity API\n parameters:\n - name: apikey\n in: header\n description: Authentication token\n required: true\n schema:\n type: string\n - name: oppId\n in: query\n description: specific one or more Opportunity ID\n required: true\n style: form\n explode: true\n schema:\n type: array\n items:\n type: string\n maxItems: 100\n example: 005Z00000038x09IAA\n - name: mode\n in: query\n description: Clari mode ID\n required: false\n schema:\n type: string\n default: OPPORTUNITY_MODE_ID\n responses:\n '200':\n description: Return an array of Opportunity Export Items.\n content:\n application/json:\n schema:\n type: array\n items:\n title: Opportunity Export Object\n description: 'Opportunity Export - oppId, crmScore and fields'\n type: object\n properties:\n id:\n description: Unique Identifier\n type: string\n example: 005Z00000038x09IAA\n crmScore:\n description: Opportunity CRM crmScore\n type: object\n properties:\n message:\n type: string\n example: Opportunity is lost\n score:\n type: integer\n example: 0\n fields:\n description: List of fields\n type: array\n items:\n description: Opportunity Field Object\n type: object\n properties:\n id:\n type: string\n example: opportunity.amount\n alias:\n type: string\n imageUrl:\n type: string\n example: /images/
[email protected]\n trendHistory:\n type: array\n items:\n type: object\n properties:\n oldValue:\n type: object\n newValue:\n type: object\n date:\n description: specifies date as long\n type: integer\n format: int64\n example: 1605312000000\n trend:\n type: string\n value:\n description: 'Can be any value - string, number, boolean, array or object.'\n originalValue:\n $ref: '#/paths/~1opportunity/get/responses/200/content/application~1json/schema/items/properties/fields/items/properties/value'\n 4XX:\n description: |-\n Client Error\n\n For example {statusCode:400, reaspnPhrase:\"Bad Request\", description:\"invalid query parameter\", \"details\": \"oppId is required\"}\n content:\n application/json:\n schema:\n type: array\n items:\n title: Error Object\n type: object\n description: A Clari API-compliant error object. An array of details about specific errors that led to this reported error.\n properties:\n statusCode:\n description: an application-specific error code\n type: integer\n reaspnPhrase:\n description: give a short textual description of the Status-Code\n type: string\n description:\n description: The description of the error.\n type: string\n details:\n description: A String containing more specific information than the current object about the error.\n type: string\n 5XX:\n description: |-\n Server Error\n\n For example {statusCode:500, reaspnPhrase:\"Server Error\", description:\"NullPointerException\", \"details\": \"Cannot initialize ExternalOpportunityResource\"}\n content:\n application/json:\n schema:\n type: array\n items:\n $ref: '#/paths/~1opportunity/get/responses/4XX/content/application~1json/schema/items'\n '/ingest/bulk/entity/{entity}':\n post:\n summary: Bulk Upload entity data\n description: |\n This API allows partners to perform a bulk upload of field extensions and sub-objects to Clari's Account and Opportunity entities. It is designed for high-volume updates, enabling the ingestion of additional metadata beyond the standard CRM fields.\n\n\n Here are key details to keep in mind when using this API:\n - Upload a single JSON file (max 10MB) per request.\n - Specify the entity (account/opportunity/any sub-object entity) in the path.\n - Include both apikey and partnerkey in the request headers.\n - Use Salesforce Account IDs or Opportunity IDs to associate data.\n - JSON structure must match the /ingest/entity/{entity} API.\n - createdAt and updatedAt timestamps should be sent in milliseconds.\n\n BASE URL: `https://api.clari.com/v2`\n\n EXAMPLE: `https://api.clari.com/v2/ingest/bulk/entity/account`\n operationId: ingestBulk\n tags:\n - Ingestion API\n parameters:\n - name: apikey\n in: header\n description: Authentication token\n required: true\n schema:\n type: string\n - name: partnerkey\n in: header\n description: Partner key\n required: true\n schema:\n type: string\n - name: entity\n in: path\n description: the entity to upload data to\n required: true\n schema:\n type: string\n example: account\n - name: mode\n in: query\n description: data upload mode\n schema:\n type: string\n enum:\n - initial\n - incremental\n - name: isLastBatch\n in: query\n description: whether data is the last batch of initial data\n schema:\n type: boolean\n requestBody:\n required: true\n content:\n multipart/form-data:\n schema:\n type: object\n example: |\n Content-Type: multipart/form-data; boundary=----7MA4YWxkTrZu0gW\n\n ------7MA4YWxkTrZu0gW\n Content-Disposition: form-data; name=\"FileData\"; filename=\"data.json\"\n Content-Type:\n\n --FILE DATA--\n ------7MA4YWxkTrZu0gW--\n responses:\n '202':\n description: Data is accepted\n content:\n application/json:\n schema:\n type: object\n properties:\n jobId:\n type: string\n example: 64eef062b1a00d40e5f0bac5\n '400':\n description: input is not in right format\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion bad request Error Object\n type: object\n description: Details of an bad request error encountered when ingesting data.\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - INVALID_INPUT_FORMAT\n - INVALID_FILE_FORMAT\n - INVALID_CONFIGURATION\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: INVALID_FILE_FORMAT\n errorSummary: Allowed file format is JSON only. Please try again with right format.\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Mode value is invalid. Please try again with a valid mode value, possible values are [initial, increment]'\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: '''Initial'' mode is allowed only during initial ingestion of data, please try ingesting it with ''Incremental'' mode for xyz entity'\n - errorCode: INVALID_CONFIGURATION\n errorSummary: 'Integration is not yet enabled, please contact support for assistance'\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Entity is not valid/enabled for integration. Please try again with a valid/enabled entity\n '401':\n $ref: '#/paths/~1ingest~1entity~1%7Bentity%7D/post/responses/401'\n '403':\n $ref: '#/paths/~1ingest~1entity~1%7Bentity%7D/post/responses/403'\n '428':\n $ref: '#/paths/~1ingest~1entity~1%7Bentity%7D/post/responses/428'\n '429':\n description: Maximum concurrent request limit has been reached.\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion requests limit reached Error Object\n type: object\n description: Ingestion requests limit reached\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - TOO_MANY_REQUESTS\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: TOO_MANY_REQUESTS\n errorSummary: Max concurrent async ingestion jobs limit reached for partner <partnerName>\n '500':\n $ref: '#/paths/~1ingest~1entity~1%7Bentity%7D/post/responses/500'\n '/ingest/entity/{entity}':\n post:\n summary: Upload entity data\n description: |\n This API allows partners to perform frequent, incremental updates to Clari’s Account and Opportunity entities. It supports uploading up to 100 records per request, and can be used to add or update field extensions or sub-objects associated with these entities.\n\n\n Key points to know when using this API:\n - Designed for partner integrations to sync small, regular data updates.\n - Supports up to 100 records in a single JSON payload.\n - Specify the target entity (account/opportunity/any sub-object entity) in the API path.\n - Include both apikey and partnerkey in the request headers.\n - Use Salesforce Account IDs or Opportunity IDs to identify records.\n - createdAt and updatedAt timestamps should be sent in milliseconds.\n\n BASE URL: `https://api.clari.com/v2`\n\n EXAMPLE: `https://api.clari.com/v2/ingest/entity/account`\n operationId: ingestIncremental\n tags:\n - Ingestion API\n parameters:\n - name: apikey\n in: header\n description: Authentication token\n required: true\n schema:\n type: string\n - name: partnerkey\n in: header\n description: Partner key\n required: true\n schema:\n type: string\n - name: entity\n in: path\n description: the entity to upload data to\n required: true\n schema:\n type: string\n example: account\n - name: mode\n in: query\n description: data upload mode\n schema:\n type: string\n enum:\n - initial\n - incremental\n - name: isLastBatch\n in: query\n description: whether data is the last batch of initial data\n schema:\n type: boolean\n requestBody:\n required: true\n content:\n application/json:\n schema:\n title: Ingest API Data\n description: Data could comprises of multiple source entity data\n type: array\n items:\n title: Entity Data\n description: Ingest extra Salesforce account or opportunities field data into Clari.\n type: object\n properties:\n sourceEntity:\n description: Source entity of the records\n type: string\n records:\n description: Data Records\n type: array\n items:\n title: Ingest API Data Record\n description: list required fields of a record\n type: object\n required:\n - createdAt\n - updatedAt\n - id\n properties:\n createdAt:\n description: The record creation timestamp denotes the number of milliseconds that have elapsed since the epoch.\n type: number\n updatedAt:\n description: The record update timestamp denotes the number of milliseconds elapsed since the epoch.\n type: number\n id:\n description: Salesforce identifier of the record\n type: string\n example:\n - sourceEntity: sourceEntityB\n records:\n - id: 001Z000000xOn4bIAA\n createdAt: 1303324502462\n updatedAt: 1303324602462\n adoptionDate: '2022-10-01T07:00:00Z'\n openSuccessPlan: 'yes'\n - id: 001Z000000xOn4bIAJ\n createdAt: 1303324502462\n updatedAt: 1303324602462\n adoptionDate: '2022-10-01T07:00:00Z'\n openSuccessPlan: 'yes'\n - sourceEntity: sourceEntityA\n records:\n - id: 001Z000000xOn4bIAC\n createdAt: 1303324502462\n updatedAt: 1303324602462\n healthScore: 88\n nps: 13\n csm: USD\n lifecycleStage: early\n mrr: 5146000\n trend: Up\n dateOfLastTimelineActivity: '2022-10-10T07:00:00Z'\n - id: 001Z000000xOn4bIAD\n createdAt: 1303324502462\n updatedAt: 1303324602462\n healthScore: 89\n nps: 13\n csm: USD\n lifecycleStage: early\n mrr: 5146100\n trend: Same\n dateOfLastTimelineActivity: '2022-10-10T07:00:00Z'\n responses:\n '200':\n description: Data is uploaded\n '400':\n description: Bad Request.\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion bad request Error Object\n type: object\n description: Details of an bad request error encountered when ingesting data.\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - INVALID_INPUT_FORMAT\n - DATA_TYPE_ERROR\n - INVALID_CONFIGURATION\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Failed validation for data at path: /email 12345 is not of type ''string'''\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Failed validation for data at path: /quantity Value -5 is less than or equal to the minimum of 0'''\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Failed validation for data at path: / updatedAt should be greater than or equal to createdAt'''\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Payload is not an array\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: sourceEntity is missing dataSet <index>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: records is missing for dataSet <index>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: No entries have valid accountId for the domains\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: The number of records limit to 100\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Mode value is invalid. Please try again with a valid mode value, possible values are [initial, increment]'\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: '''Initial'' mode is allowed only during initial ingestion of data, please try ingesting it with ''Incremental'' mode for xyz entity'\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Entity is not valid/enabled for integration. Please try again with a valid/enabled entity\n - errorCode: INVALID_CONFIGURATION\n errorSummary: 'Integration is not yet enabled, please contact support for assistance'\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Primary key field <field name> is missing\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> is missing\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Duplicate record with value <field value> for primary key field <field name>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Duplicate record with value <field value> for primary key field <field name>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> value <field value> is not a valid date\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> type <field type> does not match expected type <expected name>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> length exceeds max length of <max length>\n '401':\n description: Unauthorized\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion Unauthorized Error Object\n type: object\n description: Details of an Unauthorized error encountered when ingesting data.\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - INVALID_PARTNER_KEY\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: INVALID_PARTNER_KEY\n errorSummary: Unauthorized PartnerKey\n '403':\n description: data ingestion has disabled.\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion forbidden Error Object\n type: object\n description: Details of an forbidden error encountered when ingesting data.\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - FORBIDDEN_ERROR\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: FORBIDDEN_ERROR\n errorSummary: Data Ingestion has been disabled\n '428':\n description: precondition required error.\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion precondition required Error Object\n type: object\n description: Details of an precondition required error encountered when ingesting data.\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - SCHEMA_MISSING\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: SCHEMA_MISSING\n errorSummary: 'Schema file information of partner is not available for entity : <account/opportunity>, Please contact clari support.'\n '429':\n $ref: '#/paths/~1ingest~1job~1%7BjobId%7D/get/responses/429'\n '500':\n description: Server Error\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion Internal Error Object\n type: object\n description: Details of an Internal error encountered when ingesting data.\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - INTERNAL_SERVER_ERROR\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: INTERNAL_SERVER_ERROR\n errorSummary: <error message>\n '/ingest/job/{jobId}':\n get:\n summary: Check the data upload status\n description: |\n Upon receiving a response from the asynchronous ingest bulk upload API, make use of the provided 'jobId' to check the status \n and result of the upload job.\n\n BASE URL: `https://api.clari.com/v2`\n\n EXAMPLE: `https://api.clari.com/v2/ingest/bulk/entity/account`\n operationId: ingestJobStatus\n tags:\n - Bulk Ingest Job Status API\n parameters:\n - name: apikey\n in: header\n description: Authentication token\n required: true\n schema:\n type: string\n - name: partnerkey\n in: header\n description: Partner key\n required: true\n schema:\n type: string\n example: account\n - name: jobId\n in: path\n description: the job identifier of the asynchronous upload request\n required: true\n schema:\n type: string\n example: 1231244212322\n responses:\n '200':\n description: Ingestion job success response\n content:\n application/json:\n schema:\n type: object\n description: Response containing job details wrapped in a message field\n properties:\n message:\n type: object\n description: Details of an async ingestion job.\n properties:\n jobId:\n description: Unique identifier of the job\n type: string\n module:\n description: Module name\n type: string\n submittedTime:\n description: Time when the job was submitted in milliseconds\n type: number\n startTime:\n description: Time when the job started in milliseconds\n type: number\n endTime:\n description: Time when the job ended in milliseconds\n type: number\n title:\n description: Title of the service\n type: string\n fileName:\n description: Name of the file\n type: string\n status:\n description: Status of the job\n type: string\n enum:\n - SUCCESS\n - IN_PROGRESS\n - FAILED\n - QUEUED\n - VALIDATION_FAILED\n message:\n description: Message of the job\n type: string\n example:\n message:\n jobId: 64eef062b1a00d40e5f0bac5\n orgId: 1234\n userId: 12345\n module: DATA_INGESTION\n submittedTime: 1231244212310\n startTime: 1231244212322\n endTime: 1231244212340\n title: Data Ingestion\n fileName: file.json\n status: SUCCESS\n message: Ingestion successfully completed.\n '202':\n description: Data is either in progress or in queue\n content:\n application/json:\n schema:\n $ref: '#/paths/~1ingest~1job~1%7BjobId%7D/get/responses/200/content/application~1json/schema'\n example:\n message:\n jobId: 64eef062b1a00d40e5f0bac5\n orgId: 1234\n userId: 12345\n module: DATA_INGESTION\n submittedTime: 1231244212310\n startTime: 1231244212322\n endTime: null\n title: Data Ingestion\n fileName: file.json\n status: IN_PROGRESS\n message: Bulk ingestion job is in progress\n '400':\n description: Ingestion job validation errors\n content:\n application/json:\n schema:\n $ref: '#/paths/~1ingest~1job~1%7BjobId%7D/get/responses/200/content/application~1json/schema'\n example:\n message:\n jobId: 64eef062b1a00d40e5f0bac5\n orgId: 1234\n userId: 12345\n module: DATA_INGESTION\n submittedTime: 1231244212310\n startTime: 1231244212322\n endTime: 1231244212340\n title: Data Ingestion\n fileName: file.json\n status: VALIDATION_ERROR\n message:\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Failed validation for data at path: /email 12345 is not of type ''string'''\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Failed validation for data at path: /quantity Value -5 is less than or equal to the minimum of 0'''\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'Failed validation for data at path: / updatedAt should be greater than or equal to createdAt'''\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Payload is not an array\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: sourceEntity is missing dataSet <index>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: records is missing for dataSet <index>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: No entries have valid accountId for the domains\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Primary key field <field name> is missing\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> is missing\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Duplicate record with value <field value> for primary key field <field name>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Duplicate record with value <field value> for primary key field <field name>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> value <field value> is not a valid date\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> type <field type> does not match expected type <expected name>\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Field <field name> length exceeds max length of <max length>\n '401':\n description: Invalid authentication token\n content:\n application/json:\n schema:\n type: object\n properties:\n error:\n type: string\n example: Invalid authentication credentials\n '404':\n description: Not Found\n content:\n application/json:\n schema:\n type: object\n properties:\n error:\n type: string\n example: Bulk ingestion job not found. Please provide correct jobId.\n '429':\n description: API rate limit has been exceeded. The api limit is 100 requests per second per api token\n content:\n application/json:\n schema:\n type: object\n properties:\n error:\n type: string\n example: API rate limit exceeded\n '500':\n description: Ingestion job internal Error\n content:\n application/json:\n schema:\n $ref: '#/paths/~1ingest~1job~1%7BjobId%7D/get/responses/200/content/application~1json/schema'\n example:\n message:\n jobId: 64eef062b1a00d40e5f0bac5\n orgId: 1234\n userId: 12345\n module: DATA_INGESTION\n submittedTime: 1231244212310\n startTime: 1231244212322\n endTime: 1231244212340\n title: Data Ingestion\n fileName: file.json\n status: FAILED\n message: Bulk ingestion job failed. Please retry ingestion.\n /export/activity:\n post:\n summary: Create a new activity export job\n description: |-\n This is a bulk export API.\n\n Configure and start processing an export job by providing activityTypes, startDate, and endDate in the JSON as request body.\n\n To create your request, you will need to pass your `apikey` in as a header, all other parameters as a JSON in the body.\n tags:\n - Activity API\n parameters:\n - name: apikey\n in: header\n description: Authentication token.\n required: true\n schema:\n type: string\n requestBody:\n description: Request parameters for the activity export.\n required: true\n content:\n application/json:\n schema:\n type: object\n properties:\n activityTypes:\n type: array\n items:\n enum:\n - MEETING\n - EMAIL_SENT\n - EMAIL_RECEIVED\n - ATTACHMENT_SENT\n - ATTACHMENT_RECEIVED\n type: string\n description: |\n Specifies the list of supported activity types to consider to filter the activities\n\n Supported activityTypes\n * MEETING\n * EMAIL_SENT\n * EMAIL_RECEIVED\n * ATTACHMENT_SENT\n * ATTACHMENT_RECEIVED\n default: null\n example:\n - MEETING\n - EMAIL_SENT\n - ATTACHMENT_RECEIVED\n startDate:\n type: string\n format: date-time\n description: |\n Specifies the start date to filter the activities, following ISO-8601 date-time format. Ensure to provide UTC offset for accuracy.\n example: __10th March, 2023__ can be represented as below based on the timezone\n * UTC : 2023-03-10T00:00:00Z\n * PST : 2023-03-10T00:00:00-08:00\n * IST : 2023-03-10T00:00:00+05:30\n\n Note: Date and timezone provided will only be considered and not the time\n default: null\n example: '2023-03-10T00:00:00Z'\n endDate:\n type: string\n format: date-time\n description: |\n Specifies the end date to filter the activities, following ISO-8601 date-time format. Ensure to provide UTC offset for accuracy.\n examples: __21st March, 2023__ can be represented as below based on the timezone\n * UTC : 2023-03-21T00:00:00Z\n * PST : 2023-03-21T00:00:00-08:00\n * IST : 2023-03-21T00:00:00+05:30\n\n Note: Date and timezone provided will only be considered and not the time\n default: null\n example: '2023-03-21T00:00:00Z'\n exportFormat:\n type: string\n enum:\n - JSON\n description: Specifies format of the activity export\n example: JSON\n default: JSON\n responses:\n '202':\n description: 'Your export job was successfully queued. Use the `jobId`, provided in your response, to check its status and retrieve the requested data.'\n content:\n application/json:\n schema:\n title: Response Object With JobId\n description: jobId is the identifier of the queued job.\n type: object\n required:\n - jobId\n properties:\n jobId:\n description: The Job ID of the successfully queued export job.\n type: string\n example: 6073683781a6da229df71e00\n '400':\n description: Client Error. Your job could not be queued.\n content:\n application/json:\n schema:\n oneOf:\n - title: Error Object\n type: object\n description: A Clari API-compliant error object. An array of details about specific errors that led to this reported error.\n required:\n - message\n properties:\n code:\n type: string\n example: Bad request\n namespace:\n type: string\n example: activity\n errorId:\n type: string\n example: 87c7f26038f40e3dbb4e001ac07150c1\n message:\n description: 'a short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization'\n type: string\n userId:\n description: The user's Clari account ID\n type: string\n orgId:\n description: The organization's Clari account ID\n type: string\n - description: The job could not be queued.\n type: object\n properties:\n code:\n type: string\n example: export_monthly_quota_reached\n namespace:\n type: string\n example: exports\n errorId:\n type: string\n example: cd871759-9b0b-11eb-a343-87ffa5f01191\n message:\n type: string\n example: The monthly quota limit of 30 or concurrent limit of 1 has been reached.\n orgId:\n $ref: '#/paths/~1export~1activity/post/responses/500/content/application~1json/schema/properties/orgId'\n source:\n type: string\n example: Export\n '401':\n description: Invalid authentication\n content:\n application/json:\n schema:\n title: Response Object for Authentication Failure\n description: Response with authentication failure message\n type: object\n required:\n - message\n properties:\n message:\n description: Message for authentication failure\n type: string\n example: Invalid authentication credentials\n '500':\n description: Server Error\n content:\n application/json:\n schema:\n description: Internal Server Error\n type: object\n properties:\n code:\n type: string\n example: internal_server_error\n namespace:\n type: string\n example: exports\n errorId:\n type: string\n example: 54c5a2b5-9b1c-11eb-a343-87ffa5f01191\n message:\n type: string\n example: An unexpected error occurred.\n orgId:\n description: The organization's Clari account ID. Commonly referred to as `orgId`.\n type: integer\n format: int32\n example: 101\n x-export-results:\n description: 'JSON response from the `/export/jobs/{jobId}/results` endpoint returns an array of activity records. It returns an empty `activities` array if no records are found.'\n content:\n application/json:\n schema:\n type: object\n properties:\n activities:\n type: array\n items:\n type: object\n properties:\n activityId:\n type: string\n description: unique identifier for each activity record\n example: 58eaf6bae6bdab17f362400127170cc3\n activityType:\n type: string\n description: 'type of activity record (i.e. MEETING, EMAIL_SENT)'\n example: MEETING\n subject:\n type: string\n description: subject of the activity\n example: Data Pulse <> Clari Sync\n date:\n type: integer\n description: date/time as an epoch timestamp on which activity occurred or occurs\n format: int64\n example: 1702906200000\n activityOwnerId:\n type: string\n description: salesforce id of user whose inbox or calendar from which the activity is indexed from\n example: 0073x000005ChMyQKK\n activityOrganiserId:\n type: string\n description: salesforce id of user who organised or created the activity\n example: 0044x000005ChMyQQA\n accounts:\n type: array\n description: list of accounts to which the activity is mapped to\n items:\n type: object\n properties:\n accountId:\n type: string\n description: salesforce account id\n example: 0014x000018I6EVAA0\n accountName:\n type: string\n description: name of the account\n example: Data Pulse FY24\n accountOwnerId:\n type: string\n description: salesforce account owner id\n example: 0073x000005ChMyQKK\n opportunities:\n type: array\n description: list of opportunities to which the activity is mapped to\n items:\n type: object\n properties:\n opportunityId:\n type: string\n description: salesforce opportunity id\n example: 0064x00000MaqIEAAZ\n opportunityName:\n type: string\n description: name of the opportunity\n example: Data Pulse FY24\n opportunityOwnerId:\n type: string\n description: salesforce opportunity owner id\n example: 0073x000005ChMyQKK\n participants:\n type: array\n description: list of participants in the activity\n items:\n type: object\n properties:\n name:\n type: string\n description: name of the participant\n example: Ava Turner\n email:\n type: string\n description: email address of the participant\n example:
[email protected]\n sfdcUserId:\n type: string\n description: salesforce user id of the participant (will be empty in case of external participant)\n example: 0073x000005ChMyQKK\n isInternal:\n type: boolean\n description: shows whether the participant is internal user or not\n example: true\n example:\n activities:\n - activityId: 58eaf6bae6bdab17f362400127170cc3\n activityType: MEETING\n activityOwnerId: 0073x000005ChMyQKK\n activityOrganiserId: 0044x000005ChMyQQA\n subject: Data Pulse <> Clari Sync\n date: '1702906200000'\n accounts:\n - accountId: 0014x000018I6EVAA0\n accountName: Data Pulse Inc.\n accountOwnerId: 0073x000005ChMyQKK\n opportunities:\n - opportunityId: 0064x00000MaqIEAAZ\n opportunityName: Data Pulse FY24\n opportunityOwnerId: 0073x000005ChMyQKK\n participants:\n - name: Ava Turner\n email:
[email protected]\n sfdcUserId: 0044x000005ChMyQQA\n isInternal: true\n - name: Aiden Lewis\n email:
[email protected]\n sfdcUserId: 0073x000005ChMyQKK\n isInternal: true\n - name: Samuel Martin\n email:
[email protected]\n sfdcUserId: ''\n isInternal: false\n '/ingest/schema/{entity}/field':\n post:\n summary: Add picklist | multi-picicklist values\n description: This API lets us add <code>picklist</code> | <code>multi-picklist</code> values to a field of an appropriate type for a particular org of a partner\n operationId: ingestAddPicklist\n tags:\n - Ingestion API\n parameters:\n - name: apikey\n in: header\n description: Authentication token\n required: true\n schema:\n type: string\n - name: partnerkey\n in: header\n description: Partner key\n required: true\n schema:\n type: string\n - name: entity\n in: path\n description: the entity to upload data to\n required: true\n schema:\n type: string\n example: account\n requestBody:\n required: true\n content:\n application/json:\n schema:\n type: object\n properties:\n fieldName:\n description: Name of the field to which the values are going to be added\n type: string\n example: isACustomerOf\n fieldType:\n description: Type of the field to which the values are going to be added\n type: string\n example: multipicklist\n enum:\n - picklist\n - multipicklist\n values:\n description: The values which are going to be added to the given field type\n type: array\n items:\n type: string\n example:\n - Customer1\n - Customer2\n - Customer3\n responses:\n '200':\n description: The list of values provided have been added successfully\n content:\n application/json:\n schema:\n type: object\n properties:\n message:\n type: string\n example: picklist options have been updated successfully.\n '400':\n description: The provided field type is not valid or supported\n content:\n application/json:\n schema:\n type: array\n items:\n title: Ingestion bad request Error Object\n type: object\n description: Details of an bad request error encountered when ingesting data.\n required:\n - errorCode\n - errorSummary\n properties:\n errorCode:\n description: a short error code\n type: string\n enum:\n - INVALID_INPUT_FORMAT\n description:\n description: description of the error code\n type: string\n example:\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: 'FieldType is not supported. Supported FieldTypes are [picklist, multipicklist]'\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Oops! %s is not defined in schema.\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: Oops! Partner Schema is not defined.\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: One or more error in validating field details. Please provide picklist options.\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: One or more error in validating field details. fieldType cannot be empty or null\n - errorCode: INVALID_INPUT_FORMAT\n errorSummary: One or more error in validating field details. fieldName cannot be empty or null\n '401':\n $ref: '#/paths/~1ingest~1entity~1%7Bentity%7D/post/responses/401'\n '429':\n $ref: '#/paths/~1ingest~1job~1%7BjobId%7D/get/responses/429'\n '500':\n $ref: '#/paths/~1ingest~1entity~1%7Bentity%7D/post/responses/500'\n get:\n summary: Get picklist | multi-picicklist values\n description: This API lets us get the list of <code>picklist</code> | <code>multi-picklist</code> values which has been added to a field of an appropriate type for a particular org of a partner\n operationId: ingestGetPicklist\n tags:\n - Ingestion API\n parameters:\n - name: apikey\n in: header\n description: Authentication token\n required: true\n schema:\n type: string\n - name: partnerkey\n in: header\n description: Partner key\n required: true\n schema:\n type: string\n - name: entity\n in: path\n description: the entity to upload data to\n required: true\n schema:\n type: string\n - name: fieldNames\n in: query\n description: List of field names in a comma seperated format to get the values for only those fields\n required: false\n schema:\n type: string\n example: 'fieldName1,fieldName2'\n responses:\n '200':\n description: The list of values provided have been added successfully\n content:\n application/json:\n schema:\n type: object\n properties:\n fieldName:\n type: array\n items:\n type: string\n example:\n - fieldValue1\n - fieldValue2\n '401':\n $ref: '#/paths/~1ingest~1entity~1%7Bentity%7D/post/responses/401'\n '429':\n $ref: '#/paths/~1ingest~1job~1%7BjobId%7D/get/responses/429'\nsecurity:\n - api_key: []\ncomponents:\n securitySchemes:\n api_key:\n type: apiKey\n name: apikey\n in: header\n"