{
  "openapi": "3.0.1",
  "info": {
    "title": "Peru Arbitration Rulings Scraper - Annulment & Enforcement",
    "description": "Scrape Peru's Poder Judicial rulings on arbitral award annulment and enforcement (laudos arbitrales, anulación de laudo): grounds, outcomes, full text and PDFs for 6,000+ rulings. Filter by year, chamber, ground. Export CSV, Excel, JSON. No login or API key.",
    "version": "0.1",
    "x-build-id": "cdN2oooSIfjgjvPcC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~peru-laudos-arbitrales-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-peru-laudos-arbitrales-scraper",
        "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/recordsdata~peru-laudos-arbitrales-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-peru-laudos-arbitrales-scraper",
        "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/recordsdata~peru-laudos-arbitrales-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-peru-laudos-arbitrales-scraper",
        "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": {
          "searchTexts": {
            "title": "Search terms (full text)",
            "type": "array",
            "description": "Spanish words or phrases searched inside the full text of the rulings (for example anulación de laudo, debido proceso). Each term runs as its own search and results are merged and de-duplicated. All words of one term must appear. Leave empty to list every ruling.",
            "items": {
              "type": "string"
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Ready-made arbitration topics (due process, motivation, jurisdiction, public procurement, construction, interim measures, foreign awards...). Each topic expands to several Spanish legal terms, with and without accents, and merges the results.",
            "items": {
              "type": "string",
              "enum": [
                "due-process",
                "motivation",
                "jurisdiction",
                "public-contracting",
                "construction",
                "interim-measures",
                "foreign-awards",
                "enforcement",
                "costs",
                "arbitrators",
                "public-order",
                "banking-finance",
                "mining-energy",
                "pre-trial-evidence",
                "limitation-periods"
              ],
              "enumTitles": [
                "Due process and right of defense",
                "Lack of reasoning in the award",
                "Jurisdiction and arbitrability",
                "Public procurement arbitration",
                "Construction and works contracts",
                "Interim measures",
                "Foreign awards and exequatur",
                "Enforcement of awards and guarantees",
                "Arbitration costs and fees",
                "Arbitrators: recusation and impartiality",
                "Public policy and review of the merits",
                "Banking and finance",
                "Mining and energy",
                "Pre-trial evidence and conciliation",
                "Time limits and appeals"
              ]
            }
          },
          "includeAccentVariants": {
            "title": "Also search without accents",
            "type": "boolean",
            "description": "The portal is accent-sensitive and indexes many words only without accents (\"corrupción\" finds nothing, \"corrupcion\" finds thousands). Keep this on to search both spellings.",
            "default": true
          },
          "caseNumbers": {
            "title": "Case numbers",
            "type": "array",
            "description": "Case number or its first digits, for example 00164-2026 or 000293-2023. Prefix match.",
            "items": {
              "type": "string"
            }
          },
          "years": {
            "title": "Years",
            "type": "array",
            "description": "Year of the ruling. Leave empty for all years. One search runs per year.",
            "items": {
              "type": "string",
              "enum": [
                "2026",
                "2025",
                "2024",
                "2023",
                "2022",
                "2021",
                "2020",
                "2019",
                "2018",
                "2017",
                "2016",
                "2015",
                "2014",
                "2013",
                "2012",
                "2011",
                "2010",
                "2009",
                "2008",
                "2007",
                "2006",
                "2005",
                "2004",
                "2003",
                "2002",
                "2001",
                "2000",
                "1999",
                "1998",
                "1982"
              ]
            }
          },
          "subjects": {
            "title": "Subject (materia)",
            "type": "array",
            "description": "Keep rulings whose subject contains one of these texts. Values seen on the portal: ANULACION DE LAUDOS ARBITRALES, EJECUCION DE LAUDOS ARBITRALES, EJECUCION DE GARANTIAS, RECONOCIMIENTO DE LAUDO ARBITRAL EXTRANJERO-EXEQUATUR, PRUEBA ANTICIPADA, CONVOCATORIA JUDICIAL, Ejecución de Acta de Conciliación, Obligaciones.",
            "items": {
              "type": "string"
            }
          },
          "outcomes": {
            "title": "Outcomes",
            "type": "array",
            "description": "Plain-language outcome derived from the official resolution type. Claim granted/dismissed refers to the annulment or enforcement claim; confirmed/reversed refers to appeal orders.",
            "items": {
              "type": "string",
              "enum": [
                "claim-granted",
                "claim-dismissed",
                "partially-granted",
                "claim-inadmissible",
                "confirmed-on-appeal",
                "reversed-on-appeal",
                "other"
              ],
              "enumTitles": [
                "Claim granted (fundada)",
                "Claim dismissed (infundada)",
                "Partially granted (fundada en parte)",
                "Claim inadmissible (improcedente)",
                "Confirmed on appeal",
                "Reversed on appeal",
                "Other"
              ]
            }
          },
          "annulmentGrounds": {
            "title": "Annulment grounds (Art. 63.1)",
            "type": "array",
            "description": "Keep rulings whose official summary or keywords name one of these grounds of Article 63.1 of the Arbitration Law (DL 1071): a) invalid agreement, b) defense and due process, c) procedure, d) beyond the submission, e) non-arbitrable, f) time limit, g) other. Only explicit mentions count.",
            "items": {
              "type": "string",
              "enum": [
                "a",
                "b",
                "c",
                "d",
                "e",
                "f",
                "g"
              ],
              "enumTitles": [
                "a) Invalid arbitration agreement",
                "b) Right of defense / due process",
                "c) Procedure or arbitral rules breached",
                "d) Matters beyond the submission",
                "e) Non-arbitrable matter",
                "f) Time limit",
                "g) Other grounds"
              ]
            }
          },
          "chambers": {
            "title": "Chambers",
            "type": "array",
            "description": "Chamber (sala) name contains, for example \"1° SALA COMERCIAL\" or \"2° SALA COMERCIAL\".",
            "items": {
              "type": "string"
            }
          },
          "resolutionTypes": {
            "title": "Official resolution types",
            "type": "array",
            "description": "Exact official type, for example \"Sentencia infundada\" or \"Auto de vista que confirma (A ejecución)\".",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Official keywords (exact)",
            "type": "array",
            "description": "Keep rulings tagged with one of these official keywords, for example \"Causal b)\". Case and accent insensitive.",
            "items": {
              "type": "string"
            }
          },
          "summaryContains": {
            "title": "Summary contains",
            "type": "string",
            "description": "Keep rulings whose official summary contains this text."
          },
          "dateFrom": {
            "title": "Ruling date from",
            "type": "string",
            "description": "Earliest ruling date (YYYY-MM-DD). The Actor locates the date window with a page search when sorted by date."
          },
          "dateTo": {
            "title": "Ruling date to",
            "type": "string",
            "description": "Latest ruling date (YYYY-MM-DD)."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "date",
              "caseNumber",
              "year",
              "subject",
              "resolutionType",
              "chamber"
            ],
            "type": "string",
            "description": "Column used to order the portal results.",
            "default": "date"
          },
          "sortDirection": {
            "title": "Sort direction",
            "enum": [
              "DESC",
              "ASC"
            ],
            "type": "string",
            "description": "Newest first is the default.",
            "default": "DESC"
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of rulings (or statistic rows) to return. Free users: limited to 10 items (preview). Paid users: optional, up to 1,000,000.",
            "default": 10
          },
          "includePdfText": {
            "title": "Add full text of each ruling",
            "type": "boolean",
            "description": "Downloads the signed PDF of every ruling and adds its full text, page count and labeled caption lines. Billed as an extra event per ruling with a text layer.",
            "default": false
          },
          "savePdfFiles": {
            "title": "Save the original PDFs",
            "type": "boolean",
            "description": "Stores each PDF in the run key-value store and adds a download link. Billed as an extra event per saved file.",
            "default": false
          },
          "maxTextChars": {
            "title": "Max characters of full text per ruling",
            "minimum": 1000,
            "maximum": 2000000,
            "type": "integer",
            "description": "Longer texts are cut with an ellipsis. The row also reports the real length in textChars.",
            "default": 300000
          },
          "onlyNew": {
            "title": "Only new results (monitor mode)",
            "type": "boolean",
            "description": "Only new results: skip every ruling this same search already returned in an earlier run, so scheduled runs return just the new rulings, and you are not charged for skipped ones. Max Items then means N new rulings. Applies to ruling rows only; statistics mode always recomputes.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "Optional label to keep several independent monitors for the same search. Runs that share the same search filters and the same name share one list of seen rulings. Leave empty to use the default monitor.",
            "default": ""
          },
          "resetSeen": {
            "title": "Reset seen rulings",
            "type": "boolean",
            "description": "Clear the stored list of already-seen rulings for this search and monitor name before the run, so every matching ruling counts as new again.",
            "default": false
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "rulings",
              "statistics"
            ],
            "type": "string",
            "description": "Rulings returns one row per ruling. Statistics scans the matching rulings and returns counts grouped by year, subject, chamber, outcome or ground (for example annulment success rate per year).",
            "default": "rulings"
          },
          "statisticsBy": {
            "title": "Group statistics by",
            "type": "array",
            "description": "Dimensions combined in the statistics rows. The Actor reads every matching ruling, so a full-corpus run takes a while (about 3 rulings per second).",
            "items": {
              "type": "string",
              "enum": [
                "year",
                "subject",
                "chamber",
                "outcome",
                "resolutionType",
                "ground"
              ],
              "enumTitles": [
                "Year",
                "Subject",
                "Chamber",
                "Outcome",
                "Official resolution type",
                "Annulment ground"
              ]
            },
            "default": [
              "year",
              "outcome"
            ]
          },
          "concurrency": {
            "title": "Parallel sessions",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "Portal sessions reading result pages at the same time (1 to 6). Each session reads about one page of 10 rulings every 4 seconds.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Required. The portal answers HTTP 403 to datacenter IPs and works with Peruvian residential IPs, so the default is Apify Residential proxy in Peru.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "PE"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}