openapi: 3.2.0 info: title: Gr4vy Monitoring API description: The Gr4vy API. version: 1.0.0 tags: - name: Monitoring description: Manage monitoring and alerting. paths: /monitoring/metrics: post: tags: - Monitoring summary: Create a monitoring metric description: Create a monitoring metric with spec model and params. operationId: create_monitoring_metric security: - OAuth2PasswordBearer: - monitoring.write parameters: - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MonitoringMetricCreate' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringMetric' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true get: tags: - Monitoring summary: List all monitoring metrics description: List all created monitoring metrics. operationId: list_monitoring_metrics security: - OAuth2PasswordBearer: - monitoring.read parameters: - name: samples_timestamp_interval in: query required: true schema: type: string description: 'Filters the samples to the set of data aggregated over the duration of the specified period. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' examples: - 2025-01-01T00:00:00/P2H title: Samples Timestamp Interval description: 'Filters the samples to the set of data aggregated over the duration of the specified period. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' - name: search in: query required: false schema: anyOf: - type: string - type: 'null' description: The search term to filter monitoring metrics by. examples: - metric-12345 title: Search description: The search term to filter monitoring metrics by. - name: cursor in: query required: false schema: anyOf: - type: string - type: 'null' description: A pointer to the page of results to return. examples: - ZXhhbXBsZTE title: Cursor description: A pointer to the page of results to return. - name: limit in: query required: false schema: type: integer maximum: 10 minimum: 1 description: The maximum number of items that are returned. examples: - 10 default: 5 title: Limit description: The maximum number of items that are returned. - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringMetrics' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true /monitoring/metrics/{metric_id}: put: tags: - Monitoring summary: Update a monitoring metric description: Update a monitoring metric. operationId: update_monitoring_metric security: - OAuth2PasswordBearer: - monitoring.write parameters: - name: metric_id in: path required: true schema: type: string format: uuid description: The ID of the metric examples: - 7d9c3fa3-6f56-42b1-bf35-4463ca6ab452 title: Metric Id description: The ID of the metric - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MonitoringMetricUpdate' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringMetric' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true get: tags: - Monitoring summary: Get a monitoring metric description: Retrieves a monitoring metric with a subset of its samples operationId: get_monitoring_metric security: - OAuth2PasswordBearer: - monitoring.read parameters: - name: metric_id in: path required: true schema: type: string format: uuid description: The ID of the metric examples: - 7d9c3fa3-6f56-42b1-bf35-4463ca6ab452 title: Metric Id description: The ID of the metric - name: samples_timestamp_interval in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Timestamp interval for querying a subset of the metric samples. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' examples: - 2025-01-01T00:00:00/P1D title: Samples Timestamp Interval description: 'Timestamp interval for querying a subset of the metric samples. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringMetric' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true delete: tags: - Monitoring summary: Delete a monitoring metric description: Deletes a monitoring metric. operationId: delete_monitoring_metric security: - OAuth2PasswordBearer: - monitoring.write parameters: - name: metric_id in: path required: true schema: type: string format: uuid description: The ID of the metric examples: - 7d9c3fa3-6f56-42b1-bf35-4463ca6ab452 title: Metric Id description: The ID of the metric - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. responses: '200': description: Successful Response content: application/json: schema: {} '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true /monitoring/metrics/{metric_id}/incidents: get: tags: - Monitoring summary: List monitoring incidents for a specific metric description: List monitoring incidents for a specific metric. operationId: list_monitoring_metric_incidents security: - OAuth2PasswordBearer: - monitoring.read parameters: - name: metric_id in: path required: true schema: type: string format: uuid description: The ID of the metric examples: - 7d9c3fa3-6f56-42b1-bf35-4463ca6ab452 title: Metric Id description: The ID of the metric - name: timestamp_interval in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Filters the incidents to those that were created within the specified interval. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' examples: - 2025-01-01T00:00:00/2025-01-02T00:00:00 title: Timestamp Interval description: 'Filters the incidents to those that were created within the specified interval. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' - name: cursor in: query required: false schema: anyOf: - type: string - type: 'null' description: A pointer to the page of results to return. examples: - ZXhhbXBsZTE title: Cursor description: A pointer to the page of results to return. - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: The maximum number of items that are returned. examples: - 20 default: 20 title: Limit description: The maximum number of items that are returned. - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringIncidents' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true /monitoring/incidents: get: tags: - Monitoring summary: List all monitoring incidents description: List all monitoring incidents. operationId: list_monitoring_incidents security: - OAuth2PasswordBearer: - monitoring.read parameters: - name: timestamp_interval in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Filters the incidents to those that were created within the specified interval. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' examples: - 2025-01-01T00:00:00/2025-01-02T00:00:00 title: Timestamp Interval description: 'Filters the incidents to those that were created within the specified interval. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' - name: cursor in: query required: false schema: anyOf: - type: string - type: 'null' description: A pointer to the page of results to return. examples: - ZXhhbXBsZTE title: Cursor description: A pointer to the page of results to return. - name: limit in: query required: false schema: type: integer maximum: 100 minimum: 1 description: The maximum number of items that are returned. examples: - 20 default: 20 title: Limit description: The maximum number of items that are returned. - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringIncidents' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true /monitoring/incidents/{incident_id}: get: tags: - Monitoring summary: Get a monitoring incident description: Retrieves a monitoring incident operationId: get_monitoring_incident security: - OAuth2PasswordBearer: - monitoring.read parameters: - name: incident_id in: path required: true schema: type: string format: uuid description: The ID of the incident examples: - 0f1a61f4-8808-46ae-9001-358d86cc1d13 title: Incident Id description: The ID of the incident - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringIncident' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true put: tags: - Monitoring summary: Update a monitoring incident description: Update a monitoring incident. operationId: update_monitoring_incident security: - OAuth2PasswordBearer: - monitoring.write parameters: - name: incident_id in: path required: true schema: type: string format: uuid description: The ID of the monitoring incident examples: - 7d9c3fa3-6f56-42b1-bf35-4463ca6ab452 title: Incident Id description: The ID of the monitoring incident - name: x-gr4vy-merchant-account-id in: header required: false schema: anyOf: - type: string - type: 'null' description: The ID of the merchant account to use for this request. examples: - default title: X-Gr4Vy-Merchant-Account-Id description: The ID of the merchant account to use for this request. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MonitoringIncidentUpdate' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/MonitoringIncident' '400': description: The request was invalid. content: application/json: schema: $ref: '#/components/schemas/Error400' '401': description: The request was unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error401' '403': description: The credentials were invalid or the caller did not have permission to act on the resource. content: application/json: schema: $ref: '#/components/schemas/Error403' '404': description: The resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error404' '405': description: The request method was not allowed. content: application/json: schema: $ref: '#/components/schemas/Error405' '409': description: A duplicate record was found. content: application/json: schema: $ref: '#/components/schemas/Error409' '425': description: The request was too early. content: application/json: schema: $ref: '#/components/schemas/Error425' '429': description: Too many requests were made. content: application/json: schema: $ref: '#/components/schemas/Error429' '500': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error500' '502': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error502' '504': description: The server encountered an error. content: application/json: schema: $ref: '#/components/schemas/Error504' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-speakeasy-ignore: true components: schemas: MonitoringDebouncingIncidentPolicyParams: properties: create_after_n: type: integer maximum: 10.0 minimum: 1.0 title: Create After N close_after_n: type: integer maximum: 10.0 minimum: 1.0 title: Close After N additionalProperties: false type: object required: - create_after_n - close_after_n title: MonitoringDebouncingIncidentPolicyParams MonitoringAuthRateMetricSpecParams: properties: filters: $ref: '#/components/schemas/MonitoringMetricFilters' description: The filters to apply on data. examples: - datetime_range: PT60M/hour_start payment_method_bin: - '123456' - '411111' payment_method_scheme: - visa additionalProperties: false type: object required: - filters title: MonitoringAuthRateMetricSpecParams Error401: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `unauthorized` default: unauthorized examples: - unauthorized status: type: integer title: Status description: Always `401`. default: 401 examples: - 401 message: type: string title: Message description: A human readable message that provides more context to the error. default: No valid API authentication found examples: - No valid API authentication found details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error401 MonitoringMetricCreatorType: type: string enum: - private_key - user title: MonitoringMetricCreatorType MonitoringMetricFilters: properties: datetime_range: type: string title: Datetime Range description: 'Filters the results to the set of data aggregated over the duration of the specified period. The duration must be between 5 to 60 minutes. This parameter should be in the format of [ISO 8601 interval](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) while the duration only format is not accepted. Start and end are either a datetime in ISO 8601 format or a placeholder which is one of the following: `now`, `hour_start` and `hour_end`.' examples: - PT60M/hour_end method: anyOf: - items: anyOf: - $ref: '#/components/schemas/Method' - type: 'null' type: array - type: 'null' title: Method description: Filters the results to only include transactions that were processed using the specified payment method. This parameter also accepts `null` to include transactions that have a null for this field. examples: - card payment_method_bin: anyOf: - items: anyOf: - type: string maxLength: 6 minLength: 6 pattern: ^\d+$ - type: 'null' type: array - type: 'null' title: Payment Method Bin description: Filters the results to only include transactions that used the specified payment method bin. The payment method bin is the first 6 digits of the card number. This parameter also accepts `null` to include transactions that have a null for this field. examples: - '123456' payment_method_scheme: anyOf: - items: anyOf: - $ref: '#/components/schemas/CardScheme' - type: 'null' type: array - type: 'null' title: Payment Method Scheme description: Filters the results to only include transactions that were processed with the specified payment method scheme. This parameter also accepts `null` to include transactions that have a null for this field. examples: - visa payment_service_id: anyOf: - items: anyOf: - type: string format: uuid - type: 'null' type: array - type: 'null' title: Payment Service Id description: Filters the results to only include transactions that were processed with the specified payment service ID. This parameter also accepts `null` to include transactions that have a null for this field. examples: - 06319aec-2c0f-4c7b-8af1-047ca037fc021 additionalProperties: false type: object required: - datetime_range title: MonitoringMetricFilters Error404: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `not_found` default: not_found examples: - not_found status: type: integer title: Status description: Always `404`. default: 404 examples: - 404 message: type: string title: Message description: A human readable message that provides more context to the error. default: The resource could not be found examples: - The resource could not be found details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error404 MonitoringDebouncingIncidentPolicy: properties: strategy: type: string const: debouncing title: Strategy default: debouncing params: $ref: '#/components/schemas/MonitoringDebouncingIncidentPolicyParams' additionalProperties: false type: object required: - params title: MonitoringDebouncingIncidentPolicy ErrorLocation: type: string enum: - query - body - path - header - unknown title: ErrorLocation Error425: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `too_early` default: too_early examples: - too_early status: type: integer title: Status description: Always `425`. default: 425 examples: - 425 message: type: string title: Message description: A human readable message that provides more context to the error. default: Generic error examples: - Request failed validation details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error425 MonitoringAuthRateSpec: properties: model: type: string const: auth_rate title: Model description: The monitoring metric model type. default: auth_rate examples: - auth_rate params: $ref: '#/components/schemas/MonitoringAuthRateMetricSpecParams' description: The parameters for the auth rate monitoring metric model. examples: - filters: datetime_range: PT60M/hour_start payment_method_bin: - '123456' - '411111' payment_method_scheme: - visa additionalProperties: false type: object required: - params title: MonitoringAuthRateSpec MonitoringMetric: properties: type: type: string const: monitoring.metric title: Type description: Always `monitoring.metric`. default: monitoring.metric examples: - monitoring.metric id: type: string format: uuid title: Id description: The ID of the monitoring metric. examples: - aadb3ea8-5ad6-408b-8c3d-82da77c8d619 merchant_account_id: type: string title: Merchant Account Id description: The ID of the merchant account the monitoring metric belongs to. examples: - default display_name: type: string title: Display Name description: The display name of the monitoring metric. examples: - GBP transactions in the last hour | Auth rate > 90% spec: additionalProperties: true type: object title: Spec description: The monitoring metric specification. examples: - model: auth_rate params: filters: datetime_range: PT60M/hour_start payment_method_bin: - '123456' - '111111' payment_method_scheme: - visa alerting_policy: anyOf: - additionalProperties: true type: object - type: 'null' title: Alerting Policy description: The alerting policy of the monitoring metric. examples: - params: alert_gt: 99.9 alert_lt: 90 strategy: threshold alerting_policy_updated_at: anyOf: - type: string format: date-time - type: 'null' title: Alerting Policy Updated At description: The date and time when the alerting policy was last updated. examples: - '2025-10-28T11:47:32.566063+00:00' incident_policy: anyOf: - additionalProperties: true type: object - type: 'null' title: Incident Policy description: The incident policy of the monitoring metric. examples: - params: close_after_n: 6 create_after_n: 3 strategy: debouncing incident_policy_updated_at: anyOf: - type: string format: date-time - type: 'null' title: Incident Policy Updated At description: The date and time when the incident policy was last updated. examples: - '2025-10-28T11:47:32.566063+00:00' created_at: type: string format: date-time title: Created At description: The date and time when the monitoring metric was first created. examples: - '2025-10-28T11:47:32.566063+00:00' creator_id: type: string format: uuid title: Creator Id description: The ID of the user who created the monitoring metric. examples: - 3d2e0043-9459-4e86-8dad-e2afd9892f3c creator_type: $ref: '#/components/schemas/MonitoringMetricCreatorType' description: The type of monitoring metric creator. examples: - user creator_display_name: type: string title: Creator Display Name description: The display name of the monitoring metric creator. examples: - John Smith updated_at: type: string format: date-time title: Updated At description: The date and time when the monitoring metric was last updated. examples: - '2025-10-28T11:47:32.566063+00:00' samples_view: anyOf: - items: $ref: '#/components/schemas/MonitoringSample' type: array - type: 'null' title: Samples View description: The requested subset of monitoring metric samples. additionalProperties: false type: object required: - id - merchant_account_id - display_name - spec - alerting_policy - alerting_policy_updated_at - incident_policy - incident_policy_updated_at - created_at - creator_id - creator_type - creator_display_name - updated_at - samples_view title: MonitoringMetric HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError MonitoringMetricCreate: properties: display_name: type: string maxLength: 200 minLength: 1 title: Display Name description: The display name for the monitoring metric. examples: - GBP transactions in the last hour | Auth rate > 90% spec: oneOf: - $ref: '#/components/schemas/MonitoringAuthRateSpec' title: Spec description: The monitoring metric specification. examples: - model: auth_rate params: filters: datetime_range: PT60M/hour_start payment_method_bin: - '123456' - '411111' payment_method_scheme: - visa discriminator: propertyName: model mapping: auth_rate: '#/components/schemas/MonitoringAuthRateSpec' alerting_policy: anyOf: - oneOf: - $ref: '#/components/schemas/MonitoringThresholdAlertingPolicy' discriminator: propertyName: strategy mapping: threshold: '#/components/schemas/MonitoringThresholdAlertingPolicy' - type: 'null' title: Alerting Policy incident_policy: anyOf: - oneOf: - $ref: '#/components/schemas/MonitoringDebouncingIncidentPolicy' discriminator: propertyName: strategy mapping: debouncing: '#/components/schemas/MonitoringDebouncingIncidentPolicy' - type: 'null' title: Incident Policy additionalProperties: false type: object required: - display_name - spec - alerting_policy - incident_policy title: MonitoringMetricCreate ErrorDetail: properties: location: $ref: '#/components/schemas/ErrorLocation' description: The part of the request where the property can be found that caused the error. examples: - body pointer: anyOf: - type: string format: json-pointer - type: string title: Pointer description: A JSON pointer for the particular property that caused the error. examples: - /currency message: type: string title: Message description: A human-readdable explanation of the error. examples: - 'Unknown ISO 4217 currency code: USX' type: type: string title: Type description: The type of error that was raised for this property. examples: - value_error additionalProperties: false type: object required: - location - pointer - message - type title: ErrorDetail Error405: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `method_not_allowed` default: method_not_allowed examples: - method_not_allowed status: type: integer title: Status description: Always `405`. default: 405 examples: - 405 message: type: string title: Message description: A human readable message that provides more context to the error. default: Method Not Allowed examples: - Method Not Allowed details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error405 MonitoringThresholdAlertingPolicy: properties: strategy: type: string const: threshold title: Strategy default: threshold params: $ref: '#/components/schemas/MonitoringThresholdAlertingPolicyParams' additionalProperties: false type: object required: - params title: MonitoringThresholdAlertingPolicy MonitoringMetricUpdate: properties: display_name: type: string maxLength: 200 minLength: 1 title: Display Name description: The display name for the monitoring metric. examples: - GBP transactions in the last hour | Auth rate > 90% alerting_policy: anyOf: - oneOf: - $ref: '#/components/schemas/MonitoringThresholdAlertingPolicy' discriminator: propertyName: strategy mapping: threshold: '#/components/schemas/MonitoringThresholdAlertingPolicy' - type: 'null' title: Alerting Policy incident_policy: anyOf: - oneOf: - $ref: '#/components/schemas/MonitoringDebouncingIncidentPolicy' discriminator: propertyName: strategy mapping: debouncing: '#/components/schemas/MonitoringDebouncingIncidentPolicy' - type: 'null' title: Incident Policy additionalProperties: false type: object required: - display_name - alerting_policy - incident_policy title: MonitoringMetricUpdate Error429: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `too_many_requests` default: too_many_requests examples: - too_many_requests status: type: integer title: Status description: Always `429`. default: 429 examples: - 429 message: type: string title: Message description: A human readable message that provides more context to the error. default: Generic error examples: - Request failed validation details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error429 Error500: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `server_error` default: server_error examples: - server_error status: type: integer title: Status description: Always `500`. default: 500 examples: - 500 message: type: string title: Message description: A human readable message that provides more context to the error. default: Request could not be processed examples: - Request could not be processed details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error500 MonitoringIncident: properties: type: type: string const: monitoring.incident title: Type description: Always `monitoring.incident`. default: monitoring.incident examples: - monitoring.incident id: type: string format: uuid title: Id description: The ID of the monitoring incident. examples: - c2e4ffaf-2463-4e8a-a9a2-b33590f3b579 metric_id: anyOf: - type: string format: uuid - type: 'null' title: Metric Id description: The ID of the monitoring metric that the incident relates to. This value is null if the monitoring metric has been deleted. examples: - aadb3ea8-5ad6-408b-8c3d-82da77c8d619 merchant_account_id: type: string title: Merchant Account Id description: The ID of the merchant account the monitoring incident belongs to. examples: - default display_name: type: string title: Display Name description: The monitoring metric display name captured at the time of incident creation. examples: - GBP transactions in the last hour | Auth rate > 95% spec: additionalProperties: true type: object title: Spec description: The monitoring metric specification captured at the time of incident creation. examples: - model: auth_rate params: filters: datetime_range: PT60M/hour_start payment_method_bin: - '123456' - '111111' payment_method_scheme: - visa alerting_policy: anyOf: - additionalProperties: true type: object - type: 'null' title: Alerting Policy description: The monitoring metric alerting policy captured at the time of incident creation. examples: - params: alert_gt: 99.9 alert_lt: 90 strategy: threshold incident_policy: anyOf: - additionalProperties: true type: object - type: 'null' title: Incident Policy description: The monitoring metric incident policy captured at the time of incident creation. examples: - params: close_after_n: 6 create_after_n: 3 strategy: debouncing notes: anyOf: - type: string - type: 'null' title: Notes description: Notes for the monitoring incident. examples: - PSP-related incident created_at: type: string format: date-time title: Created At description: The date and time when the monitoring incident was first created. examples: - '2025-10-28T11:47:32.566063+00:00' updated_at: type: string format: date-time title: Updated At description: The date and time when the monitoring incident was last updated. examples: - '2025-10-28T12:03:05.120019+00:00' closed_at: anyOf: - type: string format: date-time - type: 'null' title: Closed At description: The date and time when the monitoring incident was closed. examples: - '2025-10-28T11:57:32.566063+00:00' additionalProperties: false type: object required: - id - metric_id - merchant_account_id - display_name - spec - alerting_policy - incident_policy - notes - created_at - updated_at - closed_at title: MonitoringIncident MonitoringSample: properties: timestamp: type: string format: date-time title: Timestamp description: The date and time when the sample was taken. examples: - '2025-10-28T11:50:00+00:00' - '2025-10-28T11:49:00+00:00' - '2025-10-28T11:48:00+00:00' - '2025-10-28T11:46:00+00:00' value: anyOf: - type: integer - type: number - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Value description: The value of the sampled monitoring metric. examples: - 100 - 25 - 96.12 - 99.44 healthy: anyOf: - type: boolean - type: 'null' title: Healthy description: Indicates whether the sample value is healthy. examples: - null - false - true - true incident_related: type: boolean title: Incident Related description: Indicates whether the sample is related to an incident. examples: - false - true additionalProperties: false type: object required: - timestamp - value - healthy - incident_related title: MonitoringSample Error504: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `gateway_timeout` default: gateway_timeout examples: - gateway_timeout status: type: integer title: Status default: 504 message: type: string title: Message description: A human readable message that provides more context to the error. default: Request could not be processed examples: - Request could not be processed details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error504 Error400: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `bad_request` default: bad_request examples: - bad_request status: type: integer title: Status description: Always `400`. default: 400 examples: - 400 message: type: string title: Message description: A human readable message that provides more context to the error. default: Generic error examples: - Request failed validation details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error400 MonitoringIncidents: properties: items: items: $ref: '#/components/schemas/MonitoringIncident' type: array title: Items description: A list of items returned for this request. limit: type: integer maximum: 100.0 minimum: 1.0 title: Limit description: The number of items for this page. default: 20 examples: - 20 next_cursor: anyOf: - type: string maxLength: 1000 minLength: 1 - type: 'null' title: Next Cursor description: The cursor pointing at the next page of items. examples: - ZXhhbXBsZTE previous_cursor: anyOf: - type: string maxLength: 1000 minLength: 1 - type: 'null' title: Previous Cursor description: The cursor pointing at the previous page of items. examples: - Xkjss7asS additionalProperties: false type: object required: - items title: MonitoringIncidents Error502: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `bad_gateway` default: bad_gateway examples: - bad_gateway status: type: integer title: Status description: Always `502`. default: 502 examples: - 502 message: type: string title: Message description: A human readable message that provides more context to the error. default: Request could not be processed examples: - Request could not be processed details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error502 ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError MonitoringMetrics: properties: items: items: $ref: '#/components/schemas/MonitoringMetric' type: array title: Items description: A list of items returned for this request. limit: type: integer maximum: 100.0 minimum: 1.0 title: Limit description: The number of items for this page. default: 20 examples: - 20 next_cursor: anyOf: - type: string maxLength: 1000 minLength: 1 - type: 'null' title: Next Cursor description: The cursor pointing at the next page of items. examples: - ZXhhbXBsZTE previous_cursor: anyOf: - type: string maxLength: 1000 minLength: 1 - type: 'null' title: Previous Cursor description: The cursor pointing at the previous page of items. examples: - Xkjss7asS additionalProperties: false type: object required: - items title: MonitoringMetrics Error409: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `duplicate_record` default: duplicate_record examples: - duplicate_record status: type: integer title: Status description: Always `409`. default: 409 examples: - 409 message: type: string title: Message description: A human readable message that provides more context to the error. default: Generic error examples: - Request failed validation details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] resource_id: anyOf: - type: string - type: 'null' title: Resource Id description: The ID of the conflicting resource. examples: - cdc70639-cb9c-4222-a73f-b8ce39f7821b additionalProperties: false type: object title: Error409 Error403: properties: type: type: string const: error title: Type description: Always `error`. default: error examples: - error code: type: string title: Code description: Always `forbidden` default: forbidden examples: - forbidden status: type: integer title: Status description: Always `403`. default: 403 examples: - 403 message: type: string title: Message description: A human readable message that provides more context to the error. default: Generic error examples: - Request failed validation details: items: $ref: '#/components/schemas/ErrorDetail' type: array title: Details description: A list of details that further ellaborate on the error. default: [] additionalProperties: false type: object title: Error403 CardScheme: type: string enum: - accel - amex - bancontact - carte-bancaire - cirrus - culiance - dankort - diners-club - discover - eftpos-australia - elo - hipercard - jcb - maestro - mastercard - mir - nyce - other - pulse - qcard - rupay - star - uatp - unionpay - visa title: CardScheme MonitoringIncidentUpdate: properties: notes: anyOf: - type: string maxLength: 1000 minLength: 1 - type: 'null' title: Notes description: Notes for the monitoring incident. examples: - PSP-related incident additionalProperties: false type: object required: - notes title: MonitoringIncidentUpdate Method: type: string enum: - abitab - affirm - afterpay - alipay - alipayhk - applepay - arcuspaynetwork - bacs - bancontact - bank - bcp - becs - bitpay - blik - ach - boleto - boost - breb - capitec - card - cashapp - cashappafterpay - chaseorbital - clearpay - click-to-pay - custom_push - custom_redirect - custom_tokenize - dana - dcb - dlocal - duitnow - ebanx - eckoh - efecty - eps - everydaypay - gcash - gem - gemds - gift-card - giropay - givingblock - gocardless - googlepay - googlepay_pan_only - gopay - grabpay - ideal - interac - kakaopay - kcp - khipu - klarna - konbini - latitude - latitudeds - laybuy - linepay - linkaja - maybankqrpay - mercadopago - multibanco - multipago - nequi - netbanking - network-token - nupay - oney_10x - oney_12x - oney_3x - oney_4x - oney_6x - onlinebankingcz - onelink - ovo - oxxo - p24 - pagoefectivo - paybybank - payid - paymaya - paysquad - paypal - paypaldirectorder - paypalpaylater - paypay - payto - payvalida - paze - picpay - pix - plaid - pse - rabbitlinepay - razorpay - rapipago - redpagos - scalapay - sepa - servipag - seveneleven - sezzle - shopeepay - singteldash - smartpay - sofort - spei - stitch - swish - stripe - stripedd - stripetoken - tapi - tapifintechs - thaiqr - touchngo - truemoney - trustly - trustlyeurope - upi - venmo - vipps - waave - webpay - wechat - wero - yape - zippay title: Method MonitoringThresholdAlertingPolicyParams: properties: alert_gt: anyOf: - type: integer - type: number - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Alert Gt description: The value above which a sample is considered unhealthy. examples: - 50 alert_lt: anyOf: - type: integer - type: number - type: string pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$ - type: 'null' title: Alert Lt description: The value below which a sample is considered unhealthy. examples: - 50 additionalProperties: false type: object title: MonitoringThresholdAlertingPolicyParams securitySchemes: OAuth2PasswordBearer: type: oauth2 flows: password: scopes: embed: Shorthand for all gr4vy embed related scopes sessions.refresh: Refresh access-token anti-fraud-service-definitions.read: Read Anti Fraud Service Definitions anti-fraud-services.read: Read Anti Fraud Services api-key-pairs.read: Read API Key Pairs api-logs.read: Read API Logs apple-pay-certificates.read: Read Apple Pay Certificates audit-logs.read: Read Audit Logs bin-checker.read: Read BIN Checker buyers.read: Read Buyers buyers.billing-details.read: Read Billing Details card-scheme-definitions.read: Read Card Scheme Definitions checkout-sessions.read: Read Checkout Sessions connections.read: Read Connections digital-wallets.read: Read Digital Wallets flows.read: Read Flows gift-card-service-definitions.read: Read Gift Card Service Definitions gift-card-services.read: Read Gift Card Services gift-cards.read: Read Gift Cards merchant-accounts.read: Read Merchant Accounts payment-links.read: Read Payment Links payment-method-definitions.read: Read Payment Method Definitions payment-methods.read: Read Payment Methods payment-options.read: Read Payment Options payment-service-definitions.read: Read Payment Service Definitions payment-services.read: Read Payment Service payouts.read: Read Payouts reports.read: Read Reports roles.read: Read Roles three-ds-scenarios.read: Read 3DS Scenarios transactions.read: Read Transactions users.me.read: Read User Profile vault-forward.read: Read Vault Forward vault-forward-authentications.read: Read Vault Forward Authentications vault-forward-configs.read: Read Vault Forward Configurations vault-forward-definitions.read: Read Vault Forward Definitions webhook-subscriptions.read: Read Webhook Subscriptions business-contexts.read: Read Business Contexts health-dashboard.read: Read Health Dashboard metrics-explorer.read: Read Metrics Explorer monitoring.read: Read Monitoring reset.read: Read Reset sessions.read: Read Sessions users.read: Read Users anti-fraud-service-definitions.write: Write Anti Fraud Service Definitions anti-fraud-services.write: Write Anti Fraud Services api-key-pairs.write: Write API Key Pairs api-logs.write: Write API Logs apple-pay-certificates.write: Write Apple Pay Certificates audit-logs.write: Write Audit Logs bin-checker.write: Write BIN Checker buyers.write: Write Buyers buyers.billing-details.write: Write Billing Details card-scheme-definitions.write: Write Card Scheme Definitions checkout-sessions.write: Write Checkout Sessions connections.write: Write Connections digital-wallets.write: Write Digital Wallets flows.write: Write Flows gift-card-service-definitions.write: Write Gift Card Service Definitions gift-card-services.write: Write Gift Card Services gift-cards.write: Write Gift Cards merchant-accounts.write: Write Merchant Accounts payment-links.write: Write Payment Links payment-method-definitions.write: Write Payment Method Definitions payment-methods.write: Write Payment Methods payment-options.write: Write Payment Options payment-service-definitions.write: Write Payment Service Definitions payment-services.write: Write Payment Service payouts.write: Write Payouts reports.write: Write Reports roles.write: Write Roles three-ds-scenarios.write: Write 3DS Scenarios transactions.write: Write Transactions users.me.write: Write User Profile vault-forward.write: Write Vault Forward vault-forward-authentications.write: Write Vault Forward Authentications vault-forward-configs.write: Write Vault Forward Configurations vault-forward-definitions.write: Write Vault Forward Definitions webhook-subscriptions.write: Write Webhook Subscriptions business-contexts.write: Write Business Contexts health-dashboard.write: Write Health Dashboard metrics-explorer.write: Write Metrics Explorer monitoring.write: Write Monitoring reset.write: Write Reset sessions.write: Write Sessions users.write: Write Users tokenUrl: auth/token