Civil Service List (Active) — NYC Open Data avatar

Civil Service List (Active) — NYC Open Data

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Civil Service List (Active) — NYC Open Data

Civil Service List (Active) — NYC Open Data

A Civil Service List consists of all candidates who passed an exam, ranked in score order. Returns 20 declared fields as flat JSON. Public NYC Open Data data, no key.

Pricing

from $0.50 / 1,000 results

Rating

0.0

(0)

Developer

Alauddin burki

Alauddin burki

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

A Civil Service List consists of all candidates who passed an exam, ranked in score order. An established list is considered active for no less than one year and no more than four years from the date of establishment. For more information visit DCAS’ “Why You Should Work for the City” webpage at: https://www.nyc.gov/site/dcas/employment/how-can-you-find-upcoming-exams.page. This Actor returns it as one flat JSON row per record, with 20 declared fields — typed, named and documented in the dataset schema, so a spreadsheet or an agent can use it without guessing.

What you get

FieldTypeMeaning
established_datestringEstablished Date
list_agency_codenumberList Agency Code
extension_datestringExtension Date
list_div_codestringList Div Code
list_title_descstringList Title Desc
adj_fanumberAdj. FA
residency_creditstringResidency Credit
exam_nonumberExam No
mistringMI
list_nonumberList No
sibling_lgy_creditstringSibling Lgy Credit
parent_lgy_creditstringParent Lgy Credit
published_datestringPublished Date
list_title_codenumberList Title Code
first_namestringFirst Name
list_agency_descstringList Agency Desc
group_nonumberGroup No
anniversary_datestringAnniversary Date
last_namestringLast Name
veteran_creditstringVeteran Credit

Every row also carries sourceRowId, sourceUpdatedAt and scrapedAt, so a pipeline can tell one record from another and know exactly when it was read.

{
"established_date": "2018-06-20T00:00:00.000",
"list_agency_code": 998,
"extension_date": "2027-06-20T00:00:00.000",
"list_div_code": "text",
"list_title_desc": "DISPATCHER (RAPID TRANSIT OPERATIONS)",
"adj_fa": 81,
"residency_credit": "Residency Credit",
"exam_no": 7701
}

Inputs

FieldWhat it does
Filter (SoQL)Applied at the source, so a narrow question fetches a narrow page instead of downloading everything.
OrderEmpty keeps the publisher's own order; set a column to sort, for example amount DESC.
Maximum rowsHard cap. The source is paged 1,000 rows at a time.
Time budgetStops cleanly and reports how far it got.
Pause between pagesKeeps the run inside the publisher's rate limits.

Limitations

  • This is one dataset, from one publisher. It is the Civil Service List (Active) dataset as Department of Citywide Administrative Services (DCAS) publishes it — not a national or cross-city equivalent, and not a merge with other sources.
  • The publisher can change it. Columns are added, renamed and retired upstream; the field list here is the schema the Actor was generated from. A renamed column arrives as a new field only after the Actor is updated.
  • Fields are typed from live records. A column that was empty in the sample is declared as text; a value that does not fit the declared type comes back null rather than being coerced into a wrong number.
  • Records are what the publisher publishes. No geocoding, no de-duplication across datasets, no enrichment.
  • Freshness is the publisher's. The data was last changed upstream on 2026-10-23. Where the publisher supplies a row timestamp it appears as sourceUpdatedAt; scrapedAt records when this Actor read the row.

Why this is different

  • Civil Service List (Active) — NYC Open Data declares all 20 of its output fields in the dataset schema, each with a type, a description and an example.
  • The Actor reads the Civil Service List (Active) dataset directly from NYC Open Data; no key, login or account is needed.
  • Filters run at the source with SoQL, so a narrow request returns a narrow page rather than a full download.
  • Every row is flat JSON: nested location objects become latitude and longitude, and no field holds a nested object.
  • The row id is stable, so the same request de-duplicates instead of returning the same record twice.

FAQ

Do I need an API key? No. NYC Open Data publishes this dataset openly.

How fresh is it? The Actor reads the dataset live. scrapedAt records when each row was read, and sourceUpdatedAt carries the publisher's own row timestamp where it supplies one.

Can I filter by date or status? Yes — use the Filter field with SoQL, for example status = 'Active'.

What happens if my filter is wrong? The run stops with the portal's own message and the hint to check SoQL, rather than returning an empty dataset that looks like "no data".

Is this the whole dataset? Up to your row cap, paged 1,000 at a time. Raise the cap to read more.

What is sourceRowId? The publisher's own row id when it supplies one, otherwise a stable hash of the row. Either way it is what makes de-duplication and joins possible.

Pricing

Pay per result: $0.0005 per row. Each stored dataset row is billed, including any diagnostic row returned instead of results.

An Actor-start event is also charged at $0.0001 per GB of allocated memory (minimum one event), even if no rows are returned. At 1 GB or less, 1,000 result rows cost $0.5001 before any applicable Store discount.

Data source

NYC Open Data — Civil Service List (Active), published by Department of Citywide Administrative Services (DCAS). Public data under the portal's open-data terms.