> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.aventure.vc/api-reference/search/get-web-search-job/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aventure.vc/_mcp/server. # Get an Async Web Search Job GET https://api.aventure.vc/v1/web/searches/jobs/{jobId} Reads the web-search job a `Prefer: respond-async` search accepted. Answers 200 with the finished search (charged like a search), 202 with Retry-After while SerpAPI is still running it, 503 search_provider_error when the job ended without a result (run the search again), and 404 for an unknown job. Never starts or resubmits a provider search. Reference: https://docs.aventure.vc/api-reference/search/get-web-search-job ## Authentication - `Authorization` header (bearer token, required) — Your aVenture API key (https://aventure.vc/settings/api-keys) or OAuth access token ## Request ### Path parameters - `jobId` (string, required) — Web-search job UUID from the 202 response ## Response ### 200 Finished web search; never cached by intermediaries - `document` (SourceDocumentList, required) — Source-document ledger row backing this result - `result` (list of SearchHit, required) — Normalized result items in provider rank order - `search` (Search, required) — Web search request represented by this result ### 202 SerpAPI is still running the search; poll again after Retry-After - `jobId` (string, required) - `mode` (string, required) - `statusUrl` (string, required) — Endpoint to poll for asynchronous job state and result. ## Errors ### 400 Bad Request Error Bad Request - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 401 Unauthorized Error Unauthorized - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 403 Forbidden Error Forbidden - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 404 Not Found Error Not Found - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 406 Not Acceptable Error Not Acceptable - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 422 Unprocessable Entity Error Unprocessable Content - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 429 Too Many Requests Error Too Many Requests - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 500 Internal Server Error Internal Server Error - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ### 503 Service Unavailable Error Service Unavailable - `allowanceType` (enum, optional) — Which monthly allowance a BILLING_ALLOWANCE refusal exhausted. - Allowed values: `COMPANY`, `PERSON`, `ENTITY_VIEW`, `PERSON_VIEW`, `WEB_SEARCH` - `circuitBreaker` (string, optional, nullable) - `code` (string, optional, nullable) — Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry. - `conflictingRecord` (CurrentSlugOwner, optional, nullable) — Current slug owner - `detail` (string, optional) - `details` (DomainConflictDetails, optional, nullable) — Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent. - `error` (map from string to string, optional, nullable) - `existingRedirect` (RedirectSlugPath, optional, nullable) — Redirect slug path - `feId` (string, optional, nullable) - `field` (string, optional, nullable) - `hammingDistance` (long, optional, nullable) - `hint` (string, optional, nullable) - `instance` (string, optional) - `limit` (long, optional, nullable) — Cap the limitType meter allows for its current period. - `limitType` (enum, optional) — Which meter refused the request; names what limit/used/remaining count. - Allowed values: `FORM`, `GLOBAL`, `SUBNET`, `IP`, `UNKNOWN`, `RESILIENCE4J`, `WEB_SEARCH`, `AGENT_HELP`, `NATURAL_SEARCH`, `BILLING_ALLOWANCE`, `BILLING_ADDITIONAL_USAGE`, `CLERK_PUBLIC_ADMISSION`, `CLERK_SCRIPT_LOAD`, `ORIGIN_DETAIL`, `INFERENCE_PROVIDER` - `matchedBlocklistKey` (string, optional, nullable) - `mediaType` (string, optional, nullable) - `moderationReason` (string, optional, nullable) - `parseError` (string, optional, nullable) - `path` (string, optional, nullable) - `properties` (map from string to any, optional) - `remaining` (long, optional, nullable) — Cap minus used for the limitType meter, never negative. - `requiredRole` (string, optional, nullable) - `resetAt` (datetime, optional, nullable) — When the limitType meter refills and the request can succeed again. - `resolution` (ProblemResolution, optional, nullable) — Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `retryAfterSeconds` (long, optional, nullable) — Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff. - `spanId` (string, optional, nullable) - `status` (integer, optional) - `suggestion` (string, optional, nullable) - `suggestions` (map from string to string, optional, nullable) - `suspectedFragment` (string, optional, nullable) - `title` (string, optional) - `traceId` (string, optional, nullable) - `type` (string, optional) - `unknownParameters` (list of string, optional, nullable) - `used` (long, optional, nullable) — Requests already charged against the limitType meter this period. - `validParameters` (list of string, optional, nullable) - `value` (string, optional, nullable) - `windowSeconds` (long, optional, nullable) — Length of a rolling throttle window; absent for period meters. ## Types ### SourceDocumentList Metadata-only ledger row for source-document lists - `cacheHitCount` (integer, required) - `createdAt` (datetime, required) - `documentType` (string, required) - `id` (string, required) — Document id - `provider` (string, required) - `sourceKey` (string, required) — Canonical fetch identity: canonical URL, query hash, or dataset + external id - `expiresAt` (datetime, optional, nullable) - `httpStatus` (integer, optional, nullable) - `lastAccessedAt` (datetime, optional, nullable) - `providerRequestId` (string, optional, nullable) - `rawByteCount` (long, optional, nullable) - `rawCharset` (string, optional, nullable) - `rawMediaType` (string, optional, nullable) - `upstreamContentEncoding` (string, optional, nullable) ### SearchHit One normalized web-search hit with its title, URL, snippet, and relevance score - `relevanceScore` (double, required) - `snippet` (string, required) - `title` (string, required) - `url` (string, required) ### Search Live web search request with cache controls - `search` (string, required) — Search text sent to the upstream web search provider - `bypassCache` (boolean, optional, default: false) — Skip cache lookup and refresh from the search provider - `cacheKey` (string, optional, nullable) — Stable lookup text for cache keying when generated search text varies between runs - `language` (string, optional, nullable) — Search language code - `region` (string, optional, nullable) — Search region code - `resultLimit` (integer, optional, nullable) — Maximum number of normalized results to keep - `source` (string, optional, nullable) — Optional caller identity, up to 64 characters, persisted for source-document attribution and abuse triage. Agent requests derive `-` from the validated provenance actor instead of this field. ### CurrentSlugOwner Current slug owner - `id` (string, required) - `isHidden` (boolean, required) - `resourceType` (enum, required) — Resource type whose slug is being changed - Allowed values: `entity`, `person`, `news`, `blog`, `content` - `showOnSitemap` (boolean, required) - `slug` (string, required) - `deletedAt` (datetime, optional, nullable) - `nameBrand` (string, optional, nullable) ### DomainConflictDetails Polymorphic envelope for RFC 9457 ProblemDetail.details on HTTP 409 responses. The concrete variant depends on the conflict kind: URL ownership collisions return UrlDuplicateConflict; ambiguous strict URL lookups return StrictUrlLookupConflict; create-time duplicate review gates return DuplicateCreateReview; classification writes that touch an inactive tag bucket return ClassificationInactiveTagDetails; news publication+URL uniqueness violations return NewsSourceUrlConflict. Inspect ProblemDetail.code/type and the field set present on details to identify the variant. ### RedirectSlugPath Redirect slug path - `oldUrl` (string, required) - `newUrl` (string, optional, nullable) - `targetCurrentSlug` (string, optional, nullable) - `targetId` (string, optional, nullable) - `targetResourceType` (enum, optional, nullable) — Resource type whose slug is being changed - Allowed values: `entity`, `person`, `news`, `blog`, `content` ### ProblemResolution Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records. - `action` (enum, required) — Next action category for the client or agent. - Allowed values: `setField`, `setParameter`, `removeParameter`, `useEndpoint`, `reviewCandidates`, `authenticate` - `acceptedValue` (list of string, optional, nullable) — Accepted values for the field or parameter, when enumerable. - `endpoint` (string, optional, nullable) — Endpoint to call for the next action, when applicable. - `fieldPath` (string, optional, nullable) — Request-body field path that needs attention, when applicable. - `parameter` (string, optional, nullable) — Query parameter that needs attention, when applicable. - `retryable` (boolean, optional, nullable) — Whether the same logical request can be retried after the next action. ### UrlDuplicateConflict Typed extension on ProblemDetail.details for HTTP 409 when a create/update attempts to set a URL with urlType=website (or another exclusive urlType) that is already a current URL on a different entity or person. The existingJoin list names every current owner of the normalized URL; resolve by demoting the existing owner (isCurrent=false, isPrimary=false) before promoting the new owner. - `existingJoin` (list of UrlDuplicateJoin, required) — Every current owner that already holds the normalized URL with this urlType. Non-empty when this conflict is emitted. - `fragmentIgnored` (boolean, required) — True when URL fragment differences were ignored during duplicate matching (i.e., the conflict ignores everything after '#'). - `guidance` (string, required) — Human-readable guidance on how to resolve the conflict. Defaults to the standard inspect-then-demote/promote sequence. - `requestedOwner` (EntityPersonOwner, required) — Owner the caller attempted to attach the URL to. - `url` (string, required) — Raw URL as submitted by the caller (pre-normalization). - `urlType` (string, required) — URL type submitted by the caller (e.g., 'website', 'twitter'). The conflict applies only within this urlType. - `normalizedUrl` (string, optional, nullable) — Normalized URL match key used for duplicate detection. Null when normalization could not produce a stable key (e.g., malformed input). ### StrictUrlLookupConflict Typed extension on ProblemDetail.details for HTTP 409 when a strict URL lookup (GET /v1/entities/lookup-exact?url=...) resolves to more than one current owner. The candidate lists return every current owner that matches the normalized URL key; the caller must add disambiguating signals (urlType, typeRecord, slug) to resolve to a single owner. - `candidateEntityId` (list of string, required) — Every entity id that currently owns the normalized URL. May be empty when the conflict is between persons; combined with candidatePersonId always > 1. - `candidatePersonId` (list of string, required) — Every person id that currently owns the normalized URL. May be empty when the conflict is between entities; combined with candidateEntityId always > 1. - `hint` (string, required) — Human-readable hint describing which disambiguating query parameters to add. - `url` (string, required) — Raw URL the caller queried. - `normalizedUrl` (string, optional, nullable) — Normalized URL match key the lookup resolved against. Null when normalization could not produce a stable key. - `urlType` (string, optional, nullable) — URL type the caller specified, or null if the lookup did not constrain by urlType. ### DuplicateCreateReview Candidate-review conflict details returned in ProblemDetail.details for create gates and deterministic lookup ambiguity. The returned candidates are the decision surface: update the matching candidate, create with duplicate override only when every candidate is distinct from the source-backed target, or block when identity is unresolved. score and threshold rank review priority; they are not proof that the requested record is absent. - `threshold` (integer, required) — Review threshold used by duplicate scoring. Scores below this value can still be useful candidate context; this value does not prove absence or authorize create. - `candidate` (list of SearchDuplicateCandidateScore, optional, nullable) — Entity/person candidates returned by lookup or create duplicate review. If a candidate is the requested record, read/update that candidate by id. Create with duplicate override only after every candidate is reviewed as distinct. - `newsCandidate` (list of NewsCandidateScore, optional, nullable) — News candidates returned by lookup or create duplicate review. If a candidate is the requested article, read/update that article by id. Otherwise block until source evidence proves a distinct article. - `overridePath` (string, optional, nullable) — Create endpoint to retry only after reviewing the returned candidates and supplying overrideGate=duplicate and overrideReason as query parameters. Null for detail lookup ambiguity, where the next action is review/update/block. ### ClassificationInactiveTagDetails ProblemDetail.details for HTTP 409 when a classification value exists but is inactive. - `availableOverrides` (list of enum, required) — Allowed inactiveTagOverride values for this conflict - Allowed values: `REACTIVATE`, `ATTACH_INACTIVE` - `slug` (string, required) — Existing dormant value slug or lookup key - `tagId` (integer, required) — Existing tag id in res_type_ref ### NewsSourceUrlConflict Typed extension on ProblemDetail.details for HTTP 409 when a news mutation's publication + newsUrlOriginal pair already belongs to another article. The returned fields identify the existing article so the caller can read/update it instead of creating a duplicate. - `conflictingArticleId` (integer, required) — Existing article id (NewsId.value) that already owns this publication + URL pair. - `conflictingArticleSlug` (string, required) — Existing article slug, or empty string when the existing article has no slug. Use with GET /v1/news/lookup?slug= to fetch the conflicting article. - `conflictingArticleTitle` (string, required) — Existing article title for human-readable diagnostics. ### UrlDuplicateJoin URL ownership join row identifying which entity or person currently owns a normalized URL. - `owner` (EntityPersonOwner, required) — Owner of the URL: either entityId or personId is populated depending on the owner kind. Use the populated id to read or update the owner's URL. - `urlId` (integer, required) — Internal URL row id (res_weburl.id) — opaque to API clients. ### EntityPersonOwner Exactly one of entityId or personId is set; ids only, no name fields. Resolve display names with GET /v1/entities/detail or GET /v1/people/\{personId}. - `entityId` (string, optional, nullable) — Owning entity id; set only when personId is absent. - `personId` (string, optional, nullable) — Owning person id; set only when entityId is absent. ### SearchDuplicateCandidateScore Duplicate candidate scoring result. Use id/name/slug/typeRecord/reason to decide whether the candidate is the requested record. score ranks review priority; it does not prove absence. - `id` (string, required) — Candidate id to read or update when this candidate is the requested record. - `reason` (list of string, required) — Match reasons such as name-exact, slug-exact, url-match, url-current, url-type, or precomputed-similarity. url-match proves the supplied URL/domain matched; url-current additionally proves the candidate still holds that address today, so a candidate with url-match but no url-current matched only through a URL it no longer uses, such as an acquisition redirect. url-type only means the candidate has the same URL category and is review context, not URL identity evidence. - `score` (integer, required) — Ranking score for duplicate review. It is not an absence proof; a low score can still be the intended record when reason/name/slug/typeRecord match. - `externalId` (string, optional, nullable) — Matched external identifier when duplicate scoring used one. - `name` (string, optional, nullable) — Candidate display name from the existing record. - `operatingStatus` (string, optional, nullable) — Current operating status for entity candidates. - `publicPath` (string, optional, nullable) — Public API/UI path for the candidate when available. - `slug` (string, optional, nullable) — Candidate slug from the existing record. - `typeRecord` (enum, optional, nullable) — Candidate entity type from the existing record. - Allowed values: `Company`, `Investment Firm`, `Fund`, `Nonprofit`, `Government`, `Organization`, `Business Line`, `Product`, `Service` ### NewsCandidateScore Duplicate candidate scoring result for news articles. Use id/slug/externalId/reason to decide whether the candidate is the requested article. score ranks review priority; it does not prove absence. - `id` (integer, required) — News article id to read or update when this candidate is the requested article. - `reason` (list of string, required) — Match reasons for reviewing the candidate. Exact reasons are decision signals regardless of whether score crosses the review threshold. - `score` (integer, required) — Ranking score for duplicate review. It is not an absence proof; a low score can still be the intended article when reason/slug/externalId match. - `externalId` (string, optional, nullable) — Matched external article identifier when duplicate scoring used one. - `slug` (string, optional, nullable) — Candidate article slug from the existing record. ## Examples ### Example 1 **Response** ```json { "document": { "cacheHitCount": 1, "createdAt": "2024-01-15T09:30:00Z", "documentType": "string", "id": "string", "provider": "string", "sourceKey": "string", "expiresAt": "2024-01-15T09:30:00Z", "httpStatus": 1, "lastAccessedAt": "2024-01-15T09:30:00Z", "providerRequestId": "string", "rawByteCount": 1, "rawCharset": "string", "rawMediaType": "string", "upstreamContentEncoding": "string" }, "result": [ { "relevanceScore": 1.1, "snippet": "string", "title": "string", "url": "string" } ], "search": { "search": "OpenAI latest funding news", "bypassCache": false, "cacheKey": "OpenAI", "language": "en", "region": "us", "resultLimit": 5, "source": "string" } } ``` **SDK Code** ```python import requests url = "https://api.aventure.vc/v1/web/searches/jobs/jobId" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.aventure.vc/v1/web/searches/jobs/jobId'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.aventure.vc/v1/web/searches/jobs/jobId" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.aventure.vc/v1/web/searches/jobs/jobId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.aventure.vc/v1/web/searches/jobs/jobId") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://api.aventure.vc/v1/web/searches/jobs/jobId', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.aventure.vc/v1/web/searches/jobs/jobId"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.aventure.vc/v1/web/searches/jobs/jobId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` ### Example 2 **Response** ```json { "jobId": "string", "mode": "string", "statusUrl": "/v1/jobs/runs/550e8400-e29b-41d4-a716-446655440000" } ``` **SDK Code** ```python import requests url = "https://api.aventure.vc/v1/web/searches/jobs/jobId" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.aventure.vc/v1/web/searches/jobs/jobId'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.aventure.vc/v1/web/searches/jobs/jobId" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.aventure.vc/v1/web/searches/jobs/jobId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.aventure.vc/v1/web/searches/jobs/jobId") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://api.aventure.vc/v1/web/searches/jobs/jobId', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.aventure.vc/v1/web/searches/jobs/jobId"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.aventure.vc/v1/web/searches/jobs/jobId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```