Search Los Angeles open datasets.
Searches the City of Los Angeles Open Data Portal catalog for datasets, like its catalog page: dataset name, dataset id, category, last update time and link. First page of results (up to 20 datasets, datasets only, from this portal). Returns an empty list when nothing matches.
- Site
- City of Los Angeles Open Data Portal, United States
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- 81ee477af8fe…
Run it with your agent
after installing WieldAsk in plain words. Your agent finds this recipe and calls it:
“Search Los Angeles open datasets.”
Read-only: it changes nothing on the site. No login needed.
{ "tool": "run", "arguments": { "recipe_id": "data.lacity.org/search-open-data", "params": { "query": "crime" } } }
Requests
sent from your browser, in order- 1GET/api/catalog/v1?domains&limit&only&qSocrata catalog JSON API that the portal's catalog page uses; read-only GET with no key. Restricted to datasets on this domain.
Parameters
from your agentReturns
to your agentWhere it can send
- data.lacity.org
Anything else is blocked by the extension.
Reads from your session
Nothing. Your browser attaches the site's cookies by itself.
Used only in requests to the addresses on the left. Never sent to wield.run or your agent.
Checks
a run passes when- length(output.datasets) > `0`
- length(output.datasets[?title != `null`]) == length(output.datasets)
- length(output.datasets[?starts_with(url, 'https://data.lacity.org/')]) == length(output.datasets)
Raw recipe
Served as canonical JSON from /api/v1/recipes/data.lacity.org/search-open-data, so its sha256 matches the ETag and the index.
curl -s https://wield.run/api/v1/recipes/data.lacity.org/search-open-data | shasum -a 256 # 81ee477af8fe948992a193c3b8c78cb0d9feb0bc42916cfd8b2ed248ea7dbdd3
{ "description": "Searches the City of Los Angeles Open Data Portal catalog for datasets, like its catalog page: dataset name, dataset id, category, last update time and link. First page of results (up to 20 datasets, datasets only, from this portal). Returns an empty list when nothing matches.", "effect": "read", "id": "data.lacity.org/search-open-data", "keywords": [ "los angeles", "lametro", "la", "lacity", "data.lacity.org", "open data", "datasets", "crime", "city data", "public data", "government data", "building permits", "parking", "socrata" ], "output": { "schema": { "properties": { "datasets": { "items": { "properties": { "category": { "type": [ "string", "null" ] }, "dataset_id": { "description": "Socrata four-by-four id, e.g. ydr8-5enu", "type": [ "string", "null" ] }, "title": { "type": "string" }, "updated_at": { "description": "ISO-8601 time of the last data update", "type": [ "string", "null" ] }, "url": { "type": "string" } }, "required": [ "title", "url" ], "type": "object" }, "type": "array" }, "query": { "type": "string" }, "total": { "description": "Number of matching datasets on the portal", "type": [ "integer", "null" ] } }, "required": [ "query", "datasets" ], "type": "object" }, "value": "{query: params.query, total: steps.search.total || `null`, datasets: steps.search.items[?title != `null` && url != `null`].{title: title, dataset_id: dataset_id || `null`, category: category || `null`, updated_at: updated_at || `null`, url: url}}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "Dataset keywords, e.g. 'crime', 'building permits', 'parking'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "The /browse?q= page is a client-rendered shell with no results in the HTML. Results come from the public Socrata catalog API GET /api/catalog/v1 (q, domains, only, limit), which needs no key. Results are under results[]: resource.name is the title, resource.id the dataset id, permalink the link, classification.domain_category the category. The description field is HTML, so it is not returned.", "recorded_at": "2026-11-08T16:22:40.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "US", "id": "data.lacity.org", "language": "en", "name": "City of Los Angeles Open Data Portal", "origin": "https://data.lacity.org", "origins": [ "https://data.lacity.org" ] }, "steps": [ { "description": "Socrata catalog JSON API that the portal's catalog page uses; read-only GET with no key. Restricted to datasets on this domain.", "expect": { "assert": "status == `200` && type(body.results) == 'array'", "content_type": "json", "status": [ 200 ] }, "extract": { "json": { "items": "results[].{title: resource.name, dataset_id: resource.id, url: permalink, category: classification.domain_category, updated_at: resource.updatedAt}", "total": "resultSetSize" } }, "id": "search", "request": { "headers": { "Accept": "application/json" }, "method": "GET", "query": { "domains": "data.lacity.org", "limit": "20", "only": "datasets", "q": "{{params.query}}" }, "url": "/api/catalog/v1" } } ], "task": "Search Los Angeles open datasets", "tos": { "notes": "Not reviewed. One catalog API call per search, the same data the portal's catalog page loads. The site's terms on automated access were not checked.", "reviewed": false }, "verify": { "checks": [ "length(output.datasets) > `0`", "length(output.datasets[?title != `null`]) == length(output.datasets)", "length(output.datasets[?starts_with(url, 'https://data.lacity.org/')]) == length(output.datasets)" ], "example_params": { "query": "crime" }, "max_ms": 5000 }, "version": 1 }