Spinweb API (2.6.0)

Download OpenAPI specification:

Spinweb API is a service provided by Spinweb B.V.

Base URL

  • Production: https://api.spinweb.nl
  • All endpoints are available directly under this base URL (no additional path prefix required).

Authentication Provide your API key via the X-API-Key header (recommended) or the api_key query parameter.

Quick start

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://api.spinweb.nl/feed?category=IT"

Development access (free) A free Development key lets you build against the API without a paid subscription. It is rate-limited to 50 calls per day and returns a fixed demo snapshot: the 5 most recent opportunities posted ~30 days ago. The snapshot is identical for every call within a UTC day, so it is ideal for integration testing but not for production use. The pageSize and pageNumber parameters are ignored for development keys.

Support: administratie@spinweb.nl

Version 2

Spinweb API version 2, the current version of the feed. Added new parameters and response fields.

GET /feed

Get a list of opportunities. By default, this endpoint returns the last 100 items. You can filter the results based on the active status, source status, and updated date.

To retrieve historic postings in batches, use the postedSince and postedUntil parameters together to select a posting-date window (at most 35 days per request, going back up to 365 days). This is the recommended way to back-fill data month by month.

For some plugins, such as WordPress GoFetchJobs, you may need to use the nowrapper parameter to retrieve the list of opportunities without the wrapper.

This endpoint is serverless and the first request may take up to 20 seconds to receive a response.

Authorizations:
apiKeyHeaderapiKeyQuery
query Parameters
activeOnly
boolean
Default: true
Enum: true false
Example: activeOnly=true

Specifies whether to return only active opportunities.

  • true: Only active opportunities are returned.
  • false: Both active and inactive opportunities are returned. Default is true. Note: If updatedSince is specified then this parameter is ignored.
category
required
string
Enum: "administration" "business" "education" "engineering" "executive" "finance" "government" "health" "hr" "it" "legal" "marketing" "procurement" "recruitment"
Example: category=hr

The 'category' refers to the specific field or industry of the jobs you want to search for. This is a required parameter for your search. Please note, your API key must be associated with a valid license that allows access to job data related to the specified 'category'.

nowrapper
boolean
Default: false
Enum: false true
Example: nowrapper=false

set this item to true to prevent the response from adding the publisher wrapper.

pageSize
integer <int32>
Default: 100
Enum: 10 20 50 100 250 500 1000

The number of items to display per page. Valid values are 10, 20, 50, 100, 250, 500 or 1000. The default value is 100.

pageNumber
integer <int32> >= 1
Example: pageNumber=1

The page number to get. Page numbers start at 1.

sourceOnly
boolean
Default: false
Enum: true false
Example: sourceOnly=true

Specifies whether to ony return opportunities with isSource:true (DAS, MSP, no brokers or marketplaces).

  • true: Only opportunities with isSource:true will be returned.
  • false: Response will include all opportunities, regardless of the isSource value. Default is false.
updatedSince
string <date-time>
Example: updatedSince=2021-01-01T00:00:00Z

Get opportunities updated since the given date/time (UTC). The date/time must be in ISO 8601 format. Example: 2021-01-01T00:00:00Z. This parameter is used to retrieve opportunities that have been updated after the specified date/time. It allows you to go back in time for up to 6 days.

postedSince
string <date-time>
Example: postedSince=2026-01-11T00:00:00Z

Start of a posting-date window (UTC, inclusive) for historic/batch retrieval. The date/time must be in ISO 8601 format. Example: 2026-01-11T00:00:00Z.

Use together with postedUntil to retrieve opportunities that were posted within a given period, independent of the default recent-postings window. The start date may go back at most 365 days, and the period between postedSince and postedUntil may span at most 35 days. This lets you pull historic data in batches (for example, month by month).

Both postedSince and postedUntil must be supplied together.

postedUntil
string <date-time>
Example: postedUntil=2026-02-10T00:00:00Z

End of a posting-date window (UTC, inclusive) for historic/batch retrieval. The date/time must be in ISO 8601 format. Example: 2026-02-10T00:00:00Z.

Use together with postedSince to retrieve opportunities that were posted within a given period. The period between postedSince and postedUntil may span at most 35 days, and postedUntil must be on or after postedSince and not in the future.

Both postedSince and postedUntil must be supplied together.

Responses

Response samples

Content type
application/json
Example
{
  • "data": {
    }
}

Models

Models used in the Spinweb API

opportunityV2

title
string

The cleaned jobTitle of the opportunity.

datePosted
string

The date when the opportunity was posted (or found by the source engine).

identifier
string

The unique identifier for the opportunity used by the source.

opportunityId
integer

The unique opportunity id used by flexfeed. Report this id in case of errors.

url
string

The reply url for the opportunity.

hiringOrganization
string

The name of the hiring organization offering the opportunity (hiring Organization).

hiringOrganizationId
integer

The unique id of the hiring organization offering the opportunity.

hiringOrganizationLogoUrl
string

The logo url of the hiring organization offering the opportunity.

object or null (industry)

The industry of the opportunity based on the hiringOrganization. The industry is a classification of the industry based on the hiringOrganization.

source
string

The source where the opportunity was found, mainly used for tracking purposes.

sourceEmail
string

The email of the source where the opportunity was found.

sourceLogoUrl
string

The logo url of the source where the opportunity was found.

sourceName
string

The name of the source where the opportunity was found.

city
string
Deprecated

The parameter is deprecated. Use jobLocation.addressLocality instead.

The city where the opportunity is located.

state
string
Deprecated

The parameter is deprecated. Use jobLocation.addressLocality instead.

The state or province where the opportunity is located.

streetAddress
string
Deprecated

The parameter is deprecated. Use jobLocation.streetAddress instead.

The street address where the opportunity is located.

Array of objects

list of locations where the opportunity is located.

description
string

A description of the opportunity.

object (jobArticle)

Schema representing a job article with detailed sections for job postings.

telecommute
boolean

Indicates if the opportunity is a telecommute or remote job.

numberOfPositions
integer

The number of positions available for the opportunity.

salary
string

The (max)salary or compensation for the opportunity.

object

The base salary for the opportunity.

object

The min and max hours per week for the opportunity.

hoursPerWeek
integer
Deprecated

The parameter is deprecated. Use hours.maxHours instead.

The max number of hours per week for the opportunity. Default is 40.

startDate
string

The start date of the opportunity in ISO 8601 format. Example '2024-03-01T00:00:00.000Z'

endDate
string

The end date of the opportunity in ISO 8601 format. Example '2024-06-30T00:00:00.000Z'

prolongation
boolean

Indicates if the opportunity can be prolonged or extended.

isActive
boolean

Indicates if the opportunity is currently active. Jobs are set to active false 24 hours after the deadline expires. this allows for you to see recently expired jobs in your system.

isSource
boolean

Indicates whether this opportunity record originates directly from the primary source system or platform. These are dynamic purchasing systems or end clients. If false, the opportunity may have been aggregated or sourced from a third-party platform or intermediary.

isZZPAllowed
boolean

Indicates if ZZP (self-employed) is allowed for the opportunity.

isZZPOnly
boolean

Indicates if the opportunity is only for ZZP (self-employed).

jobType
string

The type of job for the opportunity, such as CONTRACTOR, PERMANENT, TEMPORARY, INTERNSHIP, or other relevant classifications. This field indicates the nature of the employment and should always return 'CONTRACTOR' for freelance or self-employed positions.

category
Array of strings (categoryEnum)
Items Enum: "HR" "MARKETING" "ICT" "FIN" "SALES" "EDUCATION" "HEALTH" "ENGINEERING" "LEGAL" "ADMINISTRATION" "BUSINESS"

The category or field of the opportunity.

seniorityLevel
Array of strings

The required experience level for the opportunity.

validThrough
string

The expiration date of the opportunity, indicating the last date applications will be accepted. Use ISO 8601 format (e.g., '2024-06-30T00:00:00.000Z') for consistency.

language
string

The language in which the opportunity is offered or communicated. Use standard ISO 639-1 two-letter codes (e.g., 'nl' for Dutch, 'en' for English).

score
number

The score or rating of the opportunity, only relevant if performing a search.

{
  • "title": "Corporate Recruiter",
  • "datePosted": "2024-03-01T15:18:52.738Z",
  • "identifier": "1060578",
  • "opportunityId": 709318,
  • "url": "__BASE_URL__/opportunity/709318",
  • "hiringOrganization": "Veiligheidsregio Gelderland-Midden",
  • "hiringOrganizationId": 1836,
  • "hiringOrganizationLogoUrl": "__IMAGE_URL__/development/images/1836",
  • "industry": {
    },
  • "source": "app.inhuurdesk.nl",
  • "sourceEmail": "",
  • "sourceLogoUrl": "__IMAGE_URL__/development/images/1583",
  • "sourceName": "Werken in Gelderland",
  • "city": "Arnhem",
  • "state": "Gelderland",
  • "description": "Corporate Recruiter\r\nUtrecht\r\n32-40 uur per week\r\nJong en vooruitstrevend bedrijf\r\nOpdracht tot 29-02-2024\r\n\r\nAls corporate recruiter regel je alles van A tot Z als het gaat om het werven en selecteren van young professionals voor alle afdelingen van dit bedrijf. Dat klinkt eenvoudig, maar bij het maken van dé perfecte match komt veel kijken",
  • "jobLocation": [
    ],
  • "salary": "103.87 - 111,63 EUR",
  • "baseSalary": {
    },
  • "hoursPerWeek": 40,
  • "hours": {
    },
  • "startDate": "2024-03-18T00:00:00.000Z",
  • "endDate": "2024-09-18T00:00:00.000Z",
  • "prolongation": true,
  • "isActive": true,
  • "isSource": true,
  • "isZZPAllowed": true,
  • "jobtype": "CONTRACTOR",
  • "category": [
    ],
  • "experience": [
    ],
  • "validThrough": "6-12-2023",
  • "language": "nl",
  • "score": 1.96898710727692
}