{
  "openapi": "3.0.1",
  "info": {
    "title": "Portuguese Case Law: Court Decisions (DGSI)",
    "description": "⚖️ Search Portuguese case law in seconds: decisions of the Supreme Courts (STJ, STA), the five Relações and the Central Administrative Courts from the official dgsi.pt databases, with summary, descriptors and full text. Newest first, or get alerts for new decisions.",
    "version": "0.1",
    "x-build-id": "hI1xZP5jpD4uNRm7R"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yodeling_november~portuguese-case-law/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yodeling_november-portuguese-case-law",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/yodeling_november~portuguese-case-law/runs": {
      "post": {
        "operationId": "runs-sync-yodeling_november-portuguese-case-law",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/yodeling_november~portuguese-case-law/run-sync": {
      "post": {
        "operationId": "run-sync-yodeling_november-portuguese-case-law",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "title": "Search words",
            "type": "string",
            "description": "Words to find anywhere in the decision. As on dgsi.pt: AND, OR, NOT, \"exact phrase\" and * (e.g. arrend*). Leave empty for the latest decisions."
          },
          "courts": {
            "title": "Courts",
            "type": "array",
            "description": "Supreme courts, the five Relações, the two Central Administrative Courts and the Tribunal dos Conflitos.",
            "items": {
              "type": "string",
              "enum": [
                "STJ",
                "STA",
                "TRL",
                "TRP",
                "TRC",
                "TRG",
                "TRE",
                "TCAS",
                "TCAN",
                "TCONF"
              ],
              "enumTitles": [
                "STJ: Supremo Tribunal de Justiça",
                "STA: Supremo Tribunal Administrativo",
                "TRL: Tribunal da Relação de Lisboa",
                "TRP: Tribunal da Relação do Porto",
                "TRC: Tribunal da Relação de Coimbra",
                "TRG: Tribunal da Relação de Guimarães",
                "TRE: Tribunal da Relação de Évora",
                "TCAS: Tribunal Central Administrativo Sul",
                "TCAN: Tribunal Central Administrativo Norte",
                "TCONF: Tribunal dos Conflitos"
              ]
            },
            "default": [
              "STJ",
              "STA",
              "TRL",
              "TRP",
              "TRC",
              "TRG",
              "TRE",
              "TCAS",
              "TCAN",
              "TCONF"
            ]
          },
          "rapporteur": {
            "title": "Rapporteur (relator)",
            "type": "string",
            "description": "Only decisions written by this judge, e.g. ANA PAULA LOBO."
          },
          "descriptor": {
            "title": "Descriptor",
            "type": "string",
            "description": "Only decisions with this descriptor (keyword assigned by the court), e.g. ARRENDAMENTO URBANO."
          },
          "dateFrom": {
            "title": "Decided from",
            "type": "string",
            "description": "Decision date, YYYY-MM-DD. Without search words, rapporteur or descriptor, the last 30 days are used."
          },
          "dateTo": {
            "title": "Decided until",
            "type": "string",
            "description": "Decision date, YYYY-MM-DD."
          },
          "maxResultsPerCourt": {
            "title": "Max decisions per court",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Newest decisions first.",
            "default": 20
          },
          "includeFullText": {
            "title": "Include full text",
            "type": "boolean",
            "description": "The full decision as published, when the court published it (the summary is always included).",
            "default": true
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "all",
              "new"
            ],
            "type": "string",
            "description": "New: only decisions not delivered by an earlier run with the same Monitor ID. Schedule it daily or weekly for case-law alerts. Looks at decisions from the last 120 days unless you set 'Decided from'.",
            "default": "all"
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name of the alert in New mode. Use one per search you follow.",
            "default": "default"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}