openapi: 3.0.0
info:
  contact:
    x-twitter: elmah_io
  description: This is the public REST API for elmah.io. All of the integrations communicates with elmah.io through this API.<br/><br/>For additional help getting started with the API, visit the following help articles:<br/><ul><li>[Using the REST API](https://docs.elmah.io/using-the-rest-api/)</li><li>[Where is my API key?](https://docs.elmah.io/where-is-my-api-key/)</li><li>[Where is my log ID?](https://docs.elmah.io/where-is-my-log-id/)</li><li>[How to configure API key permissions](https://docs.elmah.io/how-to-configure-api-key-permissions/)</li></ul>
  title: elmah.io API
  version: v3
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://twitter.com/elmah_io/profile_image?size=original
  x-origin:
    - format: openapi
      url: https://api.elmah.io/swagger/docs/v3
      version: "3.0"
  x-providerName: elmah.io
security:
  - api_key: []
paths:
  /v3/deployments:
    get:
      description: "Required permission: `deployments_read`"
      operationId: Deployments_GetAll
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Deployment"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/Deployment"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/Deployment"
                type: array
          description: Request for deployments successful.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the deployment API without deployment tracking enabled or trial expired.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fetch a list of deployments.
      tags:
        - Deployments
    post:
      description: "Required permission: `deployments_write`"
      operationId: Deployments_Create
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateDeployment"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateDeployment"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CreateDeployment"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateDeployment"
        description: The deployment object to create.
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateDeploymentResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CreateDeploymentResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CreateDeploymentResult"
          description: Deployment was created.
        "400":
          description: Model not valid.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the deployment API without deployment tracking enabled or trial expired.
        "404":
          description: Specified log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Create a new deployment.
      tags:
        - Deployments
  "/v3/deployments/{id}":
    delete:
      description: "This endpoint doesn't clear the version number of messages already annotated with this deployment version.<br/><br/>Required permission: `deployments_delete`"
      operationId: Deployments_Delete
      parameters:
        - description: The ID of the deployment to delete.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "204":
          description: Deployment was deleted.
        "400":
          description: Id not specified.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the deployment API without deployment tracking enabled or trial expired.
        "404":
          description: Deployment with specified id not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Delete a deployment by its ID.
      tags:
        - Deployments
    get:
      description: "Required permission: `deployments_read`"
      operationId: Deployments_Get
      parameters:
        - description: The ID of the deployment to fetch.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Deployment"
            text/json:
              schema:
                $ref: "#/components/schemas/Deployment"
            text/plain:
              schema:
                $ref: "#/components/schemas/Deployment"
          description: Request for deployment successful.
        "400":
          description: Id not specified.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Deployment with specified id not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fetch a deployment by its ID.
      tags:
        - Deployments
  "/v3/heartbeats/{logId}/{id}":
    post:
      description: "Required permission: `heartbeats_write`"
      operationId: Heartbeats_Create
      parameters:
        - description: The ID of the heartbeat check.
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: The ID of the log containing the heartbeat check.
          in: path
          name: logId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateHeartbeat"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateHeartbeat"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CreateHeartbeat"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateHeartbeat"
        description: The details of the heartbeat.
      responses:
        "200":
          description: Heartbeat was created.
        "400":
          description: Model not valid.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the heartbeats API without heartbeats enabled or trial expired.
        "404":
          description: The specified log or heartbeat was not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Create a new heartbeat.
      tags:
        - Heartbeats
  /v3/logs:
    get:
      description: "Required permission: `logs_read`"
      operationId: Logs_GetAll
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Log"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/Log"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/Log"
                type: array
          description: Request for logs successful.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fetch a list of logs.
      tags:
        - Logs
    post:
      description: "Required permission: `logs_write`"
      operationId: Logs_Create
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateLog"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateLog"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CreateLog"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateLog"
        description: The log object to create.
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateLogResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CreateLogResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CreateLogResult"
          description: Log where successfully created.
        "400":
          description: Something wrong with the parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Create a new log.
      tags:
        - Logs
  "/v3/logs/{id}":
    get:
      description: "Required permission: `logs_read`"
      operationId: Logs_Get
      parameters:
        - description: The ID of the log to fetch.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Log"
            text/json:
              schema:
                $ref: "#/components/schemas/Log"
            text/plain:
              schema:
                $ref: "#/components/schemas/Log"
          description: Request for log successful.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fetch a log by its ID.
      tags:
        - Logs
  "/v3/logs/{id}/_diagnose":
    get:
      description: "Required permission: `messages_write`"
      operationId: Logs_Diagnose
      parameters:
        - description: The ID of the log to diagnose.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  type: string
                type: array
            text/json:
              schema:
                items:
                  type: string
                type: array
            text/plain:
              schema:
                items:
                  type: string
                type: array
          description: Log was diagnosed.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Help diagnose logging problems.
      tags:
        - Logs
  "/v3/logs/{id}/_disable":
    post:
      description: "Required permission: `logs_write`"
      operationId: Logs_Disable
      parameters:
        - description: The ID of the log to disable.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Log was disabled.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Disable a log by its ID.
      tags:
        - Logs
  "/v3/logs/{id}/_enable":
    post:
      description: "Required permission: `logs_write`"
      operationId: Logs_Enable
      parameters:
        - description: The ID of the log to enable.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Log was enabled.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Enable a log by its ID.
      tags:
        - Logs
  "/v3/messages/{logId}":
    delete:
      description: "Required permission: `messages_delete`"
      operationId: Messages_DeleteAll
      parameters:
        - description: The ID of the log containing the message.
          in: path
          name: logId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/Search"
      responses:
        "200":
          description: Messages where deleted.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Deletes a list of messages by logid and query.
      tags:
        - Messages
    get:
      description: "Required permission: `messages_read`"
      operationId: Messages_GetAll
      parameters:
        - description: The ID of the log containing the messages.
          in: path
          name: logId
          required: true
          schema:
            type: string
        - description: The page number of the result.
          in: query
          name: pageIndex
          schema:
            default: 0
            format: int32
            type: integer
        - description: The number of messages to load (max 100) or 15 if not set.
          in: query
          name: pageSize
          schema:
            default: 15
            format: int32
            type: integer
        - description: A full-text or Lucene query to limit the messages by.
          in: query
          name: query
          schema:
            type: string
        - description: A start date and time to search from (not included).
          in: query
          name: from
          schema:
            format: date-time
            type: string
        - description: An end date and time to search to (not included).
          in: query
          name: to
          schema:
            format: date-time
            type: string
        - description: Include headers like server variables and cookies in the result (slower).
          in: query
          name: includeHeaders
          schema:
            default: false
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessagesResult"
            text/json:
              schema:
                $ref: "#/components/schemas/MessagesResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/MessagesResult"
          description: Log found and may contain messages.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fetch messages from a log.
      tags:
        - Messages
    post:
      description: "Required permission: `messages_write`"
      operationId: Messages_Create
      parameters:
        - description: The ID of the log which should contain the new message.
          in: path
          name: logId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              $ref: "#/components/schemas/CreateMessage"
          application/json:
            schema:
              $ref: "#/components/schemas/CreateMessage"
          application/json-patch+json:
            schema:
              $ref: "#/components/schemas/CreateMessage"
          text/json:
            schema:
              $ref: "#/components/schemas/CreateMessage"
        description: The message object to create.
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateMessageResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CreateMessageResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CreateMessageResult"
          description: Message was not created.
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateMessageResult"
            text/json:
              schema:
                $ref: "#/components/schemas/CreateMessageResult"
            text/plain:
              schema:
                $ref: "#/components/schemas/CreateMessageResult"
          description: Message was successfully created.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "413":
          description: Message too large. Messages must not exceed 256 kb. As additional information, some fields are trimmed down when processed on the backend.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Create a new message.
      tags:
        - Messages
  "/v3/messages/{logId}/_bulk":
    post:
      description: "Required permission: `messages_write`"
      operationId: Messages_CreateBulk
      parameters:
        - description: The ID of the log which should contain the new messages.
          in: path
          name: logId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/*+json:
            schema:
              items:
                $ref: "#/components/schemas/CreateMessage"
              type: array
          application/json:
            schema:
              items:
                $ref: "#/components/schemas/CreateMessage"
              type: array
          application/json-patch+json:
            schema:
              items:
                $ref: "#/components/schemas/CreateMessage"
              type: array
          text/json:
            schema:
              items:
                $ref: "#/components/schemas/CreateMessage"
              type: array
        description: The messages to create.
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/CreateBulkMessageResult"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/CreateBulkMessageResult"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/CreateBulkMessageResult"
                type: array
          description: Zero or more messages where successfully created. Check the response body for details.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Create one or more new messages.
      tags:
        - Messages
  "/v3/messages/{logId}/_fix":
    post:
      description: "Required permission: `messages_write`"
      operationId: Messages_FixAll
      parameters:
        - description: The ID of the log containing the messages.
          in: path
          name: logId
          required: true
          schema:
            type: string
      requestBody:
        $ref: "#/components/requestBodies/Search"
      responses:
        "200":
          description: Messages where marked as fixed.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Mark a list of messages as fixed by logid and query.
      tags:
        - Messages
  "/v3/messages/{logId}/{id}":
    delete:
      description: "Required permission: `messages_delete`"
      operationId: Messages_Delete
      parameters:
        - description: The ID of the message to delete.
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: The ID of the log containing the message.
          in: path
          name: logId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Message where deleted.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log or message not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Delete a message by its ID.
      tags:
        - Messages
    get:
      description: "Required permission: `messages_read`"
      operationId: Messages_Get
      parameters:
        - description: The ID of the message to fetch.
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: The ID of the log containing the message.
          in: path
          name: logId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Message"
            text/json:
              schema:
                $ref: "#/components/schemas/Message"
            text/plain:
              schema:
                $ref: "#/components/schemas/Message"
          description: Message found.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Message not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fetch a message by its ID.
      tags:
        - Messages
  "/v3/messages/{logId}/{id}/_fix":
    post:
      description: "Required permission: `messages_write`"
      operationId: Messages_Fix
      parameters:
        - description: The ID of the message to fix.
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: The ID of the log containing the message.
          in: path
          name: logId
          required: true
          schema:
            type: string
        - description: If set to true, all instances of the log message are set to fixed.
          in: query
          name: markAllAsFixed
          schema:
            default: false
            type: boolean
      responses:
        "200":
          description: Message was fixed.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Message not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fix a message by its ID.
      tags:
        - Messages
  "/v3/messages/{logId}/{id}/_hide":
    post:
      description: "Required permission: `messages_write`"
      operationId: Messages_Hide
      parameters:
        - description: The ID of the message to hide.
          in: path
          name: id
          required: true
          schema:
            type: string
        - description: The ID of the log containing the message.
          in: path
          name: logId
          required: true
          schema:
            type: string
      responses:
        "200":
          description: Message was hidden.
        "400":
          description: Something wrong with the query parameters.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Message not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Hide a message by its ID.
      tags:
        - Messages
  "/v3/sourcemaps/{logId}":
    post:
      description: "Required permission: `sourcemaps_write`"
      operationId: SourceMaps_CreateOrUpdate
      parameters:
        - description: The ID of the log which should contain the minified JavaScript and source map.
          in: path
          name: logId
          required: true
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                MinifiedJavaScript:
                  description: The minified JavaScript file. Only files with an extension of .js and content type of text/javascript will be accepted.
                  format: binary
                  type: string
                Path:
                  description: "An URL to the online minified JavaScript file. The URL can be absolute or relative but will always be converted to a relative path (no protocol, domain, and query parameters).\r

                    elmah.io uses this path to lookup any lines in a JS stack trace that will need de-minification."
                  format: uri
                  maxLength: 2048
                  type: string
                SourceMap:
                  description: The source map file. Only files with an extension of .map and content type of application/json will be accepted.
                  format: binary
                  type: string
              required:
                - Path
                - SourceMap
                - MinifiedJavaScript
              type: object
        required: true
      responses:
        "200":
          description: Source map was successfully created.
        "400":
          description: Something wrong with the query parameters or form.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the logs API but the trial expired.
        "404":
          description: Log not found.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Create or update a translation between a minified JavaScript path to the minified JavaScript and source map files.
      tags:
        - SourceMaps
  /v3/uptimechecks:
    get:
      description: "Required permission: `uptimechecks_read`"
      operationId: UptimeChecks_GetAll
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/UptimeCheck"
                type: array
            text/json:
              schema:
                items:
                  $ref: "#/components/schemas/UptimeCheck"
                type: array
            text/plain:
              schema:
                items:
                  $ref: "#/components/schemas/UptimeCheck"
                type: array
          description: Request for uptime checks successful.
        "401":
          description: API key not valid or no access to resource.
        "402":
          description: Tried to call the uptime checks API but the trial expired.
        "429":
          description: A maximum of 500 requests per minute and 3600 requests per hour are permitted
      summary: Fetch a list of uptime checks. Currently in closed beta. Get in contact to get access to this endpoint.
      tags:
        - UptimeChecks
components:
  requestBodies:
    Search:
      content:
        application/*+json:
          schema:
            $ref: "#/components/schemas/Search"
        application/json:
          schema:
            $ref: "#/components/schemas/Search"
        application/json-patch+json:
          schema:
            $ref: "#/components/schemas/Search"
        text/json:
          schema:
            $ref: "#/components/schemas/Search"
      description: A search object containing query, time filters etc.
  schemas:
    Breadcrumb:
      description: A breadcrumb represent a step preceding a log message.
      properties:
        action:
          description: "An action representing the breadcrumb. You can set a custom action or use one of the built-in: click, submit, navigation, request, error."
          type: string
        dateTime:
          description: The date and time in UTC of the breadcrumb. If no date and time is provided, we will use the current date and time in UTC.
          format: date-time
          type: string
        message:
          description: A message representing the breadcrumb. This should elaborate on the action.
          type: string
        severity:
          description: "An enum value representing the severity of this breadcrumb. The following values are allowed: Verbose, Debug, Information, Warning, Error, Fatal."
          type: string
      type: object
    CreateBulkMessageResult:
      properties:
        location:
          description: The location of the created message if StatusCode equals Created.
          format: uri
          type: string
        statusCode:
          description: "Status code of the individual messages as if it were being created through the non-bulk endpoint.\r

            If a message was succesfully created, the status code will be 201 and location will contain an URL.\r

            If a message was ignored, the status code will be 200 and the location will be empty."
          format: int32
          type: integer
      type: object
    CreateDeployment:
      properties:
        created:
          description: When was this deployment created in UTC. Defaults to current time if not specified.
          format: date-time
          type: string
        description:
          description: Optional description of this deployment. Can be markdown or clear text.
          maxLength: 8192
          type: string
        logId:
          description: "As default, deployments are attached all logs of the organization. If you want a deployment to\r

            attach to a single log only, set this to the ID of that log."
          type: string
        userEmail:
          description: "The email of the person responsible for creating this deployment. This can be the email taken from\r

            your deployment server (like Azure DevOps or Octopus)."
          format: email
          maxLength: 320
          type: string
        userName:
          description: "The name of the person responsible for creating this deployment. This can be the name taken from\r

            your deployment server (like Azure DevOps or Octopus)."
          maxLength: 256
          type: string
        version:
          description: "The version number of this deployment. The value of version can be a SemVer compliant string or any other\r

            syntax that you are using as your version numbering scheme."
          maxLength: 256
          type: string
      required:
        - version
      type: object
    CreateDeploymentResult:
      properties:
        location:
          description: The location of the created deployment.
          format: uri
          type: string
      type: object
    CreateHeartbeat:
      properties:
        application:
          description: "Optional string to identify which application logged this message. You can use this if you have multiple applications and services logging to the same log.\r

            If not set, the application name \"Heartbeats\" will be set on all log messages generated from this heartbeat."
          maxLength: 256
          type: string
        reason:
          description: If result is "Degraded" or "Unhealthy" you can use this property to specify why.
          maxLength: 8192
          type: string
        result:
          description: The result of this heartbeat. Can be "Healthy, "Degraded", or "Unhealthy". Defaults to "Healthy"
          maxLength: 9
          type: string
        took:
          description: "Optional long for specifying how many milliseconds it took to execute the task resulting in this heartbeat. This can be used to get a better overview\r

            of how long a scheduled task or service is running or to figure out if the grace period should be increased."
          format: int64
          type: integer
        version:
          description: "Optional string to identify which version of your application logged this message. If not specified, any errors, warnings, or information messages will get\r

            the newest version number created through deployment tracking as with normal log messages."
          maxLength: 256
          type: string
      type: object
    CreateLog:
      properties:
        color:
          description: "Color of the log. The color must be one of the following (green on unknown value or missing):\r

            green, lightgreen, lime, yellow, orange, deeporange, red, pink, purple, deeppurple, blue, lightblue"
          type: string
        disabled:
          description: "Set to true to disable the log on creation. Defaults to false. A log can be enabled/disabled\r

            afterwards by calling the _disable and _enable endpoints."
          type: boolean
        environmentName:
          description: "Environment name of the new log. Must match an environment name (case insensitive).\r

            If a matching environment name was not found or the property is not set, the log\r

            will appear under \"Other\" in the UI."
          type: string
        name:
          description: Name of the new log.
          maxLength: 256
          type: string
      required:
        - name
      type: object
    CreateLogResult:
      properties:
        location:
          description: The location of the created log.
          format: uri
          type: string
      type: object
    CreateMessage:
      properties:
        application:
          description: Used to identify which application logged this message. You can use this if you have multiple applications and services logging to the same log
          type: string
        breadcrumbs:
          description: A list of breadcrumbs preceding this log message.
          items:
            $ref: "#/components/schemas/Breadcrumb"
          type: array
        category:
          description: "The log message category. Category can be a string of choice but typically contain a logging category set by a logging framework like NLog or Serilog.\r

            When logging through a logging framework, this field will be provided by the framework and not something that needs to be set manually."
          type: string
        code:
          description: "Code can be used to include source code related to the log message. The code will typically span from a few lines before the line causing the log message\r

            to a few lines after. For now, all lines above 21 will be removed. This makes room for showing 10 lines before the logging line, the logging line, and\r

            10 lines after the logging line. Don't include a very large string in this property since that will quickly make the entire messages exceed the max limit\r

            of 256 kb."
          type: string
        cookies:
          description: A key/value pair of cookies. This property only makes sense for logging messages related to web requests.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        correlationId:
          description: "CorrelationId can be used to group similar log messages together into a single discoverable batch. A correlation ID could be a session ID from ASP.NET Core,\r

            a unique string spanning multiple microsservices handling the same request, or similar."
          type: string
        data:
          description: "A key/value pair of user-defined fields and their values. When logging an exception, the Data dictionary of\r

            the exception is copied to this property. You can add additional key/value pairs, by modifying the Data\r

            dictionary on the exception or by supplying additional key/values to this API."
          items:
            $ref: "#/components/schemas/Item"
          type: array
        dateTime:
          description: The date and time in UTC of the message. If you don't provide us with a value in dateTime, we will set the current date and time in UTC.
          format: date-time
          type: string
        detail:
          description: A longer description of the message. For errors this could be a stacktrace, but it's really up to you what to log in there.
          type: string
        form:
          description: A key/value pair of form fields and their values. This property makes sense if logging message related to users inputting data in a form.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        hostname:
          description: The hostname of the server logging the message.
          type: string
        method:
          description: If message relates to a HTTP request, you may send the HTTP method of that request. If you don't provide us with a method, we will try to find a key named REQUEST_METHOD in serverVariables.
          type: string
        queryString:
          description: A key/value pair of query string parameters. This property makes sense if logging message related to a HTTP request.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        serverVariables:
          description: A key/value pair of server values. Server variables are typically related to handling requests in a webserver but could be used for other types of information as well.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        severity:
          description: "An enum value representing the severity of this message. The following values are allowed: Verbose, Debug, Information, Warning, Error, Fatal"
          type: string
        source:
          description: The source of the code logging the message. This could be the assembly name.
          type: string
        statusCode:
          description: "If the message logged relates to a HTTP status code, you can put the code in this property. This would probably only be relevant for errors,\r

            but could be used for logging successful status codes as well."
          format: int32
          type: integer
        title:
          description: The textual title or headline of the message to log.
          type: string
        titleTemplate:
          description: "The title template of the message to log. This property can be used from logging frameworks that supports\r

            structured logging like: \"{user} says {quote}\". In the example, titleTemplate will be this string and title\r

            will be \"Gilfoyle says It's not magic. It's talent and sweat\"."
          type: string
        type:
          description: The type of message. If logging an error, the type of the exception would go into type but you can put anything in there, that makes sense for your domain.
          type: string
        url:
          description: If message relates to a HTTP request, you may send the URL of that request. If you don't provide us with an URL, we will try to find a key named URL in serverVariables.
          type: string
        user:
          description: An identification of the user triggering this message. You can put the users email address or your user key into this property.
          type: string
        version:
          description: "Versions can be used to distinguish messages from different versions of your software. The value of version can be a SemVer compliant string or any other\r

            syntax that you are using as your version numbering scheme."
          type: string
      type: object
    CreateMessageResult:
      properties:
        location:
          description: The location of the created message.
          format: uri
          type: string
      type: object
    Deployment:
      properties:
        created:
          description: When was this deployment created.
          format: date-time
          type: string
        createdBy:
          description: "The elmah.io id of the user creating this deployment. Since deployments are created on a subscription,\r

            the CreatedBy will contain the id of the user with the subscription."
          type: string
        description:
          description: Sescription of this deployment in markdown or clear text.
          type: string
        id:
          description: The ID of this deployment.
          type: string
        logId:
          description: "If the deployment is attached a single log, this property is set to the ID of that log.\r

            If null, the deployment is attached all logs on the organization."
          type: string
        userEmail:
          description: The email of the person responsible for creating this deployment.
          type: string
        userName:
          description: The name of the person responsible for creating this deployment.
          type: string
        version:
          description: "The version number of this deployment. The value of version can be a SemVer compliant string or any other\r

            syntax that you are using as your version numbering scheme."
          type: string
      type: object
    Item:
      description: Represents a key value pair.
      properties:
        key:
          description: The key of the item.
          type: string
        value:
          description: The value of the item.
          type: string
      type: object
    Log:
      properties:
        color:
          description: "Color of the log. The color will always be one of the following (green being the default):\r

            green, lightgreen, lime, yellow, orange, deeporange, red, pink, purple, deeppurple, blue, lightblue"
          type: string
        disabled:
          description: "Returns true if the log is currently disabled. A log can be disabled either through the API\r

            or in the elmah.io UI."
          type: boolean
        environmentName:
          description: "Environment name this log is in or \"Other\" if not in an environment.\r

            \"Other\" is chosen over null to mimic the experience in the elmah.io UI."
          type: string
        id:
          description: ID of the log.
          type: string
        name:
          description: Name of the log.
          type: string
      type: object
    Message:
      properties:
        application:
          description: Used to identify which application logged this message. You can use this if you have multiple applications and services logging to the same log
          type: string
        breadcrumbs:
          description: A list of breadcrumbs preceding this log message.
          items:
            $ref: "#/components/schemas/Breadcrumb"
          type: array
        category:
          description: The log message category. Category can be a string of choice but typically contain a logging category set by a logging framework like NLog or Serilog.
          type: string
        code:
          description: "Code can be used to include source code related to the log message. The code will typically span from a few lines before the line causing the log message\r

            to a few lines after. For now, all lines above 21 will be removed. This makes room for showing 10 lines before the logging line, the logging line, and\r

            10 lines after the logging line. Don't include a very large string in this property since that will quickly make the entire messages exceed the max limit\r

            of 256 kb."
          type: string
        cookies:
          description: A key/value pair of cookies. This property only makes sense for logging messages related to web requests.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        correlationId:
          description: "CorrelationId can be used to group similar log messages together into a single discoverable batch. A correlation ID could be a session ID from ASP.NET Core,\r

            a unique string spanning multiple microsservices handling the same request, or similar."
          type: string
        data:
          description: "A key/value pair of user-defined fields and their values. When logging an exception, the Data dictionary of\r

            the exception is copied to this property. You can add additional key/value pairs, by modifying the Data\r

            dictionary on the exception or by supplying additional key/values to this API."
          items:
            $ref: "#/components/schemas/Item"
          type: array
        dateTime:
          description: The date and time in UTC of the message. If you don't provide us with a value in dateTime, we will set the current date and time in UTC.
          format: date-time
          type: string
        detail:
          description: A longer description of the message. For errors this could be a stacktrace, but it's really up to you what to log in there.
          type: string
        form:
          description: A key/value pair of form fields and their values. This property makes sense if logging message related to users inputting data in a form.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        hostname:
          description: The hostname of the server logging the message.
          type: string
        id:
          description: The ID of this message.
          type: string
        method:
          description: If message relates to a HTTP request, you may send the HTTP method of that request. If you don't provide us with a method, we will try to find a key named REQUEST_METHOD in serverVariables.
          type: string
        queryString:
          description: A key/value pair of query string parameters. This property makes sense if logging message related to a HTTP request.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        serverVariables:
          description: A key/value pair of server values. Server variables are typically related to handling requests in a webserver but could be used for other types of information as well.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        severity:
          description: "An enum value representing the severity of this message. The following values are allowed: Verbose, Debug, Information, Warning, Error, Fatal"
          type: string
        source:
          description: The source of the code logging the message. This could be the assembly name.
          type: string
        statusCode:
          description: "If the message logged relates to a HTTP status code, you can put the code in this property. This would probably only be relevant for errors,\r

            but could be used for logging successful status codes as well."
          format: int32
          type: integer
        title:
          description: The textual title or headline of the message to log.
          type: string
        titleTemplate:
          description: "The title template of the message to log. This property can be used from logging frameworks that supports\r

            structured logging like: \"{user} says {quote}\". In the example, titleTemplate will be this string and title\r

            will be \"Gilfoyle says It's not magic. It's talent and sweat\"."
          type: string
        type:
          description: The type of message. If logging an error, the type of the exception would go into type but you can put anything in there, that makes sense for your domain.
          type: string
        url:
          description: If message relates to a HTTP request, you may send the URL of that request. If you don't provide us with an URL, we will try to find a key named URL in serverVariables.
          type: string
        user:
          description: An identification of the user triggering this message. You can put the users email address or your user key into this property.
          type: string
        version:
          description: "Versions can be used to distinguish messages from different versions of your software. The value of version can be a SemVer compliant string or any other\r

            syntax that you are using as your version numbering scheme."
          type: string
      type: object
    MessageOverview:
      properties:
        application:
          description: Used to identify which application logged this message. You can use this if you have multiple applications and services logging to the same log
          type: string
        breadcrumbs:
          description: A list of breadcrumbs preceding this log message.
          items:
            $ref: "#/components/schemas/Breadcrumb"
          type: array
        category:
          description: The log message category. Category can be a string of choice but typically contain a logging category set by a logging framework like NLog or Serilog.
          type: string
        code:
          description: "Code can be used to include source code related to the log message. The code will typically span from a few lines before the line causing the log message\r

            to a few lines after. For now, all lines above 21 will be removed. This makes room for showing 10 lines before the logging line, the logging line, and\r

            10 lines after the logging line. Don't include a very large string in this property since that will quickly make the entire messages exceed the max limit\r

            of 256 kb."
          type: string
        cookies:
          description: A key/value pair of cookies. This property only makes sense for logging messages related to web requests.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        correlationId:
          description: "CorrelationId can be used to group similar log messages together into a single discoverable batch. A correlation ID could be a session ID from ASP.NET Core,\r

            a unique string spanning multiple microsservices handling the same request, or similar."
          type: string
        data:
          description: "A key/value pair of user-defined fields and their values. When logging an exception, the Data dictionary of\r

            the exception is copied to this property. You can add additional key/value pairs, by modifying the Data\r

            dictionary on the exception or by supplying additional key/values to this API."
          items:
            $ref: "#/components/schemas/Item"
          type: array
        dateTime:
          description: The date and time in UTC of the message. If you don't provide us with a value in dateTime, we will set the current date and time in UTC.
          format: date-time
          type: string
        detail:
          description: A longer description of the message. For errors this could be a stacktrace, but it's really up to you what to log in there.
          type: string
        form:
          description: A key/value pair of form fields and their values. This property makes sense if logging message related to users inputting data in a form.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        hostname:
          description: The hostname of the server logging the message.
          type: string
        id:
          description: The ID of this message.
          type: string
        method:
          description: If message relates to a HTTP request, you may send the HTTP method of that request. If you don't provide us with a method, we will try to find a key named REQUEST_METHOD in serverVariables.
          type: string
        queryString:
          description: A key/value pair of query string parameters. This property makes sense if logging message related to a HTTP request.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        serverVariables:
          description: A key/value pair of server values. Server variables are typically related to handling requests in a webserver but could be used for other types of information as well.
          items:
            $ref: "#/components/schemas/Item"
          type: array
        severity:
          description: "An enum value representing the severity of this message. The following values are allowed: Verbose, Debug, Information, Warning, Error, Fatal"
          type: string
        source:
          description: The source of the code logging the message. This could be the assembly name.
          type: string
        statusCode:
          description: "If the message logged relates to a HTTP status code, you can put the code in this property. This would probably only be relevant for errors,\r

            but could be used for logging successful status codes as well."
          format: int32
          type: integer
        title:
          description: The textual title or headline of the message to log.
          type: string
        titleTemplate:
          description: "The title template of the message to log. This property can be used from logging frameworks that supports\r

            structured logging like: \"{user} says {quote}\". In the example, titleTemplate will be this string and title\r

            will be \"Gilfoyle says It's not magic. It's talent and sweat\"."
          type: string
        type:
          description: The type of message. If logging an error, the type of the exception would go into type but you can put anything in there, that makes sense for your domain.
          type: string
        url:
          description: If message relates to a HTTP request, you may send the URL of that request. If you don't provide us with an URL, we will try to find a key named URL in serverVariables.
          type: string
        user:
          description: An identification of the user triggering this message. You can put the users email address or your user key into this property.
          type: string
        version:
          description: "Versions can be used to distinguish messages from different versions of your software. The value of version can be a SemVer compliant string or any other\r

            syntax that you are using as your version numbering scheme."
          type: string
      type: object
    MessagesResult:
      properties:
        messages:
          description: Log messages.
          items:
            $ref: "#/components/schemas/MessageOverview"
          type: array
        total:
          description: The total number of log messages found.
          format: int32
          type: integer
      type: object
    Search:
      properties:
        from:
          description: Search from this date.
          format: date-time
          type: string
        query:
          description: Lucene query.
          type: string
        to:
          description: Search to this date.
          format: date-time
          type: string
      type: object
    UptimeCheck:
      properties:
        id:
          description: ID of the uptime check.
          type: string
        name:
          description: Name of the uptime check.
          type: string
        status:
          description: Current status of the uptime check.
          type: string
        url:
          description: Url of the uptime check.
          type: string
      type: object
  securitySchemes:
    api_key:
      description: All requests on the elmah.io API needs to include an API key. The API key can be provided as part of the query string or as a request header. The name of the API key needs to be <code>api_key</code>.<br/><br/>Additional resources:<br/><ul><li>[Where is my API key?](https://docs.elmah.io/where-is-my-api-key/)</li><li>[How to configure API key permissions](https://docs.elmah.io/how-to-configure-api-key-permissions/)</li></ul>
      in: query
      name: api_key
      type: apiKey
