Events API icon

Events API

1Password Events API Specification

COMMUNITYBEARER0 INSTALLS
OpenAPI Specificationv3.0
{
  "openapi": "3.0.0",
  "servers": [
    {
      "description": "1Password",
      "url": "https://events.1password.com"
    },
    {
      "description": "1Password CA",
      "url": "https://events.1password.ca"
    },
    {
      "description": "1Password EU",
      "url": "https://events.1password.eu"
    },
    {
      "description": "1Password Enterprise",
      "url": "https://events.ent.1password.com"
    }
  ],
  "info": {
    "description": "1Password Events API Specification.",
    "title": "Events API",
    "version": "1.0.0",
    "x-apisguru-categories": [
      "security"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_upload_wikimedia_org_wikipedia_commons_thumb_e_e3_1password-logo_svg_1280px-1password-logo_svg.svg"
    },
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://i.1password.com/media/1password-events-reporting/1password-events-api.yaml",
        "version": "3.0"
      }
    ],
    "x-providerName": "1password.com",
    "x-serviceName": "events"
  },
  "paths": {
    "/api/auth/introspect": {
      "get": {
        "operationId": "getAuthIntrospect",
        "responses": {
          "200": {
            "$ref": "#/components/responses/IntrospectResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "default": {
            "$ref": "#/components/responses/GenericErrorResponse"
          }
        },
        "security": [
          {
            "jwtsa": []
          }
        ],
        "summary": "Performs introspection of the provided Bearer JWT token",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v1/itemusages": {
      "post": {
        "description": "This endpoint requires your JSON Web Token to have the *itemusages* feature.",
        "operationId": "getItemUsages",
        "requestBody": {
          "$ref": "#/components/requestBodies/ItemUsagesRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ItemUsagesResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "default": {
            "$ref": "#/components/responses/GenericErrorResponse"
          }
        },
        "security": [
          {
            "jwtsa": []
          }
        ],
        "summary": "Retrieves item usages",
        "tags": [
          "api-v1"
        ]
      }
    },
    "/api/v1/signinattempts": {
      "post": {
        "description": "This endpoint requires your JSON Web Token to have the *signinattempts* feature.",
        "operationId": "getSignInAttempts",
        "requestBody": {
          "$ref": "#/components/requestBodies/SignInAttemptsRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/SignInAttemptsResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedErrorResponse"
          },
          "default": {
            "$ref": "#/components/responses/GenericErrorResponse"
          }
        },
        "security": [
          {
            "jwtsa": []
          }
        ],
        "summary": "Retrieves sign-in attempts",
        "tags": [
          "api-v1"
        ]
      }
    }
  },
  "components": {
    "examples": {
      "Cursor": {
        "summary": "Used for continued calling with a cursor",
        "value": {
          "cursor": "aGVsbG8hIGlzIGl0IG1lIHlvdSBhcmUgbG9va2luZyBmb3IK"
        }
      },
      "ResetCursor": {
        "summary": "Used for reseting the cursor",
        "value": {
          "limit": 100,
          "start_time": "2021-06-11T16:32:50-03:00"
        }
      }
    },
    "requestBodies": {
      "CursorRequest": {
        "content": {
          "application/json": {
            "examples": {
              "Continuing cursor": {
                "$ref": "#/components/examples/Cursor"
              },
              "Resetting cursor": {
                "$ref": "#/components/examples/ResetCursor"
              }
            },
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Cursor"
                },
                {
                  "$ref": "#/components/schemas/ResetCursor"
                }
              ]
            }
          }
        }
      },
      "ItemUsagesRequest": {
        "$ref": "#/components/requestBodies/CursorRequest"
      },
      "SignInAttemptsRequest": {
        "$ref": "#/components/requestBodies/CursorRequest"
      }
    },
    "responses": {
      "GenericErrorResponse": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "Generic error"
      },
      "IntrospectResponse": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Introspection"
            }
          }
        },
        "description": "Introspection object"
      },
      "ItemUsagesResponse": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ItemUsageItems"
            }
          }
        },
        "description": "Item usages response object"
      },
      "SignInAttemptsResponse": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SignInAttemptItems"
            }
          }
        },
        "description": "Sign-in attempts response object"
      },
      "UnauthorizedErrorResponse": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "description": "Unauthorized"
      }
    },
    "schemas": {
      "Action": {},
      "Client": {
        "description": "Metadata gathered about the client",
        "properties": {
          "app_name": {
            "example": "1Password Extension",
            "type": "string"
          },
          "app_version": {
            "example": "20127",
            "type": "string"
          },
          "ip_address": {
            "example": "13.227.95.22",
            "type": "string"
          },
          "os_name": {
            "example": "MacOSX",
            "type": "string"
          },
          "os_version": {
            "example": "10.15.6",
            "type": "string"
          },
          "platform_name": {
            "example": "Chrome",
            "type": "string"
          },
          "platform_version": {
            "description": "Depending on the platform used, this can be the version of the browser that the client extension is installed, the model of computer that the native application is installed or the machine's CPU version that the CLI was installed",
            "type": "string"
          }
        }
      },
      "Cursor": {
        "description": "Cursor",
        "properties": {
          "cursor": {
            "description": "Cursor to fetch more data if available or continue the polling process if required",
            "example": "aGVsbG8hIGlzIGl0IG1lIHlvdSBhcmUgbG9va2luZyBmb3IK",
            "type": "string"
          }
        }
      },
      "CursorCollection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Cursor"
          },
          {
            "properties": {
              "has_more": {
                "description": "Whether there may still be more data to fetch using the returned cursor. If true, the subsequent request could still be empty.",
                "type": "boolean"
              }
            }
          }
        ],
        "description": "Common cursor properties for collection responses"
      },
      "DateTimeRFC3339": {
        "example": "2020-06-11T16:32:50-03:00",
        "format": "date-time",
        "type": "string"
      },
      "Details": {
        "description": "Additional information about the sign-in attempt",
        "properties": {
          "value": {
            "description": "For firewall prevented sign-ins, the value is the chosen continent, country, etc. that blocked the sign-in attempt",
            "example": "Europe",
            "type": "string"
          }
        }
      },
      "Error": {
        "properties": {
          "Error": {
            "properties": {
              "Message": {
                "description": "The error message.",
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "Introspection": {
        "properties": {
          "Features": {
            "example": [
              "itemusages",
              "signinattempts"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "IssuedAt": {
            "$ref": "#/components/schemas/DateTimeRFC3339"
          },
          "UUID": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ItemUsage": {
        "description": "A single item usage object",
        "properties": {
          "action": {
            "$ref": "#/components/schemas/Action"
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "item_uuid": {
            "$ref": "#/components/schemas/UUID"
          },
          "timestamp": {
            "$ref": "#/components/schemas/DateTimeRFC3339"
          },
          "used_version": {
            "type": "integer"
          },
          "user": {
            "$ref": "#/components/schemas/User"
          },
          "uuid": {
            "$ref": "#/components/schemas/UUID"
          },
          "vault_uuid": {
            "$ref": "#/components/schemas/UUID"
          }
        }
      },
      "ItemUsageItems": {
        "allOf": [
          {
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/components/schemas/ItemUsage"
                },
                "type": "array"
              }
            }
          },
          {
            "$ref": "#/components/schemas/CursorCollection"
          }
        ],
        "description": "An object wrapping cursor properties and a list of items usages"
      },
      "ResetCursor": {
        "description": "Reset cursor",
        "properties": {
          "end_time": {
            "$ref": "#/components/schemas/DateTimeRFC3339"
          },
          "limit": {
            "maximum": 1000,
            "minimum": 1,
            "type": "number"
          },
          "start_time": {
            "$ref": "#/components/schemas/DateTimeRFC3339"
          }
        }
      },
      "SignInAttempt": {
        "description": "A single sign-in attempt object",
        "properties": {
          "category": {
            "enum": [
              "success",
              "credentials_failed",
              "mfa_failed",
              "modern_version_failed",
              "firewall_failed",
              "firewall_reported_success"
            ],
            "example": "firewall_failed",
            "type": "string"
          },
          "client": {
            "$ref": "#/components/schemas/Client"
          },
          "country": {
            "description": "Country ISO Code",
            "example": "France",
            "type": "string"
          },
          "details": {
            "$ref": "#/components/schemas/Details"
          },
          "session_uuid": {
            "$ref": "#/components/schemas/UUID"
          },
          "target_user": {
            "$ref": "#/components/schemas/User"
          },
          "timestamp": {
            "$ref": "#/components/schemas/DateTimeRFC3339"
          },
          "type": {
            "enum": [
              "credentials_ok",
              "mfa_ok",
              "password_secret_bad",
              "mfa_missing",
              "totp_disabled",
              "totp_bad",
              "totp_timeout",
              "u2f_disabled",
              "u2f_bad",
              "u2f_timout",
              "duo_disabled",
              "duo_bad",
              "duo_timeout",
              "duo_native_bad",
              "platform_secret_disabled",
              "platform_secret_bad",
              "platform_secret_proxy",
              "code_disabled",
              "code_bad",
              "code_timeout",
              "ip_blocked",
              "continent_blocked",
              "country_blocked",
              "anonymous_blocked",
              "all_blocked",
              "modern_version_missing",
              "modern_version_old"
            ],
            "example": "continent_blocked",
            "type": "string"
          },
          "uuid": {
            "$ref": "#/components/schemas/UUID"
          }
        }
      },
      "SignInAttemptItems": {
        "allOf": [
          {
            "properties": {
              "items": {
                "items": {
                  "$ref": "#/components/schemas/SignInAttempt"
                },
                "type": "array"
              }
            }
          },
          {
            "$ref": "#/components/schemas/CursorCollection"
          }
        ],
        "description": "An object wrapping cursor properties and a list of sign-in attempts"
      },
      "UUID": {
        "example": "56YE2TYN2VFYRLNSHKPW5NVT5E",
        "type": "string"
      },
      "User": {
        "description": "User object",
        "properties": {
          "email": {
            "format": "email",
            "type": "string"
          },
          "name": {
            "description": "Full name",
            "example": "Jack O'Neill",
            "type": "string"
          },
          "uuid": {
            "$ref": "#/components/schemas/UUID"
          }
        }
      }
    },
    "securitySchemes": {
      "jwtsa": {
        "bearerFormat": "JWT-SA",
        "description": "A JWT SA token issued to this service",
        "scheme": "bearer",
        "type": "http"
      }
    }
  }
}