Stillinger
GET /api/v1/jobs gir stillingene i arbeidsområdet én side om gangen, og GET /api/v1/jobs/{id} gir én stilling, med alle parametere og felt.
Oversikt
GET /api/v1/jobs lister stillingene i arbeidsområdet ditt, og GET /api/v1/jobs/{id} gir én av dem. Du får stillingene du kan se i appen, bortsett fra team som nøkkelens teamtilgang utelater. Begge trenger tillatelsen Lese.
Autentisering, Feil og Rategrenser dekker det som er felles for alle operasjoner. Denne siden dekker parameterne og feltene.
Forespørsel
curl "https://attia.app/api/v1/jobs?limit=50" \ -H "Authorization: Bearer $ATTIA_API_KEY"Alle de fire spørreparameterne er valgfrie.
| Parameter | Type | Standard | Betydning |
|---|---|---|---|
limit | heltall, 1 til 100 | 25 | Hvor mange stillinger du får |
cursor | streng | ingen | next_cursor fra forrige side |
updated_since | RFC 3339-tidsstempel | ingen | Bare stillinger oppdatert på eller etter dette tidspunktet |
include_archived | true eller false | false | Ta også med arkiverte stillinger |
En parameter utenfor denne tabellen gir 400 med koden invalid-request. Det samme gjør en parameter som er sendt to ganger.
Svar
Svaret har stillingene i data, sortert etter updated_at og deretter id, eldste endring først. next_cursor er en streng når det finnes flere stillinger, og null på siste side.
{ "data": [ { "id": "0192f3a1-6b02-7d4c-8e11-5a9c0b7d3e01", "title": "Backend-utvikler", "slug": "backend-utvikler", "status": "live", "publish_status": "published", "team_id": "0192f39f-11aa-7c3e-b2d4-9e8f7a6b5c4d", "employment_type": "full_time", "contract_type": "permanent", "workplace_type": "hybrid", "locations": ["Eksempelvik"], "positions_count": 2, "application_deadline": "2026-11-15", "published_at": "2026-09-28T07:30:00.000000Z", "closed_at": null, "archived_at": null, "created_at": "2026-09-25T12:04:51.220417Z", "updated_at": "2026-10-01T09:42:10.118305Z" } ], "next_cursor": null}| Felt | Type | Betydning |
|---|---|---|
id | UUID | Stillingens id. Den endrer seg aldri |
title | streng | Stillingstittelen |
slug | streng | Stillingens navn i URL-en, unikt i arbeidsområdet |
status | enum | draft, live, paused eller closed. Om kandidater kan søke, det appen kaller Publisering. Se Stillingsstatus |
publish_status | enum | unpublished, scheduled eller published. Stillingens status i appen. En scheduled stilling publiseres på publiseringstidspunktet, og en unpublished stilling med closed_at har vært publisert før |
team_id | UUID | Teamet som eier stillingen |
employment_type | enum | full_time eller part_time |
contract_type | enum | permanent, temporary, fixed_contract, seasonal, project, trainee, apprenticeship, self_employed eller agency |
workplace_type | enum | remote, hybrid eller onsite |
locations | liste med strenger | Stedene stillingen oppgir. Tom når den ikke oppgir noen |
positions_count | heltall | Hvor mange stillingen skal ansette, minst 1 |
application_deadline | dato eller null | Siste dag for å søke, YYYY-MM-DD |
published_at | tidsstempel eller null | Når stillingen ble publisert |
closed_at | tidsstempel eller null | Når stillingen sist ble avpublisert. null mens den er planlagt eller publisert |
archived_at | tidsstempel eller null | Når stillingen ble arkivert |
created_at | tidsstempel | Når stillingen ble opprettet |
updated_at | tidsstempel | Når stillingen sist ble endret |
En enum kan få en ny verdi i versjon 1, så koden din må tåle en verdi den ikke kjenner. Tidsstempler, null og enum-verdier beskriver hvert format.
Bla gjennom alle stillingene
Be om en side, og send next_cursor tilbake som cursor til den er null.
curl "https://attia.app/api/v1/jobs?limit=100&cursor=eyJ1IjoiMjAyNi0xMC0wMlQwODoxNTozMC40ODI5MTNaIiwiaSI6IjAxOTJmM2ExLTdjNDQtN2IxZS05YTUwLTNmMWQyYzZlOGEwMiJ9" \ -H "Authorization: Bearer $ATTIA_API_KEY"Cursoren holder seg stabil mens folk redigerer stillinger. En stilling som blir redigert mens du leser, flytter seg bak cursoren, og du kan få den igjen på en senere side. Behold den nyeste kopien per id. Paginering forklarer sorteringen.
Hent endringer jevnlig
updated_since er inkluderende. Send et tidspunkt fem minutter før den største updated_at du har lagret. En endring får sin updated_at når lagringen starter, så den kan dukke opp med et tidspunkt som er eldre enn et du allerede har lest. Svaret gjentar stillinger du allerede har, så fjern gjentakelsene etter id. Med 2026-10-01T09:42:10.118305Z som den største blir kallet slik.
curl "https://attia.app/api/v1/jobs?updated_since=2026-10-01T09:37:10.118305Z" \ -H "Authorization: Bearer $ATTIA_API_KEY"Du kan kombinere updated_since med cursor og limit når én henting gir mer enn en side.
Arkiverte stillinger
Listen utelater arkiverte stillinger hvis du ikke ber om dem. Det betyr noe når du holder en kopi. En stilling som noen arkiverer, forsvinner fra standardlisten, og kopien din får aldri vite hvorfor. Send include_archived=true når du henter endringer, så kommer en arkivert stilling tilbake med et tidspunkt i archived_at.
curl "https://attia.app/api/v1/jobs?include_archived=true&updated_since=2026-10-01T00:00:00Z" \ -H "Authorization: Bearer $ATTIA_API_KEY"Hent en stilling
GET /api/v1/jobs/{id} gir stillingen med den id-en. Den tar ingen spørreparametere, så en parameter gir 400 med koden invalid-request.
curl "https://attia.app/api/v1/jobs/0192f3a1-6b02-7d4c-8e11-5a9c0b7d3e01" \ -H "Authorization: Bearer $ATTIA_API_KEY"Svaret har stillingen i data, med de samme feltene som en stilling i listen. En arkivert stilling kommer også, med et tidspunkt i archived_at.
{ "data": { "id": "0192f3a1-6b02-7d4c-8e11-5a9c0b7d3e01", "title": "Backend-utvikler", "slug": "backend-utvikler", "status": "live", "publish_status": "published", "team_id": "0192f39f-11aa-7c3e-b2d4-9e8f7a6b5c4d", "employment_type": "full_time", "contract_type": "permanent", "workplace_type": "hybrid", "locations": ["Eksempelvik"], "positions_count": 2, "application_deadline": "2026-11-15", "published_at": "2026-09-28T07:30:00.000000Z", "closed_at": null, "archived_at": null, "created_at": "2026-09-25T12:04:51.220417Z", "updated_at": "2026-10-01T09:42:10.118305Z" }}404 med koden not-found betyr at ingen stilling nøkkelen din kan se, har den id-en. Stillingen finnes kanskje ikke, er slettet, hører til et annet arbeidsområde eller ligger i et team listen utelater for deg. Alle disse får det samme svaret, så en 404 forteller aldri om stillingen finnes. En id som ikke er en UUID, får den samme 404-en.