{"openapi":"3.1.0","info":{"title":"Applystead API","version":"1.0.0","description":"Search Applystead's job data and add applications to your queue from your own code. Create keys on the API page in Applystead and send one as `Authorization: Bearer <key>`. Every call needs an active Applystead plan. Calls are paid from your prepaid balance; Premium members pay 40% less. Every response says what it charged (charged_usd) and what is left (balance_usd). Applications you add are refunded automatically if they are never sent. Webhooks tell your own HTTPS endpoint, or a Discord or Slack channel, as soon as one of your applications is sent: free with Premium, otherwise priced per delivery."},"servers":[{"url":"https://applystead.com/api/v1"}],"security":[{"apiKey":[]}],"x-applystead-pricing":[{"meter":"job","unit":"job","price_usd":"0.0050","premium_price_usd":"0.0030","premium_included":false,"description":"Each job a search or lookup returns: title, company, place, pay and pay estimate, posting link and dates."},{"meter":"job_details","unit":"job","price_usd":"0.0750","premium_price_usd":"0.0450","premium_included":false,"description":"Added per job when you ask for its details (include=details): skills, seniority, years of experience, visa sponsorship, clearance and travel."},{"meter":"company","unit":"company","price_usd":"0.0750","premium_price_usd":"0.0450","premium_included":false,"description":"Each company lookup that finds one: industry, size, headquarters, listing, filings and published wages."},{"meter":"application","unit":"application","price_usd":"2.5000","premium_price_usd":"1.5000","premium_included":false,"description":"Each job you add to your queue through the API. Refunded automatically if it is never sent."},{"meter":"webhook","unit":"delivery","price_usd":"0.0010","premium_price_usd":"0.0000","premium_included":true,"description":"Each event delivered to one of your webhook endpoints. Free with Premium; refunded automatically if it is never delivered."}],"paths":{"/me":{"get":{"summary":"Your account, plan, prices and balance.","responses":{"200":{"description":"Your account.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/Account"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/usage":{"get":{"summary":"This month's usage and balance.","responses":{"200":{"description":"Your usage.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/Usage"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/jobs":{"get":{"summary":"Search open jobs.","x-applystead-scope":"data:read","description":"Charged per job: $0.0050, $0.0030 with Premium. Charged per job: $0.0750, $0.0450 with Premium. (with include=details, per job that has details). A page may hold fewer jobs than limit, even none, while has_more is true: keep following next_cursor.","parameters":[{"name":"q","in":"query","description":"Words the job title contains; comma-separated, up to 10.","schema":{"type":"string"}},{"name":"location","in":"query","description":"City, country, 'united states' or 'remote'; comma-separated, up to 5.","schema":{"type":"string"}},{"name":"remote","in":"query","description":"true: only jobs that may be remote.","schema":{"type":"string","enum":["true"]}},{"name":"salary_min","in":"query","description":"Least stated yearly pay in whole US dollars.","schema":{"type":"integer","minimum":0}},{"name":"exclude_company","in":"query","description":"Companies to leave out; comma-separated, up to 50.","schema":{"type":"string"}},{"name":"changed_after","in":"query","description":"Only jobs changed after this ISO 8601 time.","schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","description":"Jobs per page, 1 to 100 (default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","description":"next_cursor from the previous page.","schema":{"type":"string"}},{"name":"include","in":"query","description":"details: add skills, seniority and more.","schema":{"type":"string","enum":["details"]}}],"responses":{"200":{"description":"A page of jobs.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Job"}},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]},"as_of":{"type":["string","null"],"format":"date-time"}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The cursor expired; start the search again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/jobs/{id}":{"get":{"summary":"One open job.","x-applystead-scope":"data:read","description":"Charged per job: $0.0050, $0.0030 with Premium. Charged per job: $0.0750, $0.0450 with Premium. (with include=details).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"include","in":"query","description":"details: add skills, seniority and more.","schema":{"type":"string","enum":["details"]}}],"responses":{"200":{"description":"The job.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/Job"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/companies":{"get":{"summary":"Company facts by website domain or name.","x-applystead-scope":"data:read","description":"Charged per company: $0.0750, $0.0450 with Premium. Nothing is charged when no company matches.","parameters":[{"name":"domain","in":"query","description":"The company's website domain, like example.com.","schema":{"type":"string"}},{"name":"name","in":"query","description":"The company's name.","schema":{"type":"string"}}],"responses":{"200":{"description":"The company.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/Company"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/applications":{"get":{"summary":"Your applications.","x-applystead-scope":"applications:read","description":"Free. Applications appear once they are ready for you to review, or once they are sent.","parameters":[{"name":"status","in":"query","description":"applied (default) or not_applied.","schema":{"type":"string","enum":["applied","not_applied"]}},{"name":"limit","in":"query","description":"Applications per page, 1 to 100 (default 25).","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","description":"next_cursor from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of applications.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Application"}},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Add a job to your queue to apply.","x-applystead-scope":"applications:write","description":"Charged per application: $2.5000, $1.5000 with Premium. Charged only when the job is newly added, and refunded automatically if its application is never sent. In review mode it waits in your queue for your approval; with Auto apply it is sent for you. At most 200 a day (UTC).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Exactly one of job_id or url.","properties":{"job_id":{"type":"string","description":"A job id from /jobs."},"url":{"type":"string","description":"The posting's link."}}}}}},"responses":{"200":{"description":"Already yours: nothing was charged.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/ApplicationRequest"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"201":{"description":"Added.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/ApplicationRequest"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The posting is closed, excluded or not one we can apply to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"We can't apply on that site yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/applications/{id}":{"get":{"summary":"One of your applications.","x-applystead-scope":"applications:read","description":"Free.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}],"responses":{"200":{"description":"The application.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/Application"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks":{"get":{"summary":"Your webhook endpoints.","x-applystead-scope":"webhooks:write","description":"Free.","responses":{"200":{"description":"Your endpoints.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"}},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Add a webhook endpoint.","x-applystead-scope":"webhooks:write","description":"Free to add. Each delivery: Charged per delivery: $0.0010, free with Premium. An endpoint is an https URL on port 443 at a public host, up to 3 per account. A Discord or Slack incoming-webhook URL gets a short chat message naming the job instead of the JSON event (format discord or slack). The response carries the endpoint's signing secret once: keep it to check each delivery's webhook-signature.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The https URL events are posted to."},"events":{"type":"array","items":{"type":"string","enum":["application.sent"]},"description":"The events to send; every one when left out."}}}}}},"responses":{"201":{"description":"Added.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/WebhookEndpoint"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"secret":{"type":"string","description":"The signing secret (whsec_…), shown only now."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The account holds the most endpoints it may, or this URL has one.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/{id}":{"delete":{"summary":"Remove a webhook endpoint.","x-applystead-scope":"webhooks:write","description":"Free. Deliveries still waiting for it are cancelled and refunded.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{16}$"}}],"responses":{"200":{"description":"Removed.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"type":"object","properties":{"object":{"type":"string"},"id":{"type":"string"},"deleted":{"type":"boolean"}}},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhooks/{id}/test":{"post":{"summary":"Send a test event to an endpoint.","x-applystead-scope":"webhooks:write","description":"Free. Sends a webhook.test event now and answers what the endpoint replied. A delivered test resumes an endpoint paused after repeated failures.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{16}$"}}],"responses":{"200":{"description":"What the endpoint answered.","content":{"application/json":{"schema":{"type":"object","required":["data","charged_usd","balance_usd"],"properties":{"data":{"$ref":"#/components/schemas/WebhookTest"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"400":{"description":"The request is not valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"The API key is missing, not valid or revoked.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"The balance does not cover this request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The key lacks the scope, or the account has no active plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Nothing matches.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests, or the daily application limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Temporarily unavailable; retry after Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"webhooks":{"application.sent":{"post":{"summary":"One of your applications was sent to the employer.","description":"Posted once the send is confirmed, to each endpoint listening for it; data is the application as GET /applications/{id} returns it. A Discord or Slack incoming-webhook URL is sent a chat message naming the job instead (Discord {\"content\"}, Slack {\"text\"}), with the same headers. The headers follow Standard Webhooks: webhook-id names the event and is the same on every attempt, webhook-timestamp is the attempt's Unix time in seconds, and webhook-signature is \"v1,\" then the base64 HMAC-SHA256 of \"{webhook-id}.{webhook-timestamp}.{body}\", keyed with the base64-decoded part of your secret after \"whsec_\". Answer with any 2xx within 10 seconds. Anything else, a redirect included, is tried again, 6 attempts in all over about ten hours, and refunded if none succeeds. Charged per delivery: $0.0010, free with Premium.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationSentEvent"}}}},"responses":{"2XX":{"description":"Received."}}}},"webhook.test":{"post":{"summary":"A test event you sent from the API page or the API.","description":"Signed like every delivery, and free. Nothing about your applications is in it.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTestEvent"}}}},"responses":{"2XX":{"description":"Received."}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"An API key from the API page (ask_…)."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Account":{"type":"object","properties":{"id":{"type":"string"},"plan":{"type":"string","enum":["free","auto","standard","premium"]},"premium_pricing":{"type":"boolean"},"discount_percent":{"type":"integer"},"balance_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"prices":{"type":"array","items":{"type":"object","properties":{"meter":{"type":"string"},"unit":{"type":"string"},"price_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"list_price_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."}}}}}},"Usage":{"type":"object","properties":{"month":{"type":"string"},"requests":{"type":"integer"},"charged_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"refunded_usd":{"type":"string","pattern":"^-?\\d+\\.\\d{4}$","description":"US dollars, four decimal places."},"meters":{"type":"array","items":{"type":"object"}},"days":{"type":"array","items":{"type":"object"}},"open_application_charges":{"type":"integer"}}},"Job":{"type":"object","properties":{"id":{"type":"string"},"canonical_id":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"url":{"type":["string","null"],"description":"The job's page on Applystead, or null when it has none."},"location":{"type":"object","properties":{"city":{"type":["string","null"]},"region":{"type":["string","null"]},"country":{"type":["string","null"]},"remote":{"type":["boolean","null"]}}},"salary":{"type":["object","null"],"properties":{"min":{"type":["number","null"]},"max":{"type":["number","null"]},"currency":{"type":"string"},"period":{"type":["string","null"]}}},"pay_estimate":{"type":["object","null"],"properties":{"annual":{"type":"number"},"currency":{"type":"string"},"confidence":{"type":"number"},"comparables":{"type":"integer"}}},"level_estimate":{"type":["string","null"]},"posted_at":{"type":["string","null"],"format":"date-time"},"found_at":{"type":["string","null"],"format":"date-time"},"observed_at":{"type":["string","null"],"format":"date-time"},"fresh_until":{"type":["string","null"],"format":"date-time"},"details":{"type":["object","null"],"description":"With include=details: null when the job has none.","properties":{"recorded_at":{"type":["string","null"],"format":"date-time"},"facets":{"type":"object"}}}}},"Company":{"type":"object","properties":{"key":{"type":"string"},"names":{"type":"array","items":{"type":"string"}},"website":{"type":["string","null"]},"industry":{"type":["object","null"]},"founded":{"type":["object","null"]},"headquarters":{"type":["object","null"]},"employees":{"type":["object","null"]},"listing":{"type":["object","null"]},"description":{"type":["object","null"]},"layoff_notices":{"type":"array","items":{"type":"object"}},"filings":{"type":"array","items":{"type":"object"}},"wages":{"type":"array","items":{"type":"object"}}}},"Application":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["applied","ready_to_review","needs_information","no_longer_eligible","cancelled","passed"]},"status_label":{"type":"string"},"note":{"type":["string","null"]},"job":{"type":"object","properties":{"title":{"type":"string"},"company":{"type":"string"},"url":{"type":["string","null"],"description":"The job's page on Applystead, or null when it has none (always null for an application you added yourself)."},"location":{"type":"object"}}},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"applied_at":{"type":["string","null"]}}},"ApplicationRequest":{"type":"object","properties":{"id":{"type":"string"},"result":{"type":"string","enum":["added","in_queue","in_applications"]},"message":{"type":"string"}}},"WebhookEndpoint":{"type":"object","properties":{"object":{"type":"string"},"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"status":{"type":"string","enum":["active","paused"],"description":"paused once 10 events in a row went undelivered; a delivered test resumes it."},"format":{"type":"string","enum":["standard","discord","slack"],"description":"standard: the signed JSON event; discord and slack: a chat message, from the URL."},"secret_prefix":{"type":"string"},"created_at":{"type":["string","null"]},"paused_at":{"type":["string","null"]},"last_delivery":{"type":["object","null"],"properties":{"at":{"type":"string"},"event":{"type":"string"},"outcome":{"type":"string","enum":["delivered","failed","skipped","cancelled"]},"status_code":{"type":["integer","null"]},"reason":{"type":["string","null"],"description":"Why it was not delivered: invalid_url, address_unavailable, timeout, tls_failed, connection_failed, redirect, http_status, insufficient_balance, paused, removed, or secret_unavailable (its signing secret can no longer be used; add the endpoint again)."}}}}},"WebhookTest":{"type":"object","properties":{"object":{"type":"string"},"delivered":{"type":"boolean"},"status_code":{"type":["integer","null"]},"reason":{"type":["string","null"]},"endpoint":{"anyOf":[{"$ref":"#/components/schemas/WebhookEndpoint"},{"type":"null"}]}}},"ApplicationSentEvent":{"type":"object","required":["type","timestamp","data"],"properties":{"type":{"type":"string","enum":["application.sent"]},"timestamp":{"type":"string","format":"date-time","description":"When the application was sent."},"data":{"$ref":"#/components/schemas/Application"}}},"WebhookTestEvent":{"type":"object","required":["type","timestamp","data"],"properties":{"type":{"type":"string","enum":["webhook.test"]},"timestamp":{"type":"string","format":"date-time"},"data":{"type":"object","properties":{"object":{"type":"string"},"message":{"type":"string"}}}}}}}}