Utviklere

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.

ParameterTypeStandardBetydning
limitheltall, 1 til 10025Hvor mange stillinger du får
cursorstrengingennext_cursor fra forrige side
updated_sinceRFC 3339-tidsstempelingenBare stillinger oppdatert på eller etter dette tidspunktet
include_archivedtrue eller falsefalseTa 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}
FeltTypeBetydning
idUUIDStillingens id. Den endrer seg aldri
titlestrengStillingstittelen
slugstrengStillingens navn i URL-en, unikt i arbeidsområdet
statusenumdraft, live, paused eller closed. Om kandidater kan søke, det appen kaller Publisering. Se Stillingsstatus
publish_statusenumunpublished, 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_idUUIDTeamet som eier stillingen
employment_typeenumfull_time eller part_time
contract_typeenumpermanent, temporary, fixed_contract, seasonal, project, trainee, apprenticeship, self_employed eller agency
workplace_typeenumremote, hybrid eller onsite
locationsliste med strengerStedene stillingen oppgir. Tom når den ikke oppgir noen
positions_countheltallHvor mange stillingen skal ansette, minst 1
application_deadlinedato eller nullSiste dag for å søke, YYYY-MM-DD
published_attidsstempel eller nullNår stillingen ble publisert
closed_attidsstempel eller nullNår stillingen sist ble avpublisert. null mens den er planlagt eller publisert
archived_attidsstempel eller nullNår stillingen ble arkivert
created_attidsstempelNår stillingen ble opprettet
updated_attidsstempelNå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.