fshy

Home / GitLab

GitLab CI Job Artifacts (GitLab.com Free)

gitlab.comPaaSstorage/gitlab-ci-job-artifactsJSONcomparereport an errorprovider JSON

Free allowance
Not counted against the 10 GiB project storage limit ('build artifacts are not included in the limit').
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
email?placeholder, not evidence; card unknown, phone unknown
Binding limit
noneno named constraint binds
Evidence
reported3 sources; a third party said so
Freshness
stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
Free tierNot counted against the 10 GiB project storage limit ('build artifacts are not included in the limit'). 1 GB compressed maximum per artifact archive on GitLab.com.
unit GiB; metered on stored-bytes
Pricenone stated
Identityemail (placeholder) not published
EgressFree, anonymous for public projects. Verified a 321 MB anonymous download.
Per-object capnot stated
RetentionDefault expiry 30 days, but expire_in: never is a valid documented value and the latest-successful-job artifact on every ref is exempt from expiry entirely (30 days)
Interfacerest rest
ToolingGET /projects/:id/jobs/artifacts/:ref/download?job=NAME, and GET /projects/:id/jobs/:job_id/artifacts (zip). No auth needed against a public project. Upload is automatic from .gitlab-ci.yml artifacts:.
Composes withUnlimited jobs per project x 1 GB per artifact archive, uncounted against quota. Force permanence with expire_in: never or the 'Keep' button. Because 'artifacts from the latest pipeline for the ref' never expire regardless of expire_in, every branch/tag becomes a permanent shelf: unlimited branches x 1 GB.
ReliabilityExpiry is enforced hourly and irreversible — anything not pinned with never/Keep silently vanishes. Treat as durable only when pinned.
Evidence 3
datesourcewhat it proved
2026-10-21docs.gitlab.com/ci/yaml/'artifacts:expire_in ... Valid values include ... never' and 'expire_in does not affect artifacts from the latest job'
2026-10-21docs.gitlab.com/user/gitlab_com/'Artifacts maximum size (compressed) | 1 GB' and 'Artifacts expiry time | 30 days unless otherwise specified'
2026-10-21gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-foss/jobs/artprobe: curl -L -> 302 then 200, 321472291 bytes, no auth
Unknown values 4
  • $.binding_note boilerplate
  • $.per_object_cap.notes the field may be stated in a source that was not read
  • $.per_object_cap.stated the field may be stated in a source that was not read
  • $.retention.notes the field may be stated in a source that was not read