Cycloid Organization Logs API

Operations on the logs of a project

Operations 2

GET /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources Get proj env log sources #
GET /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources/{log_source_id} Get proj env log entries #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cycloid:cycloid-organization-logs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cycloid-organization-logs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This is the Cycloid's API Reference. It provides descriptions, syntax, and usage examples for each of the actions and data types available within our console.
  title: Welcome! Organization Logs API
  termsOfService: https://console.cycloid.io/terms
  contact:
    name: The Great Owl
    url: https://www.cycloid.io
    email: contact@cycloid.io
  license:
    name: Cycloid @copyrights
    url: https://cycloid.io
  version: '0'
servers:
- url: https://http-api.cycloid.io
security:
- api_key: []
- api_key_query: []
tags:
- description: Operations on the logs of a project
  name: Organization Logs
paths:
  /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources:
    parameters:
    - $ref: '#/components/parameters/organization_canonical'
    - $ref: '#/components/parameters/project_canonical'
    - $ref: '#/components/parameters/environment_canonical'
    get:
      description: Get the list of sources configured for the specified project's environment of the organization.
      tags:
      - Organization Logs
      operationId: getProjEnvLogSources
      responses:
        '200':
          description: The list of sources related to the project's environment.
          content:
            application/json:
              schema:
                description: The list of log sources.
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/LogSource'
              example:
                data:
                - id: access.log
                - id: exception.log
        '403':
          $ref: '#/components/responses/not_enough_permissions'
        '404':
          $ref: '#/components/responses/not_found_entity_in_path'
        default:
          $ref: '#/components/responses/unexpected_error'
      summary: Get proj env log sources
      x-summary-source: derived
  ? /organizations/{organization_canonical}/projects/{project_canonical}/environments/{environment_canonical}/logs/sources/{log_source_id}
  : parameters:
    - $ref: '#/components/parameters/organization_canonical'
    - $ref: '#/components/parameters/project_canonical'
    - $ref: '#/components/parameters/environment_canonical'
    - $ref: '#/components/parameters/log_source_id'
    get:
      description: 'Get log''s entries information of the specified log stream stream which is associated to the project''s environment of the specified organization. The log''s entries to request can be filtered using the unix timestamp ranges and/or the query as follow - When unix timestamps are defined, they are converted to the specific

        query language used by the configured underlying log system (e.g AWS

        Cloud Watch, ElasticSearch, etc.) and appended to the query value

        respecting the syntax but not checking the content of the query, which

        means that if the whole query must be enclosed by curly brackets hence

        the query value is enclosed on them, the time range filter will be

        added inside not just appended at the end, because otherwise it would

        cause wrong syntax; on the other hand, not checking the content means

        that if the query contains a timerange filter, the whole query will

        contain both and the result will be the one returned by on the

        underlying log system, being an error or not.

        - When no time range are defined, then the query is used as it has been

        send, there is not modification on the query to send to the underlying

        log system, hence the result will be the one returned by it.

        - If none of the filters (timestamp range and query) are sent, then

        a 422 status code will be responded.

        - Some constraints are established by the underlying log system, so

        depending which one has been configured some parameters may be

        required or not.'
      tags:
      - Organization Logs
      operationId: getProjEnvLogEntries
      parameters:
      - $ref: '#/components/parameters/timestamp_range_begin_query'
      - $ref: '#/components/parameters/timestamp_range_end_query'
      - $ref: '#/components/parameters/raw_query'
      responses:
        '200':
          description: The list of log's entries which are comprehended by the begin and end timestamps and are selected by the optional query.
          content:
            application/json:
              schema:
                description: The list of log lines
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/LogSourceEntry'
              example:
                data:
                - host: theowlhost
                  message: 178.154.171.21 - - [21/Sep/2017:02:51:22 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg HTTP/1.0" 302 773 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
                  timestamp: 0123456789000
                - host: mymon
                  message: 141.8.132.28 - - [21/Sep/2017:02:51:27 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
                  timestamp: 0123456795000
                - host: theowlhost
                  message: 46.229.168.65 - - [21/Sep/2017:02:51:28 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)"
                  timestamp: 0123456800000
                - host: mymon
                  message: 141.10.132.56 - - [21/Sep/2017:02:51:56 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
                  timestamp: 0123456805000
                - host: burrowing
                  message: 46.229.168.65 - - [21/Sep/2017:02:52:03 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)"
                  timestamp: 0123456810000
                - host: theowlhost
                  message: 141.10.132.56 - - [21/Sep/2017:02:52:23 +0200] "GET /1663-large_default/tienda-de-campana-basica-para-2-personas.jpg/ HTTP/1.0" 302 731 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
                  timestamp: 0123456823000
                - host: elf
                  message: 123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)"
                  timestamp: 0123456834000
                - host: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaelf
                  message: 123.229.145.65 - - [21/Sep/2017:02:52:49 +0200] "GET /mosquitera-enrollable-lateral.html HTTP/1.0" 200 25313 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)"
                  timestamp: 0123456834000
        '403':
          $ref: '#/components/responses/not_enough_permissions'
        '404':
          $ref: '#/components/responses/not_found_entity_in_path'
        '422':
          $ref: '#/components/responses/unprocessable_entity'
        default:
          $ref: '#/components/responses/unexpected_error'
      summary: Get proj env log entries
      x-summary-source: derived
components:
  responses:
    not_found_entity_in_path:
      description: The response sent when any of the entities present in the path is not found.
      headers:
        Content-Length:
          description: The length of the response body in octets (8-bit bytes).
          schema:
            type: integer
            format: uint64
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorPayload'
          example:
            errors:
            - code: NotFoundEntity
              message: Entity not found
    not_enough_permissions:
      description: The authenticated user cannot perform the operation because, it doesn't have permissions for such operation.
      headers:
        Content-Length:
          description: The length of the response body in octets (8-bit bytes).
          schema:
            type: integer
            format: uint64
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorPayload'
          example:
            errors:
            - code: Unauthorized
              message: Not enough permissions to perform the operation
    unprocessable_entity:
      description: All the custom errors that are generated from the Cycloid API
      headers:
        Content-Length:
          description: The length of the response body in octets (8-bit bytes).
          schema:
            type: integer
            format: uint64
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorPayload'
          example:
            errors:
            - code: SomeCode
              message: some error
    unexpected_error:
      description: The response sent when an unexpected error happened, as known as an internal server error.
      headers:
        Content-Length:
          description: The length of the response body in octets (8-bit bytes).
          schema:
            type: integer
            format: uint64
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorPayload'
          example:
            errors:
            - code: Unexpected
              message: Server Internal error
  parameters:
    log_source_id:
      description: A unique identifier, which group log's entries under under a context, established by the source.
      name: log_source_id
      in: path
      required: true
      schema:
        type: string
        minLength: 1
    timestamp_range_end_query:
      description: The unix timestamp in milliseconds, which indicate the end of the time range.
      name: end
      in: query
      schema:
        type: integer
        format: uint64
    environment_canonical:
      description: The environment canonical to use as part of a path
      name: environment_canonical
      in: path
      required: true
      schema:
        type: string
        maxLength: 100
        minLength: 1
        pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$
    raw_query:
      description: A free text which the content depends of the context of the API endpoint. Can be a free text value or a complete query expressed of supported query language.
      name: query
      in: query
      schema:
        type: string
        minLength: 1
    organization_canonical:
      description: A canonical of an organization.
      name: organization_canonical
      in: path
      required: true
      schema:
        type: string
        maxLength: 100
        minLength: 2
        pattern: ^[a-z0-9]([a-z0-9\-_]*[a-z0-9])?$
    project_canonical:
      description: A canonical of a project.
      name: project_canonical
      in: path
      required: true
      schema:
        type: string
        maxLength: 100
        minLength: 1
        pattern: ^[\da-zA-Z]+(?:(?:[\da-zA-Z\-._]+)?[\da-zA-Z])?$
    timestamp_range_begin_query:
      description: The unix timestamp in milliseconds, which indicate the start of the time range.
      name: begin
      in: query
      schema:
        type: integer
        format: uint64
  schemas:
    ErrorPayload:
      description: 'The payload used by the server to response to the client with an Error, those errors could be any of the ones listed [here](https://github.com/cycloidio/youdeploy-http-api/blob/develop/errors/code.go#L10), only the CODE of the error is the one that is guaranteed to not change between the same major version, the MESSAGE could change.

        '
      title: Error Payload
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetailsItem'
        request_id:
          type: string
    LogSourceEntry:
      description: A log's entry which pertains to a specific log's source.
      title: Log entry
      required:
      - timestamp
      - host
      - message
      properties:
        host:
          description: The host registered with the log's entry.
          type: string
          minLength: 1
        message:
          description: The original (i.e. raw) log's entry.
          type: string
          minLength: 1
        timestamp:
          description: The timestamp extracted from the original log entry in order to be homogeneous to all the different supported underlying log systems.
          type: string
          format: uint64
    ErrorDetailsItem:
      description: Represents an item of the list of details of an error.
      title: Error details item
      required:
      - message
      - code
      properties:
        code:
          type: string
        details:
          type: array
          items:
            type: string
        message:
          type: string
    LogSource:
      description: The data associated to a log's source. Each log source is the context of a list of entries which are registered through the time.
      title: A log source
      required:
      - id
      properties:
        id:
          type: string
          minLength: 1
  securitySchemes:
    api_key:
      description: The API authorization is done with JWT tokens
      type: apiKey
      name: Authorization
      in: header
    api_key_query:
      description: The API authorization is done with JWT tokens in the query string
      type: apiKey
      name: api_key
      in: query